Php-mysql: yalan undefined index [kapalı]

3 Cevap

Ben veri tabanı HATA POST metin kutusu kullanarak veri gönderirken bir hata var "DİKKAT: ON LINE UnDEFInED INDEX" IS

Bu sorunu nasıl çözebilirim?

Bu benim kodudur:

<?php
error_reporting(0);
$con = mysql_connect("localhost","root","");

mysql_select_db("hello", $con);

$result = mysql_query("SELECT Max(id) as id from `aoa` WHERE 1");

$row = mysql_fetch_array($result);
  {

    echo $row['id'];
  }

 if($v=="")
{
 $v=1000;

}


$v=$row['id'];

$v=$v+1;
$id=$v;

$sql="INSERT INTO aoa(id,name,clss)
VALUES
('$id','$_POST[name]','$_POST[clss]')";
var_dump($sql);
if (!mysql_query($sql,$con))
  {
   die('Data InsertionError: ' . mysql_error());
  }
echo "Successfully Registered";

mysql_close($con);
?>

(VE BU BENİM HATA DOSYASI IS)

Notice: C:\wamp\www\Register.php line 31 - Undefined index:  clss
Notice: C:\wamp\www\Register.php line 31 - Undefined index:  name
Notice: C:\wamp\www\Register.php line 17 - Undefined variable: v

3 Cevap

V tanımsız olması ile sorun bu hat üzerinde

if($v==""){
    $v=1000;
}

$ V ayarlı değilse, bu "" değildir. Örneğin kullanabilirsiniz

if( !isset($v) ){
    $v=1000;
}

Ayrıca, var_dump kullanarak sonrası bayraklar kontrol edin ()

var_dump($_POST);

Eğer onlar değil şüpheli 'clss' ve 'isim' seti, varsa bu şekilde görebilirsiniz.

Your code at present is also vulnerable to a sql injection, you should use mysql_real_escape_string on all variables before using them in sql.
Even better use something like PDO

Bu bir uyarıdır, bir hata değildir. error_reporting php.ini direktifi şekilde ayarlanır, çünkü onları alırsınız. Kullanmadan önce değişkenleri bildirerek bunu ortadan kaldırabilir.

Eğer sadece değişkenleri senaryonuzun üstünde clss, isim ve v ... henüz bir şey gibi ilan eklemek değil

$_POST['clss'] = null;
$_POST['name'] = null;
$v = null;

Eğer kod bazı hatalar var yanında. $ _POST Değerleri $ _POST ['clss'] veya $ _POST ["ad"] gibi tek veya çift tırnak ile sağlanmalıdır. Aksi takdirde komut bunu niyetinde şekilde çalışmayacaktır.

İşte bunu yapmak gerekir.