Notice: Undefined index

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
alexinio3d
Mesaje: 96

Notice: Undefined index

Cum as putea sa fac ca sa nu mai preia din orice link $_GET['item_id'] care ii apelat in fisieru "showitem.php" deoarece totdeauna atunci cand accesez un link de exemplu: domeniu.ro/registre.php imi da aceasta eroare si numi afiseaza formularu de inregistrare :s .

Cod: Selectaţi tot

Notice: Undefined index: item_id in C:\xampp\htdocs\magazin\include\showitem.php on line 2
Codul showitem.php asa lam facut :

Cod: Selectaţi tot

<?php
$rezultat = $_GET['item_id'];
// Validarea produsului
$get_item = "select c.id, c.cat_title, si.item_title, si.item_price, si.item_desc from store_items as si left join store_categories as c on c.id = si.cat_id where si.id = $rezultat";
$get_item_res = mysql_query($get_item) or die (mysql_error());
if (isset($_GET['item_id'])){
if (mysql_num_rows($get_item_res) < 1) {
// Produsul nu este valid
echo "<p><em>Invalid item selection.</em></p>";
}
else {
// Produsul valid preia informatiile despre acesta
$cat_id = mysql_result($get_item_res,0,'id');
$cat_title = strtoupper(stripslashes(mysql_result($get_item_res,0,'cat_title')));
$item_title = stripslashes(mysql_result($get_item_res,0,'item_title'));
$item_price = mysql_result($get_item_res,0,'item_price');
$item_desc = stripslashes(mysql_result($get_item_res,0,'item_desc'));
// Creeam o "dara de firmituri" - breadcrumb trail
echo "<ul class=\"breadcrumb\"><li><a href=\".\">Home</a> <span class=\"divider\">/</span></li> <li><a href=\"seestore.php?cat_id=$cat_id\">$cat_title</a><span class=\"divider\">/</span></li> <li class=\"active\">$item_title</li></ul>
<div class=\"container\">
    <dl class=\"dl-horizontal\">
    <dt>Titlu : </dt>
    <dd>$item_title</dd>
    <dt>Price : </dt>
    <dd>$item_price €</dd>
    <dt>Description : </dt>
    <dd>$item_desc</dd>
    </dl>";

$get_image_item = mysql_query("SELECT * FROM store_items_image WHERE item_id = $rezultat");
while ( $img = mysql_fetch_array($get_image_item) ) {
$img_id = $img['id'];
$img_name = $img['item_image'];
$img_item = $img['item_id'];
echo "<a href=\"./images/upload/$img_name\" target=\"_blank\"><img src=\"./images/upload/$img_name\" class=\"img-rounded\"></a> &nbsp;";
}
echo "</div><br />";
}
}
?>
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

steell Mesaje: 190
Pui la inceput conditia daca exista acea variabila $_GET

Cod: Selectaţi tot

if (isset($_GET['item_id']) || $_GET['item_id'] != '') {
$rezultat = $_GET['item_id'];
// aici vine restul codului ce prelucreaza variabila $rezultat
}
// aici vine restul paginii
 

MarPlo Mesaje: 4343
In codul dat de *steel pune in loc de || (sau) pe: && (si), ca trebuie indeplinite ambele conditii.

Cod: Selectaţi tot

if (isset($_GET['item_id']) && $_GET['item_id'] != '')
Sau in codul tau, inlocuieste:

Cod: Selectaţi tot

$rezultat = $_GET['item_id'];
Cu:

Cod: Selectaţi tot

$rezultat = isset($_GET['item_id']) ? $_GET['item_id'] : '';

steell Mesaje: 190
din ce vad in scriptul tau ai declarat variabila $rezultat inainte de conditia if().
variabila $rezultat trebuie sa fie in interiorul conditiei if, la fel si restul codului care prelucreaza variabila.
daca dupa ultima acoloda a conditiei if() mai folosesti variabila $rezultat, e normal sa dea eroare pt ca ea nu este definita. deci tot codul in care folosesti variabila $rezultat trebuie inclus intre acoladele conditiei if() nu inainte si nici dupa