Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Баги в $_POST
 
 автор: dump   (02.08.2009 в 14:03)   письмо автору
 
 

Здравствуйте!
Дело в том, что я столкнулся с проблемой записи данных из массива $_POST.Я записываю содержимое переменных $_POST['feed'] и $_POST['subscribers'] так: fwrite($fd,"$_POST[feed]\r\n$_POST[subscribers]"); После того как мне нужно считать данные я вызываю функцию $feed=fgets($fd), где $fd-файл, в который я записал данные.Но почему-то переменная $feed не принимает должного значения! Почему? К примеру, если через форму передать в $_POST['feed'] 'dump5' , то после записи и считывания, если посмотреть в отладчике переменная $feed содержит 'dump '.Причём если посмотреть файл $fd после работы скрипта,то он выглядит нормально,с переводами строки.Если же записать в файл только одну переменную $_POST['feed'] без \r\n, то считывание происходит нормально. Так же считывание происходит нормально и в случае обычных переменных, не из суперглобального массива.

  Ответить  
 
 автор: Akdmeh   (02.08.2009 в 14:54)   письмо автору
 
   для: dump   (02.08.2009 в 14:03)
 

Проверьте права на запись.
И попытайтесь сделать так:
$_POST[feed]."\r\n".$_POST[subscribers]

  Ответить  
 
 автор: xp_2008   (02.08.2009 в 15:05)
 
   для: dump   (02.08.2009 в 14:03)
 

a такое?
<form method="post" action="">
<input type="text" name="subscribers" value="subscribers11"/>
<input type="text" name="feed" value="feed22"/>
<input type="submit" value="send"/>
</form>
<?php
$fd 
fopen('test.txt''a+');

if(isset(
$_POST['subscribers'])) {
 
fputs($fd$_POST['subscribers'] . "\r\n");
 
fputs($fd$_POST['feed'] . "\r\n");
}
fseek($fd,0);

while(!
feof($fd)){
echo 
fgets($fd) . '<br/>';
}
fclose($fd);
?>

  Ответить  
 
 автор: Trianon   (02.08.2009 в 17:49)   письмо автору
 
   для: dump   (02.08.2009 в 14:03)
 

скопируйте значения из элементов массива $_POST в обычные переменные.
И работайте с ними.

  Ответить  
 
 автор: dump   (06.08.2009 в 12:29)   письмо автору
 
   для: Trianon   (02.08.2009 в 17:49)
 

Да, спасибо. Я уже во всём разобрался.

  Ответить  
 
 автор: lifead   (07.08.2009 в 05:35)   письмо автору
 
   для: dump   (06.08.2009 в 12:29)
 

И в чем была проблема?

  Ответить  
 
 автор: dump   (26.08.2009 в 05:19)   письмо автору
 
   для: lifead   (07.08.2009 в 05:35)
 

Дело в том, что функция fgets считывает символ "\r\n" и присоединяет его к строке. Я записывал переменные в файл построчно, а потом считывал их оттуда. А потом, когда я передавал их на сервер, то вместе с нужной переменной, передавался символ "\r\n". Естественно, это вызывало ошибку. Исправил это я с помощью функции explode

  Ответить  
 
 автор: Вот случайно зашел   (26.08.2009 в 11:52)   письмо автору
 
   для: dump   (26.08.2009 в 05:19)
 

trim()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования