Avatar billede farhang Nybegynder
26. oktober 2006 - 19:44 Der er 8 kommentarer og
1 løsning

Opsætning af session i eksisterende kode

Jeg har 3 sider med sessions, men jeg har to radiobuttons, som jeg ikke kan opsætte korrekt:

side1:
<?php
if (!session_id()) {
  session_start();
}
?>

side2:
<?php
session_start();
?>
Ja<input type="radio" name="gave" value="ja" />
Nej<input type="radio" name="gave" value="nej" />

side3:
<?php
session_start();
setcookie("gave", $gave, time() + 900, "/");
?>
<?php
if ($_POST['same'] == 'on') {
  $_POST['shipfornavn'] = $_POST['fornavn'];
  $_POST['shipefternavn'] = $_POST['efternavn'];
  $_POST['shipadresse1'] = $_POST['adresse1'];
  $_POST['shipadresse2'] = $_POST['adresse2'];
  $_POST['shippostnr'] = $_POST['postnr'];
  $_POST['shipby'] = $_POST['by'];
  $_POST['shiptelefon'] = $_POST['telefon'];
  $_POST['shipmobil'] = $_POST['mobil'];
  $_POST['shipemail'] = $_POST['email'];
}
if($_COOKIE["gave"] == 'ja')
{
  $ja = "checked";
}
if($_COOKIE["gave"] == 'nej')
{
  $nej = "checked";
}
?>
Ja<input type="radio" <?php echo $ja; ?> name="gave" value="ja" />
Nej<input type="radio" <?php echo $nej; ?> name="gave" value="nej" />

Hvad gør jeg forkert?
Avatar billede zynzz Praktikant
26. oktober 2006 - 19:54 #1
session_start();

Skal være øverst på alle siderne...
Avatar billede jannek_ek Nybegynder
26. oktober 2006 - 20:07 #2
jeg mener bestemt ikke du kan bruge en cookie du først har defineret på den pågældene side.

noget andet er at det hedder checked="checked" (kan godt ske at brwseren kan forstå det andet).
Avatar billede farhang Nybegynder
26. oktober 2006 - 20:35 #3
session_start(); har jeg øverst på alle mine sider.

Kan jeg ikke bruge session istedet for cookie? Hvordan skal mine radiobuttons sættes op?
Avatar billede jannek_ek Nybegynder
26. oktober 2006 - 20:52 #4
Session er egentligt bare et array der ligger i serverens hukommelse til det ikke skal bruges mere (når serveren ikke har hørt fra brugeren i tilstrækkelig lang tid - ofte 30 min).
du kan tilføje en værdi ved at sige:
$_SESSION['navn'] = "værdi";
$_SESSION['tal'] = 4;

og du kan så hente værdierne vha.

echo $_SESSION['navn'];

altså arrayet det hele ligger i hedder _SESSION
Avatar billede jannek_ek Nybegynder
26. oktober 2006 - 20:56 #5
Hov glemte dine knapper:

<form action="enEllerAndenSide.php" method="post">
  Ja<input type="radio" <?php echo $ja; ?> name="gave" value="ja" />
  Nej<input type="radio" <?php echo $nej; ?> name="gave" value="nej" />
  <br />
  <input type="submit" value="ok" />
</form>

den valgte værdi skal hedde checked="checked"
Avatar billede farhang Nybegynder
26. oktober 2006 - 21:11 #6
Det virker ikke:

side2:
<?php
session_start();
$_SESSION['gave'] = "ja";
$_SESSION['gave'] = "nej";
?>
Ja<input type="radio" name="gave" value="ja" />
Nej<input type="radio" name="gave" value="nej" />

side3:
<?php
session_start();
?>
Ja<input type="radio" <?php echo $ja; ?> name="gave" value="ja" />
Nej<input type="radio" <?php echo $nej; ?> name="gave" value="nej" />
Avatar billede jannek_ek Nybegynder
26. oktober 2006 - 21:20 #7
nej det gør det ikke
først siger du at $_SESSION['gave'] skal have værdien "ja", og i linien derunder giver du den værdien "nej".

setcookie("gave", $gave, time() + 900, "/");

skal laves om til

$_SESSION['gave'] = $_POST['gave'];

og

if($_COOKIE["gave"] == 'ja')
{
  $ja = "checked";
}
if($_COOKIE["gave"] == 'nej')
{
  $nej = "checked";
}

laves om til

if($_SESSION['gave'] == "ja")
{
  $ja = "checked=\"checked\"";
}
if($_SESSION['gave'] == "nej")
{
  $nej = "checked=\"checked\"";
}

så burde det virke
Avatar billede farhang Nybegynder
26. oktober 2006 - 21:58 #8
Tak, det virker nu.

Smid et svar.
Avatar billede jannek_ek Nybegynder
26. oktober 2006 - 22:03 #9
det var så lidt :P
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