Undefined index for ID with $_GET

The Last Melody picture The Last Melody · Mar 7, 2013 · Viewed 7.9k times · Source

Well, yet another undefined index appears :

I am trying to change a select row in a database, but so far it doesn't seem to work, I only get

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

I have tried some fixes, but none worked.

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

The var_dump gives me int 0. I'm not sure what it is supposed to be.

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>";
}
?>

Answer

Prasanth Bendra picture Prasanth Bendra · Mar 7, 2013

It is because $_GET['EierID'] is not set.

Try this :

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

In update.php also do the same thing : $ud_ID = isset($_POST["ID"])?$_POST["ID"]:"";