Gå til innhold

hente verdi fra a href


Anbefalte innlegg

Skrevet (endret)

Hei!

Nå står jeg fast igjen :(

 

Problemet mitt er det at jeg har en verdi som blir sendt i adresse linja, men jeg får ikke hentet den.

Jeg har det sånn som dette nå.

<a href='vise.php?cmd=delete&id=$id'>Slett</a>

if($_GET["cmd"]=="delete")
{
   mysql_query("DELETE FROM meldinger WHERE id=$id");
   echo "<br>Meldingen er slettet";

}

Det er i den siste delen her problemet ligger, verdien av $id blir vist som den skal i adresse linjen, men når jeg henter den sånn som jeg gjør er blir det satt som ingen ting. Håper noen kan hjelpe:D

Mvh Joakim Gjerde :)

Endret av joakim@hortensgutta
Videoannonse
Annonse
Skrevet

mysql_query("DELETE FROM meldinger WHERE id=$id");

 

skal bli til

 

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

 

...så kan sikkert noen annen skravle om sikkerhet og slikt :)

Skrevet (endret)

NEI. Ikke bruke GET i noe som gjør en endring. Lag evt et form for å bekrefte for å bruke $_POST isteden. aldri, aldri, aldri, aldri, aldri GET i noe som gjør en endring. ALDRI :p

Endret av allyse
Skrevet

allyse har sett du har skrevet dette tidligere, men du har ikke begrunnet hvorfor man ikke skal bruke GET. Kanskje du kan forklare litt mer hvorfor GET ikke skal/bør brukes?

Skrevet
allyse har sett du har skrevet dette tidligere, men du har ikke begrunnet hvorfor man ikke skal bruke GET. Kanskje du kan forklare litt mer hvorfor GET ikke skal/bør brukes?

5893330[/snapback]

 

Enkelt forklart. Si du bruker en link link.php?handling=slett&id=55

I og for seg er det ikke noe problem, men tenk dette.

 

1. En person skriver i browseren link.php?handling=slett&id=2555 Da kan du risikere du sletter noe du ikke vil

 

2. Du kjører f.eks caching. Den følger alle linkene dine, og vips har du slettet hele databasen din.

 

Grunnen til du må bruke post er for da kan ikke omgivelsene i seg selv følge linken. Du må manuelt klikke på en knapp for å sende informasjonen.

Skrevet
allyse har sett du har skrevet dette tidligere, men du har ikke begrunnet hvorfor man ikke skal bruke GET. Kanskje du kan forklare litt mer hvorfor GET ikke skal/bør brukes?

5893330[/snapback]

Altså det er en godt kjent sikkerhetsregel at GET aldri skal brukes til å endre noe. Det er også ganske åpenbart siden programmer som Google Web Accelerator cacher opp alle mulige linker den kommer over.

 

Så kort sagt: GET skal ALDRI, ALDRI, ALDRI endre noe direkte. Det finnes mer enn nok av de som har tabbet seg ut her.

Skrevet

men hvis get ligger i en session og som i mitt tilfelle så ligger brukernavnet som en verdi i querien til databasen.

Da vil det jo ikke skje noen ting da brukernavnet ikke er riktig og man heller ikke er logget inn i session.. eller?

Skrevet
men hvis get ligger i en session og som i mitt tilfelle så ligger brukernavnet som en verdi i querien til databasen.

Da vil det jo ikke skje noen ting da brukernavnet ikke er riktig og man heller ikke er logget inn i session.. eller?

5893469[/snapback]

 

Husk hvis du allerede er logget inn så kan en cacher gå. Mao så bryr ikke scriptet seg om det er du eller cacheren som går på sidene. dessuten er det god programmeringsskikk å ta hensyn til sikkerheten.

Skrevet
men hvis get ligger i en session og som i mitt tilfelle så ligger brukernavnet som en verdi i querien til databasen.

Da vil det jo ikke skje noen ting da brukernavnet ikke er riktig og man heller ikke er logget inn i session.. eller?

5893469[/snapback]

Vel, Google Web Accelerator o.l. integreres inn i nettleseren slik at alt du får lov til får programmet også lov til.

Skrevet (endret)

Ok..

Men er det da muliget å legge en skult verdi i et form?

sånn at det bare er submit knappen som syntes....??

Eller er ikke dette mulig?

 

Selvfølgelig

<input type="hidden">

Endret av joakim@hortensgutta
Skrevet
Ok..

Men er det da muliget å legge en skult verdi i et form?

sånn at det bare er submit knappen som syntes....??

Eller er ikke dette mulig?

5893538[/snapback]

 

<input name="navn" type="hidden" id="navn" value="verdi" />

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...