PHP: фатальная ошибка после формы POST - PullRequest
0 голосов
/ 25 августа 2009

Следующий код выдает ошибку в PHP 5.2.9 после отправки, но не при первоначальной загрузке. Ошибка: фатальная ошибка: только переменные могут быть переданы по ссылке в /home/golfcom/public_html/test.php в строке 12

Файл:

<?php
include('connection.php');
$result = $dbc->query("SELECT subdivision FROM Residential");
$search['subdivision'] = array();

while($i = $result->fetch_array()){
    echo $i['subdivision'];
    array_push($search['subdivision'], $y = $i['subdivision']);
}
?>
<form action="test.php" method="post">
<input type='submit' value='search' class='submit' name='search' /></form>

Ответы [ 4 ]

1 голос
/ 26 августа 2009

Разобрался. У моего хоста был register_globals. Отключение, если все исправлено.

1 голос
/ 25 августа 2009

Просто предположение, но, возможно, это как-то связано с операцией присваивания внутри функции:

array_push($search['subdivision'], $y = $i['subdivision']);

Попробуйте вместо этого:

$y = $i['subdivision'];
array_push($search['subdivision'], $y);
0 голосов
/ 25 августа 2009

У вас нет контроля ошибок. Вам необходимо проверить следующее:

  • ваше подключение к базе данных в порядке и подключено
  • запрос не дал ошибки и вернул верный результат (даже если строк нет)
  • не пытайтесь напечатать строку, если по запросу не найдено ни одной строки

В вашем цикле $ y будет значением строки LAST и устанавливается для каждого цикла. Хотя это не так, вы можете изменить свой код на что-то вроде:

$t = $result->numRows();
while ($row = $result->fetch_array()) {
    $search['subdivision'][] = $row['subdivision'];
}
$lastResult = $search['subdivision'][$t - 1];
0 голосов
/ 25 августа 2009

Игнорируйте этот вопрос, я получаю противоречивые результаты. Я думаю, что мой хозяин вонючий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...