Avatar billede allanj1 Nybegynder
27. september 2005 - 16:07 Der er 10 kommentarer og
1 løsning

Variabel med links

Jeg er lige startet på PHP.læser en bog"Start på PHP"
Har lige et problem.
<a href="test2.php?navn=jens">link</a>
denne skulle gerne sende variablen @navn til side test2.php ?

på test2.php skriver jeg så
<?php
echo "$navn";
?>
hvorfor skriver den ikke jens på test2.php

Håber der er en nem løsning, bliver mere og mere bange for at jeg ikke kan lære PHP :-)
Avatar billede jaw Nybegynder
27. september 2005 - 16:11 #1
Der er en ganske simpel løsning, nemlig:

echo $_GET['navn'];

Hvis register_globals på din server er sat off, kan du ikke direkte bruge $navn. Dette skyldes at det faktisk er ganske usikkert bare at bruge $navn, da en variabel du bruger et sted i dit script kan sættes af brugeren i adresselinien og derved "ødelægge" dit script.

Forståeligt? :)

Derfor altid brug $_SESSION['variabel'], $_GET['variabel'] (fra adresselinien) og $_POST['variabel'] (data sendt via en form).
Avatar billede jaw Nybegynder
27. september 2005 - 16:12 #2
Du kan checke om register_globals er on eller off hvis du vil, nemlig ved at lave en fil med indholdet:
<?
echo phpinfo();
?>

...køre den fra serveren i en browser, og finde register_globals. Du kan også kigge i php.ini, hvis du har adgang til den.
Avatar billede allanj1 Nybegynder
27. september 2005 - 16:22 #3
sådan.. Der står ikke noget om sessions i min lærebog
.. det må komme i næste bind :-)

men det virker.Smid lige et svar.
Avatar billede jaw Nybegynder
27. september 2005 - 16:23 #4
Nå jow, men der sker vel ikke noget ved at man lige lærer noget nyt?! :)

Hvis du ikke ved hvad en session er, kan jeg lige hurtigt fortælle, at det er en variabel der er global, altså kan bruges på alle sider på serveren, indtil brugeren han lukker sin browser eller at variablen fjernes.

Good luck med PHP :)
Avatar billede allanj1 Nybegynder
27. september 2005 - 16:24 #5
vil du ikke lige forklare dette igen "Dette skyldes at det faktisk er ganske usikkert bare at bruge $navn, da en variabel du bruger et sted i dit script kan sættes af brugeren i adresselinien og derved "ødelægge" dit script"
Avatar billede jaw Nybegynder
27. september 2005 - 16:35 #6
Joo, skal lige komme i tanke om et eksempel der kan forklare det.

Hvis vi nu leger, at du sætter en session, som gør, at den aktuelle bruger er admin, og derved kan f.eks. slette indlæg i et forum.

Hvis du bare bruger $admin således:
if($admin == "ja") {
  //alt hvad han nu kan
}
...så vil brugere kunne lave en adresselinie der er: side.php?admin=ja og på den måde være admins, uden egentlig at være det :)

Derimod vil rigtig kontrol være:
if($_SESSION['admin'] == "ja") {
  //alt hvad han nu kan
}

Forståeligt? :)
Avatar billede allanj1 Nybegynder
27. september 2005 - 17:32 #7
jaaaa måske :-)
en sidste ting...
jeg plejer jo at sætte mine variabler:
$mad = ost;
$drikke = vin;

det skal jeg stadig ?
men når de skal hentes:
$_SESSION['mad']
$_SESSION['drikke]

er det rigtigt forstået... er måske lidt langsom til at fatte, men vil bare gerne lære det ordentlig fra starten
Avatar billede jaw Nybegynder
27. september 2005 - 17:38 #8
Nej, det er ikke rigtigt, hvis det er ganske almindelige variabler du sætter og bruger, så skal det bare være $variabel.

$mad = "ost";
$drikke = "vin";

echo $mad;
echo $ost;
Avatar billede allanj1 Nybegynder
27. september 2005 - 18:40 #9
øhh.. det er nok lidt for tidligt at jeg kan forstå det endnu..
Kender du et sted det er forklaret på dansk.Jeg synes nemlig ikke jeg kan blive ved med at "bruge" dig for kun 15 poin. :-)
Avatar billede jaw Nybegynder
27. september 2005 - 18:43 #10
Så længe jeg ikke piver, så siger du bare til.

Men egentlig skal du bare tænke på variabler som 2 grupper: almindelige og specielle.

Med almindelige variabler, mener jeg variabler du både sætter og bruge i samme fil (script).
Specielle variabler er variabler du henter fra adresselinien, fra <form></form> og de tidligere nævnte sessions.

Og umiddelbart kender jeg ikke lige et bedre sted, men måske du kan bruge nogen af de artikler brugere herinde har skrevet om PHP?!
Avatar billede allanj1 Nybegynder
27. september 2005 - 20:54 #11
Jeg tror faktisk at det hjælper på det nu... nu må vi se:-)
Tusind tak for hjælpen !!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester