带有$ _GET的ID的未定义索引

时间:2013-03-07 09:31:00

标签: php undefined-index

好吧,还会出现另一个未定义的索引:

我正在尝试更改数据库中的选择行,但到目前为止它似乎不起作用,我只能

  

Notice: Undefined index: EierID in C:\WampServer\www\Hundeklubben\ChangeO.php on line 19.

我尝试了一些修复,但都没有。

<?php require_once('Connections/hundeklubb.php'); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Endring av eier</title>
<link rel="stylesheet" href="index.css" />
</head>

<body>

<?php
if(isset($_GET['EierID'])){ $name = $_GET['EierID']; } 
//Tried with both $_GET and $_POST
?>

<?php
$UID = (int)$_GET['EierID'];
$query = mysql_query("SELECT * FROM eiere WHERE EierID = '$UID'") or die(mysql_error());

if(mysql_num_rows($query)>=1){
while($row = mysql_fetch_array($query)) {
    $navn = $row['Navn'];
    $bosted = $row['Bosted'];
}
?>

<form name="form1" action="update.php" method="POST" id="form1">
<input type="hidden" name="ID" value="<?=$UID;?>">
Navn: <input type="text" name="ud_navn" value="<?=$navn?>"><br>
Bosted: <input type="text" name="ud_bosted" value="<?=$bosted?>"><br>
<input type="Submit" value="Oppdater">
</form>
<?php
}else{
echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
?>

<?php var_dump($UID); ?> 

</body>
</html>

var_dump给了我int 0。我不确定它应该是什么。

update.php

<?php require_once('Connections/hundeklubb.php'); ?>
<?php
$ud_ID = (int)$_POST["ID"];

$ud_navn = mysql_real_escape_string($_POST["ud_navn"]);
$ud_bosted = mysql_real_escape_string($_POST["ud_bosted"]);


$query="UPDATE eiere
        SET navn = '$ud_navn', bosted = '$ud_bosted' 
        WHERE ID='$ud_ID'";


mysql_query($query)or die(mysql_error());
if(mysql_affected_rows()>=1){
echo "<p>($ud_ID) Record Updated<p>";
}else{
echo "<p>($ud_ID) Not Updated<p>";
}
?>

2 个答案:

答案 0 :(得分:4)

这是因为没有设置$_GET['EierID']

试试这个:

$UID = isset($_GET['EierID'])?$_GET['EierID']:"";

在update.php中也做同样的事情:$ud_ID = isset($_POST["ID"])?$_POST["ID"]:"";

答案 1 :(得分:0)

如果你的变量不存在,你会在尝试强制转换int时遇到错误。

<?php
if(isset($_GET['EierID'])){ 
    $name = $_GET['EierID']; 
    $UID = (int)$_GET['EierID'];
}else{
    //set to 0 or any default value you want to set when EierID doesn't exists
    $UID = 0; 
} 
?>