Jump to content
php.lv forumi

Gļuks ar $_GET["id"]


sanzhs

Recommended Posts

Sveiki!

Man ir šāda problēma. Ir pāris rindiņas, kas dzēš ierakstu no db, bet lieta tāda - lūk kods

if (isset($_GET["www"]) == "dzest");
{
$c = mysql_connect('localhost','','') or die('ERROR: ' . mysql_error());
mysql_select_db('www_izmainas') or die('ERROR');
$id = $_GET["id"];  //šī ir 48. rindiņa!
mysql_query("DELETE FROM `www` WHERE `www`.`id` = \"$id\" LIMIT 1;");
}

Visu laiku ekrānā lec errors: "Notice: Undefined index: id in c:\la laa ... \f-ijas.php on line 48"

Bet - kods izpildās, ieraksts tiek izdzēsts.

 

Ja 48. rindiņu izlabo uz

$id = isset($_GET["id"]);

tad errors netiek izmests, bet kods neizpildās.

Links ir ~ tāds inex.php?www=dzest&id=3

Man prātā stāv variants, ka gadījumā ar isset() $id vērtība ir id, bet savukārt bez isset() tā ir reāli tāda, kāda linkā.

Vienvārdsakot - Kas tas par gļuku? Kā risināt?

Edited by sanzhs
Link to comment
Share on other sites

bubu, vai tad register_globals pie viena iztīra $_GET, $_POST un $_REQUEST masīvus? Takšu tak nē...

 

sanzhs, kas tev šitās par konstrukcijām ir: if (isset($_GET["www"]) == "dzest"); un $id = isset($_GET["id"]);? isset() atgriež boolean vērtību true/false, tā ka nekāda salīdzināšana/piešķiršana ar viņām nesanāks...

Edited by john.brown
Link to comment
Share on other sites

if (isset($_GET["www"]) == "dzest");

Aizguvu vienkārši no if(isset($_GET["www"])); - lietoju kā satura atlasītāju, nu tipa index.php?www tad lapas satur ir bla bla utt. Bez isset() nestrādā.

$id = isset($_GET["id"]); - Šo vienkārši variējot pamēģināju, jo citādi ir tas errors, nu un jā - gandrīz pareizi sapratu - te netiek padota skaitliska $id vērtība.

Ko darīt?

Link to comment
Share on other sites

Šāda konstrukcija nedara neko:

if (isset($_GET["www"]) == "dzest");
{
 ...
}

Tas, kas ir figūriekavās, izpildās vienmēr! Pareizi būs:

if(isset($_GET['www']) && $_GET['www'] == 'dzest') {
...
}

Jūti atšķirību?

 

Par to id, uztaisi var_dump($_GET), un paskaties, kas tev tur ir, izprintē queriju, apskati, vai ir, kā vajag...

Link to comment
Share on other sites

Sasodīts, es to ; nebiju pamanījis. Stulbs var palikt. Paldies!

if(isset($_GET["www"]) && $_GET["www"] == "dzest")
{
$c = mysql_connect('localhost','root','') or die('ERROR: ' . mysql_error());
mysql_select_db('www_izmainas') or die('ERROR');
$id = $_GET['id'];
mysql_query("DELETE FROM `www` WHERE `www`.`id` = \"$id\" LIMIT 1;");
}

Viss iet, nav erroru! :)

Link to comment
Share on other sites

×
×
  • Create New...