Undefined index: id in php

Ich habe ein problem im PHP-code. Ich habe einige code aus einer e-Buch, aber als ich versuchte, um das system laufen, gibt es einige Fehler. Ich behob einige Fehler, indem Sie richtige Anführungszeichen, aber jetzt bin ich stecken mit einigen anderen Fehlern.

Ich würde mehr als glücklich sein, wenn jemand hilft mir mit der folgenden Fehlermeldung:

Notice: Undefined index: id in C:\xampp\htdocs\auction\index.php auf der Linie 4

Dies ist mein code für index.php:

<?php
require("config.php");
require("functions.php");
$validid = pf_validate_number($_GET['id'], "value", $config_basedir);
require("header.php");
if($validid == 0) {
$sql = "SELECT items.* FROM items WHERE dateends > NOW()";
}
else {
$sql = "SELECT * FROM items WHERE dateends > NOW()
AND cat_id = " . $validid . ";";
}
$result = mysql_query($sql);
$numrows = mysql_num_rows($result);

echo "<h1>Items available</h1>";
echo "<table cellpadding='5'>";
echo "<tr>";
echo "<th>Image</th>";
echo "<th>Item</th>";
echo "<th>Bids</th>";
echo "<th>Price</th>";
echo "</tr>";

if($numrows == 0) {
echo "<tr><td colspan=4>No items!</td></tr>";
}

else {
while($row = mysql_fetch_assoc($result)) {
$imagesql = "SELECT * FROM images WHERE
item_id = " . $row['id'] . " LIMIT 1";
$imageresult = mysql_query($imagesql);
$imagenumrows = mysql_num_rows($imageresult);
echo "<tr>";
if($imagenumrows == 0) {
echo "<td>No image</td>";
}
else {
$imagerow = mysql_fetch_assoc($imageresult);
echo "<td><img src='./images/". $imagerow['name'] . "' width='100'></td>";
}
echo "<td>";
echo "<a href='itemdetails.php?id="
. $row['id'] . "'>" . $row['name'] . "</a>";
if($_SESSION['USERID'] == $row['user_id']) {
echo " - [<a href='edititem.php?id="
. $row['id'] . "'>edit</a>]";
}
echo "</td>";

$bidsql = "SELECT item_id, MAX(amount) AS
highestbid, COUNT(id) AS numberofbids FROM bids
WHERE item_id=" . $row['id'] . " GROUP BY item_id;";
$bidresult = mysql_query($bidsql);
$bidrow = mysql_fetch_assoc($bidresult);
$bidnumrows = mysql_num_rows($bidresult);
echo "<td>";
if($bidnumrows == 0) {
echo "0";
}
else {
echo $bidrow['numberofbids'] . "</td>";
}
echo "<td>" . $config_currency;
if($bidnumrows == 0) {
echo sprintf('%.2f', $row['startingprice']);
}
else {
echo sprintf('%.2f', $bidrow['highestbid']);
}

echo "</td>";
echo "<td>" . date("D jS F Y g.iA",
strtotime($row['dateends'])) . "</td>";
echo "</tr>";
}
}
echo "</table>";
require("footer.php");
?>

Einige von Euch gefragt, wo die id herkommt. Ich habe keine Ahnung, aber ich suchte es in anderen Dateien, und hier sind Sie:

bar.php:

<?php
require("header.php");
$catsql = "SELECT * FROM categories ORDER BY category ASC;";
$catresult = mysql_query($catsql);
echo "<h1>Categories</h1>";
echo "<ul>";
echo "<li><a href='index.php'>View All</a></li>";
while($catrow = mysql_fetch_assoc($catresult)) {
echo "<li><a href='index.php?id=". $catrow['id'] . "'>" . $catrow['category']. "</a>                    </li>";
   }
echo "</ul>";

?>

header.php:

<?php
session_start();
require("config.php");
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?php echo $config_forumsname; ?></title>
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
</head>
<body>
<div id="header">
<h1>BidTastic Auctions</h1>
<div id="menu">
<a href="index.php">Home</a>
<?php
if(isset($_SESSION['USERNAME']) == TRUE) {
echo "<a href='logout.php'>Logout</a>";
}
else {
echo "<a href='login.php'>Login</a>";
}
?>
<a href="newitem.php">New Item</a>
</div>
<div id="container">
<div id="bar">
<?php require("bar.php"); ?>
</div>
<div id="main">

itemdetails.php

<?php
session_start();
include(“config.php”);
include(“functions.php”);
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbdatabase, $db);
$validid = pf_validate_number($_GET[‘id’], redirect”, $config_basedir);

if($_POST[‘submit’]) {
if(is_numeric($_POST[‘bid’]) == FALSE) {
header(“Location:  . $config_basedir
. itemdetails.php?id=” . $validid . “&error=letter”);
}

$theitemsql = SELECT * FROM items WHERE id =  . $validid . “;”;
$theitemresult = mysql_query($theitemsql);
$theitemrow = mysql_fetch_assoc($theitemresult);
$checkbidsql = SELECT item_id, max(amount) AS
highestbid, count(id) AS number_of_bids FROM
bids WHERE item_id=” . $validid .  GROUP BY item_id;”;
$checkbidresult = mysql_query($checkbidsql);
$checkbidnumrows = mysql_num_rows($checkbidresult);

if($checkbidnumrows == 0) {
if($theitemrow[‘startingprice’] > $_POST[‘bid’]) {
header(“Location:  . $config_basedir
. itemdetails.php?id=” . $validid . “&error=lowprice#bidbox”);
}
}

else {
$checkbidrow = mysql_fetch_assoc($checkbidresult);
if($checkbidrow[‘highestbid’] > $_POST[‘bid’]) {
header(“Location:  . $config_basedir . itemdetails.php?id=” .
$validid . “&error=lowprice#bidbox”);
}
}

$inssql = INSERT INTO bids(item_id, amount, user_id) VALUES(“
. $validid
. “,  . $_POST[‘bid’]
. “,  . $_SESSION[‘USERID’]
. “);”;
mysql_query($inssql);

header(“Location:  . $config_basedir
. itemdetails.php?id=” . $validid);
}
else {



$validid = pf_validate_number($_GET[‘id’], redirect”,
$config_basedir);
require(“header.php”);
$itemsql = SELECT UNIX_TIMESTAMP(dateends) AS dateepoch,
items.* FROM items WHERE id =  . $validid . “;”;
$itemresult = mysql_query($itemsql);
$itemrow = mysql_fetch_assoc($itemresult);
$nowepoch = mktime();
$rowepoch = $itemrow[‘dateepoch’];
if($rowepoch > $nowepoch) {
$VALIDAUCTION = 1;
}
echo “<h2>” . $itemrow[‘name’] . “</h2>”;

$imagesql = SELECT * FROM images WHERE item_id =  . $validid . “;”;
$imageresult = mysql_query($imagesql);
$imagenumrows = mysql_num_rows($imageresult);

$bidsql = SELECT item_id, MAX(amount) AS highestbid,
COUNT(id) AS number_of_bids FROM bids WHERE item_id=”
. $validid .  GROUP BY item_id;”;
$bidresult = mysql_query($bidsql);
$bidnumrows = mysql_num_rows($bidresult);

echo “<p>”;
if($bidnumrows == 0) {
echo “<strong>This item has had no bids</strong>
- <strong>Starting Price</strong>:  . $config_currency
. sprintf(‘%.2f’, $itemrow[‘startingprice’]);
}
else {
$bidrow = mysql_fetch_assoc($bidresult);

echo “<strong>Number Of Bids</strong>: 
. $bidrow[‘number_of_bids’] . 
- <strong>Current Price</strong>:  . $config_currency
. sprintf(‘%.2f’, $bidrow[‘highestbid’]);
}

echo  - <strong>Auction ends</strong>: 
. date(“D jS F Y g.iA”, $rowepoch);

echo “</p>”;
if($imagenumrows == 0) {
echo No images.”;
}
else {
while($imagerow = mysql_fetch_assoc($imageresult)) {
echo “<img src=’./images/” . $imagerow[‘name’] .”’ width=’200’>”;
}
}

echo “<p>” . nl2br($itemrow[‘description’]) . “</p>”;

echo “<a name=’bidbox’>”;
echo “<h2>Bid for this item</h2>”;

if(isset($_SESSION[‘USERNAME’]) == FALSE) {
echo To bid, you need to log in. Login
<a href=’login.php?id=” . $validid . “&ref=addbid’>here</a>.”;
}

else {
if($VALIDAUCTION == 1) {
echo Enter the bid amount into the box below.”;
echo “<p>”;
switch($_GET[‘error’]) {
case lowprice”:
echo The bid entered is too low.
Please enter another price.”;
break;
case letter”:
echo The value entered is not a number.”;
break;
}
?>

<form action=”<?php echo pf_script_with_get($SCRIPT_NAME);
?>” method=”post”>
<table>
<tr>
<td><input type=”text” name=”bid”></td>
<td><input type=”submit” name=”submit” value=”Bid!”></td>
</tr>
</table>
</form>

<?php
}
else {
echo This auction has now ended.”;
}

$historysql = SELECT bids.amount, users.username FROM bids,
users WHERE bids.user_id = users.id AND item_id = 
. $validid .  ORDER BY amount DESC”;
$historyresult = mysql_query($historysql);
$historynumrows = mysql_num_rows($historyresult);
if($historynumrows >= 1) {
echo “<h2>Bid History</h2>”;
echo “<ul>”;
while($historyrow = mysql_fetch_assoc($historyresult)) {
echo “<li>” . $historyrow[‘username’] .  -  .
$config_currency . sprintf(‘%.2f’, $historyrow[‘amount’]) . “</li>”;
}
echo “</ul>”;
    }
}
}
require(“footer.php”);
?>

functions.php

<?php
function pf_script_with_get($script) {
$page = $script;
$page = $page . "?";
foreach($_GET as $key => $val) {
$page = $page . $key . "=" . $val . "&";
}

return substr($page, 0, strlen($page)-1);
}

function pf_validate_number($value, $function, $redirect) {
if(isset($value) == TRUE) {
if(is_numeric($value) == FALSE) {
$error = 1;
}
if($error == 1) {
header("Location: " . $redirect);
}
else {
$final = $value;
}
}
else {
if($function == 'redirect') {
header("Location: " . $redirect);
}
if($function == "value") {
$final = 0;
}
}
return $final;
}
?>
  • hinzufügen isset($_GET['id']), bevor Sie es.
  • Es sollte id in Ihre url-query-string. eg: index.php?id=1.
  • isset prüfen kann helfen
  • möglich, Duplikat der PHP: "Notice: Undefined variable" und "Notice: Undefined index"
  • Wenn Sie gar nicht wissen, was könnte das problem sein Gebiet (ersichtlich aus der großen Anzahl von code-Abschnitten, die du gepostet hast) vielleicht ist es Zeit zu investieren in sich selbst und versuchen und verstehen, was Sie eigentlich tun mit Ihrem code.
  • Herzlich willkommen auf Stack Overflow! Bitte verwenden Sie nicht mysql_* Funktionen, neuen code schreiben. Sie werden nicht mehr gepflegt und die Gemeinschaft hat begonnen, die deprecation-Prozess. Siehe die red box? Stattdessen sollten Sie lernen, über prepared statements und PDO oder MySQLi. Wenn Sie Holen PDO hier ist ein gutes tutorial.

InformationsquelleAutor Shahnawaz | 2013-04-19
Schreibe einen Kommentar