27. december 2004 - 00:00Der er
15 kommentarer og 1 løsning
Lille spørgsmål om isset og empty
Goddag.
Ja jeg har altså en form der ser således ud: <form action="ikke_aktiveret.php" method="post"> <b>Kode:</b><br /> <input type="text" name="akt_kode"><br /> <b>E-Mail:</b><br /> <input type="text" name="email_address"><br /><br /> <input type="submit" name="Kode" value="Okay"> </form>
Hvis der bliver trykket på Okay, så skal den skrive, begge indtastet, intet indtastet, eller du mangler kode/email.
if ( isset( $_POST['Kode'] ) ) { // vi ved formen blev submittet, så det er umagen værd at teste de to felter. if ( isset( $_POST['email_address'] ) ) { // Ja, der blev skrevet noget i email_address feltet if ( isset( $_POST['akt_kode'] ) { // og også i akt-kode echo "begge indtastet"; } else { echo "du mangler akt_kode"; } } else { // ingenting i lmail_address if ( ! isset( $_POST['akt_kode'] ) { // og heller ikke i akt_kode echo "intet indtastet"; } else { echo "do mangler email_address"; } } }
Det er måske en idé at benytte empty() i stedet for, den kontroller også om strengen er tom. Bliver formen submitted, vil alle tekstfelter autoamtisk være sat. Så alle ovenstående isset() er faktisk unødvendige..
Ups. i begge de inderste if sætninger mangler der en ) if ( isset( $_POST['akt_kode'] ) ) { // tilføjet ')' men jeg er bange for ranglen har ret. det bør være if ( !empty( $_POST['akt_kode'] ) ) {
jakoba. Du er gammel bruger her på e, og jeg har den dybeste respekt, men dit svar er ikke helt smukt...
1) du mangler en ) i linie 6 og 14. 2) hvis man blot klikker "Okay" / submit, siger den "begge indtastet". De bliver set, når de bliver instantieret
Derfor...
<?php if ( isset( $_POST['Kode'] ) ) { // vi ved formen blev submittet, så det er umagen værd at teste de to felter. if ( !empty( $_POST['email_address'] ) ) { // Ja, der blev skrevet noget i email_address feltet if ( !empty( $_POST['akt_kode'] )) { // og også i akt-kode echo "begge indtastet"; } else { echo "du mangler akt_kode"; } } else { // ingenting i lmail_address if ( empty( $_POST['akt_kode'] )) { // og heller ikke i akt_kode echo "intet indtastet"; } else { echo "do mangler email_address"; } } } ?> <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> <b>Kode:</b><br /> <input type="text" name="akt_kode"><br /> <b>E-Mail:</b><br /> <input type="text" name="email_address"><br /><br /> <input type="submit" name="Kode" value="Okay"> </form>
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.