Avatar billede bas Forsker
14. marts 2010 - 22:43 Der er 5 kommentarer og
1 løsning

Sessions imellem to filer

Hej

Hvordan er det der er med sessions i PHP?

Jeg vil lave en simpel kontaktformular bestående af 2 filer.
Jeg ved godt, at jeg kan lave det hele i én fil, men nu vil jeg lige prøve med 2 igen.

I fil nummer 1 har jeg øverst:

<?php

session_start();
$_SESSION[sesnavn]= $_POST['navn'];
$_SESSION[sesemail]= $_POST['email'];
$_SESSION[sesemne]= $_POST['emne'];
$_SESSION[sesbesked]= $_POST['besked'];

og derunder selve formularen.

Action i formularen henviser til fil nummer 2.
Fil nummer 2 validerer det indtastede, og sender en mail med det indtastede, hvis alt er korrekt.

Hvis noget fejler kommer der en besked herom samt et linkt ilbage til filen med formularen:

echo "Indtast venligst dit navn.<br />";
    echo "<a href='mailform.php' onfocus='this.blur();'>Tilbage</a>";

Jeg vil gerne bruge sessionerne til at sørge for, at de felter, som er udfyldt korrekt ikke ryddes, når man klikker på tilbage-linket i fil nummer 2.

Men hvad skal der stå mht. sessions i filerne for at sessionerne "huskes" imellem dem?

I felt-tag'ene har jeg f.eks. skrevet value='$_SESSION[sesnavn]'.
dette virker fint, når jeg bruger PHP_self som action, men ikke når jeg bruger de to filer.

Kan nogen evt. henvise til et eksempel eller kort forklare, hvad der skal til?

På forhånd tak.

Venlig hilsen
Martin
Avatar billede Slettet bruger
14. marts 2010 - 22:47 #1
Du skal definere sessionsvariablerne i fil nummer 2, i stedet for i fil nummer et. Alt hvad du ellers har forklaret lyder korrekt.
Avatar billede bas Forsker
14. marts 2010 - 23:09 #2
Hej

Mange tak for den hurtige og rigtige løsning.
Det ser nu ud til at fungere efter hensigten.
Superfedt!

Poster du et svar.

Venlig hilsen
Martin
Avatar billede Slettet bruger
15. marts 2010 - 16:37 #3
Jamen, selv tak. Jeg er da glad for at kunne hjælpe :)
Avatar billede bas Forsker
15. marts 2010 - 19:37 #4
Hej

Du får selvfølgeligt dine points, men  jeg har lige et tillægsspørgsmål.

I min fil 1 med formularen har jeg en annuller-knap <input type='reset' name='reset' value='Annuller'>

Kan jeg vha. php få den til resette / tømme formularen, selvom
sessions husker og viser det indtastede?

Jeg tænker på noget i retning af:

if (isset($_POST['reset'] )) {

session_destroy();

}

Eller det er måske ikke umiddelbart muligt?
Avatar billede Slettet bruger
15. marts 2010 - 20:52 #5
Hvis du tænker på at slette sessionsvariablerne, når brugeren trykker på "Annuller"-knappen, så er det kun muligt på to måneder.
1) Send et AJAX-kald til et PHP-script som sletter sessionsvariablerne.
2) Set værdien af et "hidden"-felt med Javascript og slet sessionsvariablerne når formularen bliver modtaget i fil nummer 2.
Avatar billede bas Forsker
15. marts 2010 - 21:47 #6
Ok, tak for løsningsforslagene.

Jeg tror jeg dropper det lige i denne omgang, det er ikke så vigtigt.
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