Неопределенный индекс для идентификатора с $_GET

Ну, еще один неопределенный индекс появляется:

Я пытаюсь изменить выбранную строку в базе данных, но пока она не работает, я получаю только

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 ответа

Это потому что $_GET['EierID'] не установлен.

Попробуй это:

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

В update.php также сделайте то же самое: $ud_ID = isset($_POST["ID"])?$_POST["ID"]:"";

Если ваша переменная не существует, вы получите ошибку, пытаясь привести это 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; 
} 
?>
Другие вопросы по тегам