webForumDet fria alternativet

skicka med ett värde med en länk.

PHP

9 svar · 355 visningar · startad av kalleklätter

Medlem sedan apr. 200354 inlägg
Frågan#1

hejsan.
jag har en liten fråga.
jag undrar hur man skickar med värdet från en länk till en annan sida där värdet sedan skall fortsätta användas.
länken som ska skicka vidare värdet ser ut som följer (alltså $id ska tas emot av sidan remove)...om jag nu har förstått det på korrekt sätt...

echo "<td><A HREF ='remove.php?=$id'><IMG SRC='remove.gif' width='18' height='16' border='0'></A></td>";

på sidan som tar emot värdet ser koden ut så här:

<?php 
include "conn.php";
session_start();

if (!isset($_SESSION['sess_user'])){ 
  header("Location: failed.php"); 
  exit; 
} 
else
	{
	mysql_query("DELETE FROM guestbok WHERE id = '$id'");
	}
?>
Posten har tagits bort!

borde inte detta funka? eller kommer inte id-värdet att skickas med på detta sätt till remove.php?

tacksam för svar. =)

Medlem sedan apr. 200354 inlägg
#2

jag kan ju också snabbt säga att jag får felmeddelandet att $id inte är definierat...men jag trodde att det blir automatiskt definierat när man skickar med det som ovan?

Medlem sedan sep. 2001788 inlägg
#3

För att ditt exempel ska fungera så måste globala variabler var påslaget (i configfilen). Du verkar inte ha det så, vilket är bättre rent säkerthetsmässigt samt även bättre ut kodningssynpunkt.

Du kommer åt en variabel som du har skickat vi en URL genom $_GET['variabelnamn'].

Så för att använda din SQL-fråga:

 mysql_query("DELETE FROM guestbok WHERE id = '".$_GET['id']."'");

Enkelfnuttarna (') bör tas bort kring id-variablen om det är en siffra.

/Grodan

Medlem sedan apr. 200354 inlägg
#4

hmm...jag får det ändå inte att fungera även när jag har lagt in:

else
{
mysql_query("DELETE FROM guestbok WHERE ID = '".$_GET['id']."'");
}

funkade inte heller när jag tog bort enkel-situationstecknen runt id... =((( får detta felmeddelande:

Notice: Undefined index: id in c:\inetpub\wwwroot\php\gbtest\admin\remove.php on line 11
Posten har tagits bort!

Medlem sedan sep. 2001788 inlägg
#5

Hmm... hur ser URL:en ut efter att du har klickat på länken?

Medlem sedan apr. 200315 inlägg
#6

Hmm, ser ut som att den aktuella posten du vill radera inte existerar. Du kanske redan har tagit bort den?

Medlem sedan aug. 20002 975 inlägg
#7

><A HREF ='remove.php?=$id'><

Ett variabelnamn bör väl nästan saknas här.

><A HREF ='remove.php?id=$id'><
Medlem sedan apr. 200354 inlägg
#8

så här ser värdet ut som skickas när man klickar på remove-länken:

http://localhost/php/remove.php?=12

Medlem sedan apr. 200354 inlägg
#9

och då är ju frågan om "mottagarsidan" förstår att det är ID12 som gäller?

Medlem sedan aug. 20002 975 inlägg
#10

Skickar du http://localhost/php/remove.php?id=12 så kommer du i remove.php ha variabeln $_GET['id'] med värde 12. Är register_globals=On så kommer du dessutom att ha variabeln $id med värde 12.

Skickar du däremot http://localhost/php/remove.php?=12 så kommer det inte att generera en variabel i remove.php, utan då kan du lika gärna skriva http://localhost/php/remove.php?12 och ta fram ditt värde med $_SERVER['QUERY_STRING'].

Men jag vill rekommendera att du använder den första varianten.

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)