23. december 2003 - 22:32Der er
7 kommentarer og 1 løsning
Form send t. filen selv - kombineret med session
Jeg vil gerne have form var. sendt til filen selv - OG have forskellig form efter om det er første eller følgende gennemløb, vha. session. Men genstart af filen giver ikke ny form, selv om session skulle sikre det. Hvad mon der er galt?
<? if (!isset($_POST['action'])) { if (!isset($_SESSION['action'])) { print '<FORM METHOD="POST" ACTION="page15.php">'; // første form print '<input type="hidden" name="action" value="go">'; print 'Skriv dit navn: <input type="text" name="name">'; print '<input type="SUBMIT" value="Send">'; print '</FORM>'; } if (isset($_SESSION['action'])) { $_SESSION['name'] = $_POST['name']; $name = $_SESSION['name']; print '<FORM METHOD="POST" ACTION="page15.php">'; // anden form print '<input type="hidden" name="action" value="go">'; print '$name: Tryk bare <input type="text" name="name">'; print '<input type="SUBMIT" value="Send">'; print '</FORM>'; } }
if (isset($_POST['action'])) { echo "<br><br>"; $_SESSION['name'] = $_POST['name']; $name = $_SESSION['name']; echo "Dette er fra SESSION: $name <br><br>"; echo "Fortsæt til <a href='page15.php'>samme side forfra</a>"; // her kommer første form, IKKE anden, dvs. session virker ikke }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<? if (!isset($_POST['action'])) { if (!isset($_SESSION['action'])) { print '<FORM METHOD="POST" ACTION="page15.php">'; // første form print '<input type="hidden" name="action" value="go">'; print 'Skriv dit navn: <input type="text" name="name">'; print '<input type="SUBMIT" value="Send">'; print '</FORM>'; } if (isset($_SESSION['action'])) { $name = $_SESSION['name']; print '<FORM METHOD="POST" ACTION="page15.php">'; // anden form print '<input type="hidden" name="action" value="go">'; print "$name: Tryk bare <input type='text' name='name' value='".$name."'>"; print '<input type="SUBMIT" value="Send">'; print '</FORM>'; } }
if (isset($_POST['action'])) { echo "<br><br>"; $_SESSION['name'] = $_POST['name']; $_SESSION['action'] = "go"; $name = $_SESSION['name']; echo "Dette er fra SESSION: $name <br><br>"; echo "Fortsæt til <a href='page15.php'>samme side forfra</a>"; // her kommer første form, IKKE anden, dvs. session virker ikke }
2. form er inde i den "if", hvor betingelsen er, at 'action' ikke er sat, i POST-data. Men form 1 gør netop dette. Dvs. i første omgang skal du i hvert fald afslute den yderste "if" før form 2, i stedet for efter.
Foreløbig tak til jer begge, jeg prøver videre i morgen - eller måske først lidt senere :) Det fra detox er absolut et stort fremskridt - men er nødt til at gå i seng nu... Jeg skal bruge det til en tilmeldings formular, hvor man kun behøver udfylde alle data første gang, og derefter bare kan trykke ny tilmelding (måske er 2. form slet ikke nødvendig, i hvert fald skal jeg have fjernet feltet til indskrivning, laves til hidden...). Glædelig jul!
nej, myplacedk, det er ikke rigtigt, mit opr. udkast, og detox' forbedringer, er ens mht. if-betingelser... Og detox' ændringer nede i linierne virker - meget fint! ->detox: giver gerne point...
Omend jeg nu får nyt problem, kan jeg se:
Når 1. form ikke er udfyldt korrekt, reageres der jo først på det, når den er sendt - og så er det for sent at starte helt forfra, så har session overtaget/ så kommer 2. form (som nu kun er send endnu en tilmelding knap). Før brugte jeg ONCLICK='window.history.go(-1) for at komme tilbage fra fejl-meddelelserne, men det kan man ikke nu. Og hvad gør jeg så? ---hm...
Jeg tror ikke vi tænker på det samme, med "læser siden ind".
Anyway, løsningen på dit nye problem (hvis jeg har forstået dig korrekt denne gang): Hvis formen ikke er udfyldt korrekt, så lad være med at sætte de to sessions-variable, og vis en anden besked.
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.