Jump to content
php.lv forumi

Gļuks ar $_GET["id"]


Recommended Posts

Posted (edited)

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
Posted

register_globals ir Off

Un, hmm, pēc idejas tā rindiņa ir vajadzīga, nē nu jā - var jau likt pa taisno iekš nākamās, kur ir tas $id.

Varbūt nepareizi sapratu.

Posted (edited)

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
Posted

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?

Posted

Šā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...

Posted

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! :)

Posted

Ja tev ir divas konekcijas uz diviem dažādiem serveriem. Tad ar šo konektu tu norādītu uz kura servera izpildīt kuru kveriju.

×
×
  • Create New...