Send data til session?

Tags:    php

Jeg er ved at lave en PHP webshop og er så snart færdig med den.

Når jeg for brugeren til at skrive fx sin adresse gør jeg sådan her:

Fold kodeboks ind/udKode 


Men er der ikke en bedre metode at sende så noget her data til en session???



4 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jacob har ret det der vil ikke gøre noget som helst ved session. For at sætte variabler i session udfra bruger input er der 2 måder, den ene er via en form og den anden er via selve linket. Fra links kan du hente værdier på den side der bliver linket til i $_GET, f.eks. ville du med linket www.bla.dk/test.php?id=1
kunne hente værdien 1 i $_GET['id'] i filen test.php.

Fra forme kan du alt afhængig af om form attributten method er sat til get eller post kunne hente fra værdier fra enten $_GET eller $_POST. I den side der bliver referet til i formens action attribut. f.eks. ville de med følgende form:
Fold kodeboks ind/udKode 

vil du i filen test.php kunne hente værdien der er blevet skrevet i feltet med attributet name sat til navn i $_POST['navn'].

For at sætte en værdi i session under 'navn' skal du så i test.php, hvis du f.eks. bruger formen skrive følgende.

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

De to indeks strenge behøver selvfølgelig ikke at være de samme.

Hvis der er noget error testing på om det som bliver skrevet i en form er korrekt, vil det være venligt når du genviser formen at du selv udfylder alle de felter der var korrekte dette kan gøres ved at rette form koden til:
Fold kodeboks ind/udKode 

skal selvfølgelig være $_GET hvis formens method er sat til get og ikke post som i eksemplet. Så skal du bare huske at i din php kode i test.php at sætte et indeks i $_POST til "" hvis der er forkert udfyldt f.eks:
Fold kodeboks ind/udKode 

Såfremt man laver sådan noget skal man huske lige at skrive til brugeren hvad fejlen er i den udfyldte form, dette kan enten gøres i toppen af formen eller ved siden af feltet der er forkert, hvis vi antager du vil skrive det ved siden af feltet kunne de sætte en variable kalde $error_navn i if sætningen til at holde fejlbeskeden kunne se således ud:
Fold kodeboks ind/udKode 

så kunne form koden se ud som følger
Fold kodeboks ind/udKode 


Dette vil dog kræve at test.php indeholder eller includer koden til formen. og at den kommer efter valideringen af inputet. Det kan simplest skrives således her:
test.php
Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 08.12.2007 08:22 af Bruger #5620
Jeg er ikke sikker på, om jeg følger dig korrekt, men din kode gør ikke andet end at skrive FRA en sessionsvariabel.



I den kode stump som er der, sender du ikke noget data, du udskriver bare en session som højest sandsynligt ikke findes.


Hvorfor lader du ikk brugeren oprette en bruger i din webshop, så slipper brugeren for at skulle skrive alle sine adresse informationer hver gang brugeren handler i shoppen.





Jo det stykke kode her angiver på min side at brugeren skriver sin data inde i tekstboksen og sender det til SESSION.

Og jeg vil ikke lave en database med brugere da jeg synes det er forkert at holde dataene sådan og desuden er jeg ikke så godt til PHP endnu.

Her er nok et bedre stykke:

Fold kodeboks ind/udKode 




t