Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создание xml файла
Форумы портала PHP.SU » PHP » Программирование на PHP » Создание xml файла

Страниц (1): [1]
 

1. vanicon - 09 Мая, 2010 - 01:17:30 - перейти к сообщению
Создаю файл rss.xml с помощью вот этого кода:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="">
  3. <input name="add" type="submit" value="Записать файл" class="button" />
  4. </form>
  5.  
  6. $link = mysql_connect("localhost", "root", "")
  7. or die("Ошибка подключения : " . mysql_error());
  8. mysql_select_db("ivan") or die("Could not select database");
  9.  
  10. $sqlrss = mysql_query("SELECT id, guid, post_content, post_title, post_date
  11. FROM wp_posts WHERE post_status  = 'publish' AND post_type = 'post' ORDER BY post_date DESC LIMIT 3");
  12.  
  13.  
  14.  
  15.      while ($rss = mysql_fetch_array($sqlrss, MYSQL_BOTH)) {
  16.         $rsstitle = $rss["post_title"];
  17.         $rsslink = $rss["guid"];
  18.         $rssid = $rss["id"];
  19.         $filersscenter ='
  20. <item>
  21. <title>'.$rsstitle.'</title>
  22. <link>'.$rsslink.'</link>
  23. </item>';
  24. }
  25. mysql_free_result($sqlrss);
  26.  
  27. if ($_POST['add']){
  28. $fp = fopen ('rss.xml', "w");
  29. fwrite($fp, $filersscenter);
  30. fclose($fp);
  31. }
  32.  


И все нормально вроде бы записывается в файл, но создается только одна конструкция <item>, а в запросе указывается лимит 3. Пишу вместо переменой $filersscenter вывод с помощью функции echo, выводит как надо по 3 конструкции. Подскажите пожалуйста что я не так делаю?
2. valenok - 09 Мая, 2010 - 12:49:59 - перейти к сообщению
$filersscenter .=
3. vanicon - 09 Мая, 2010 - 13:53:28 - перейти к сообщению
Спасибо valenok, а то я сам не догадался Радость
4. vanicon - 10 Мая, 2010 - 15:04:30 - перейти к сообщению
На локалхосте все работало, а вот на сомом сайте не работает выдает вот такую ошибку:
Notice: Undefined variable: filersscenter in /home/vanicon/docs/van.php on line 23
5. JustUserR - 10 Мая, 2010 - 15:31:56 - перейти к сообщению
vanicon пишет:
На локалхосте все работало, а вот на сомом сайте не работает выдает вот такую ошибку:
Notice: Undefined variable: filersscenter in /home/vanicon/docs/van.php on line 23
Приведенный вами текст не ошибка и даже не предупреждение - но видно что какой-то переменной не хватает веротяно по причине отсутствия register_globals - попробуйте сделать $varname=$_REQUEST['varname']
Также проблема с записью XML-файла может быть в недостатке прав на запись - или неверно-казанным базовом пути
6. vanicon - 10 Мая, 2010 - 15:34:40 - перейти к сообщению
Я задавал этот вопрос хостеру и мне ответили что это не ошибка, а предупреждение. Говорит о том, что в скрипте используется неинициализированная переменная.
7. Champion - 10 Мая, 2010 - 15:36:36 - перейти к сообщению
Это не ошибка, а замечание. Чтобы узнать, о чем оно и чем оно вызвано, как ни странно, достаточно его прочитать. А работает на локалхосте и на самом сайте скорее всего одинаково, просто на локалхосте отключен вывод замечаний.
8. JustUserR - 10 Мая, 2010 - 15:41:20 - перейти к сообщению
vanicon пишет:
Я задавал этот вопрос хостеру и мне ответили что это не ошибка, а предупреждение. Говорит о том, что в скрипте используется неинициализированная переменная.
Не совсем так - это предупреждение возникает скажем в случае обращения к неопределенной ранее переменной - и в зависимости от контекста она трактуется как false или 0 или пустая строка
Если ваш PHP-скрипт не работает то
JustUserR пишет:
Веротяно по причине отсутствия register_globals - попробуйте сделать $varname=$_REQUEST['varname']
9. vanicon - 10 Мая, 2010 - 16:04:46 - перейти к сообщению
Цитата:
Веротяно по причине отсутствия register_globals - попробуйте сделать $varname=$_REQUEST['varname']

Я пробовал выдавал еще ошибку:
Notice: Undefined index: varname
10. Champion - 10 Мая, 2010 - 16:10:22 - перейти к сообщению
vanicon пишет:
Говорит о том, что в скрипте используется неинициализированная переменная
Ну так проинициализируй ее в начале пустой строкой.
11. vanicon - 10 Мая, 2010 - 20:22:50 - перейти к сообщению
И как это сделать? Не понял
12. JustUserR - 11 Мая, 2010 - 10:27:39 - перейти к сообщению
vanicon пишет:
И как это сделать?
Во-первых скорее всего в вашем случае надо включить register_globals или просто скопировать данные в эту переменную из масива $_REQUEST - во-вторых можете просто проинициализировать ее любым ложным значением - только не null поскольку это означает отсутствие переменной
13. vanicon - 11 Мая, 2010 - 13:48:50 - перейти к сообщению
Что то я не понимаю как можно проинициализировать переменную $filersscenter, объясните пожалуйста.
14. ura-anton - 11 Мая, 2010 - 14:09:33 - перейти к сообщению
JustUserR
хватит гнать пургу, просмотри скрипт, register_globals здесь ни причём
vanicon
$filersscenter='';
15. JustUserR - 12 Мая, 2010 - 09:28:43 - перейти к сообщению
ura-anton пишет:
JustUserR хватит гнать пургу, просмотри скрипт, register_globals здесь ни причём
Не совсем так ведь если в PHP-скрипте имелось в виду что включен register_globals - то автор мог сразу использовать конструкции в которых GPC-данные превращаются и переменные и эни переменные можно использовать как rvalue - если же register_globals выключен то переменная остается неинициализированной - но ее по преждему можно использовать как rvalue при такктовке в контексте как ложное значения - хотя предупреждение будет возникать если перед использованием в rvalue ее не проинициализировали в lvalue
ura-anton пишет:
vanicon
$filersscenter='';
Как ининциализировать переменную это и так понятно и было написало уже не раз - другое дело почему возникает неинициализированная переменная? Про register_globals спорить не буду - посколько такая переменная могла возникнуть из подключаемого файла - а если на хостинг файл не открывается (Напрмер нет прав доступа) то переменная и остается без начального значения (Хотя в таком случае чтобы она была глобальной ее нужно явно обявлять как global)

 

Powered by ExBB FM 1.0 RC1