PHP: Bir form POST sonra Fatal error

4 Cevap

The following code throws an error in PHP 5.2.9 after submission, but not on the original load. Error: Fatal error: Only variables can be passed by reference in /home/golfcom/public_html/test.php on line 12

Dosya:

<?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 Cevap

Sadece bir tahmin, ama belki işlevin içinde atama işlemi ile ilgili bir şey var:

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

Bunun yerine bu deneyin:

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

Bunu anladım. Benim ev sahibi üzerinde register_globals vardı. Her şey sabit kapalı ise dönüm.

Bu soruyu, ben tutarsız sonuçlar alıyorum. Benim ana sakat olduğunu düşünüyorum.

Hiçbir hata kontrolü var. Aşağıdaki kontrol etmeniz gerekir:

  • veritabanı bağlantısı tamam ve bağlı olduğu
  • sorgu hata ve (hiçbir satır bile) geçerli bir sonuç döndürdü vermedi
  • Sorgu tarafından döndürülen hiçbiri varsa bir satır yazdırmak dont denemek

Eğer döngü içinde, $ y SON satırın değeri olacaktır ve her döngü ayarlanır. Onun yanlış olmasa da, gibi bir şey için kodunuzu değiştirebilirsiniz:

$t = $result->numRows();
while ($row = $result->fetch_array()) {
    $search['subdivision'][] = $row['subdivision'];
}
$lastResult = $search['subdivision'][$t - 1];