Checkbox, prüfen ob ein Haken gesetzt wurde
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
also,
ich möchte auf meiner Homepage eine Anmeldung einbauen. In der auch eine Checkbox ist. Es soll dann in der datei Anmeldung_prüfen.php irgendwie geprüft werden (möglichst mit if Funktion) ob man den Hacken in die Checkbox gemacht hat.
<form method="post" action="Anmeldung_prüfen.php>
<input type=checkbox name="Regeln" value="ok"> mit der Anmeldung akzeptiere ich die <a href="Regeln.php">Regeln</a><br>
<input type="submit" value=" Anmelden ">
</form>
Danke schonmal im Voraus.
Gruss -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
if($_POST["Regeln"] == "checked") { // Regeln wurden aktzeptiert } else { echo "Sorry, du musst die Regeln aktzeptieren"; }
-
trueweb schrieb:
if($_POST["Regeln"] == "checked")
ich hätte gesagt statt "checked" den value vom input.. also "ok", bin mir aber nicht sicher -
Ok, danke, jetzt geht's.
Es geht übrigens mit dem "ok", mit dem "checked" gings leider nicht.
Gruss
Beitrag zuletzt geändert: 22.1.2009 15:45:00 von moonfight -
moonfight schrieb:
also,
ich möchte auf meiner Homepage eine Anmeldung einbauen. In der auch eine Checkbox ist. Es soll dann in der datei Anmeldung_prüfen.php irgendwie geprüft werden (möglichst mit if Funktion) ob man den Hacken in die Checkbox gemacht hat.
<form method="post" action="Anmeldung_prüfen.php>
<input type=checkbox name="Regeln" value="ok"> mit der Anmeldung akzeptiere ich die <a href="Regeln.php">Regeln</a><br>
<input type="submit" value=" Anmelden ">
</form>
Danke schonmal im Voraus.
Gruss
Jap hast recht, müsste aber so funktionieren wie ich geschrieben habe, wenn man das Value-Atribut nicht angegeben hat. Sorry, mein Fehler, hab ich übersehn ;)
moonfight schrieb:
Ok, danke.
Genau das wusste ich eben nicht wie man das macht.
Gruss
Genau gleich von der Logik her:
if($_POST["Regeln"] == "ok") { ...
Beitrag zuletzt geändert: 22.1.2009 15:39:02 von trueweb -
Hallo,
ich bin einigermaßen verzweifelt. Ich habe ein bestehendes Script erweitern wollen, aber irgendwie hab ich einen Knoten im Kopf...
Ich möchte eine Checkbox (Einwilligung (if(kontaktFormular.einWilligung.value == "checked") {
msg += "- Die Einwilligung fehlt.\n";)) abfragen, ob Haken gesetzt oder eben nicht, aber ich verwende sicher einen falschen Parameter.
Anbei das Script:
<?php $formularAnzeigen = false; if (!empty($_POST["senden"]) && ( empty($_POST["vorName"]) || empty($_POST["nachName"]) || empty($_POST["eMail"]) || empty($_POST["betreff1"]) || empty($_POST["nachricht"]))) { $formularAnzeigen = true; echo '<span class="text"><strong>Bitte alle Pflichtfelder ausfuellen.</strong></span>'; } else if (!empty($_POST["senden"]) && !isEmail($_POST["eMail"])) { $formularAnzeigen = true; echo '<span class="text"><strong>Die E-Mail-Adresse ist nicht korrekt.<strong></span>'; } else if (empty($_POST["senden"])) { $formularAnzeigen = true; } if ($formularAnzeigen) { ?></P> <!-- .......................................................................... --> <!-- Anfang Formular --> <!-- ............... --> <!-- .......................................................................... --> <script language=JavaScript> <!-- function isValid() { var msg = ""; if (kontaktFormular.eMail.value.indexOf("@") < 1 || kontaktFormular.eMail.value.indexOf(".") < 1) { msg += "- Die E-Mail-Adresse ist syntaktisch nicht korrekt.\n"; } if(kontaktFormular.vorName.value == "") { msg += "- Leeres Feld: Vorname:\n"; } if(kontaktFormular.nachName.value == "") { msg += "- Leeres Feld: Nachname:\n"; } if(kontaktFormular.betreff1.value == "") { msg += "- Leeres Feld: Betreff:\n"; } if(kontaktFormular.nachricht.value == "") { msg += "- Leeres Feld: Nachricht:\n"; } if(kontaktFormular.einWilligung.value == "checked") { msg += "- Die Einwilligung fehlt.\n"; } if(msg == "") { return true; } alert(msg); return false; } --> </script> </p> <form name="kontaktFormular" method="post" action="<?=$_SERVER[PHP_SELF]; ?>" onSubmit="return isValid()"> <table width="430" border="0"> <!--anfang Anrede--> <tr> <td width="8" class="text"> </td> <td width="99" class="text"> <strong>Anrede:</strong> </td> <td colspan="2"> <select name="anrede" class="text"> <option <?=($_POST['anrede']=='Herr')?'selected':''?>>Herr</option> <option <?=($_POST['anrede']=='Frau')?'selected':''?>>Frau</option> </select></td> </tr> <!--ende anrede--> <!--anfang vorName--> <tr> <td class="text"><div align="center">*</div></td> <td class="text"><strong> Vorname: </strong></td> <td colspan="2"> <input name="vorName" type="text" class="text" title="" value="<?=$_POST['vorName']; ?>" size="37" /></td> </tr> <!--ende vorName--> <!--anfang nachName--> <tr> <td class="text"><div align="center">*</div></td> <td class="text"><strong> Nachname: </strong></td> <td colspan="2"><input name="nachName" type="text" class="text" title="" value="<?=$_POST['nachName']; ?>" size="37" /></td> </tr> <!--ende nachName--> <!--anfang eMail--> <tr> <td class="text"><div align="center">*</div></td> <td class="text"><strong> Ihre E-Mail: </strong></td> <td colspan="2"><input name="eMail" type="text" class="text" id="eMail" title="" value="<?=$_POST['eMail']; ?>" size="37" /></td> </tr> <!--ende eMail--> <!--anfang betreff1--> <tr> <td class="text"><div align="center">*</div></td> <td class="text"><strong> Betreff: </strong></td> <td colspan="2"><input name="betreff1" type="text" class="text" id="betreff1" title="" value="<?=$_POST['betreff1']; ?>" size="37" /></td> </tr> <!--ende betreff1--> <!--anfang nachricht--> <tr> <td class="text"><div align="center">*</div></td> <td class="text"><strong> Nachricht: </strong></td> <td colspan="2"><textarea name="nachricht" cols="37" rows="10" class="text" title=""><?=$_POST['nachricht']; ?></textarea></td> </tr> <!--ende nachricht--> <!--anfang kopie--> <tr> <td class="text"> </td> <td class="text"><strong> Kopie an Sie: </strong></td> <td colspan="2" align="left"><input name="kopie" type="checkbox" class="text" title="" value="checked" align="" <?=$_POST['kopie']; ?>></td> </tr> <!--ende kopie--> <!--anfang einwilligung--> <tr> <td class="text" valign="top"><div align="center">*</div></td> <td valign="top" class="text"><strong> Einwilligung: </strong></td> <td width="31" valign="top" align="left"><input name="einWilligung" type="checkbox" class="text" title="" value="checked" align="" <?=$_POST['einWilligung']; ?>></td> <td width="274" valign="top" align="center" class="text"><p>Ich habe die <a href="datenschutz.html"><span class="textlink">Datenschutzerklärung</span></a> zur Kenntnis genommen. Ich stimme zu, dass meine Angaben und Daten zur Beantwortung meiner Anfrage elektronisch erhoben und gespeichert werden.</p> <p><br /> <strong>Hinweis:</strong> Sie können Ihre Einwilligung jederzeit für die Zukunft per E-Mail an <a href="mailto:info@XYZ,,de"><span class="textlink">info@XYZ.de</span></a> widerrufen.</p></td> </tr> <!--ende einwilligung--> <tr class="text"> <td colspan="4"> <div align="center"> <input name="senden" type="submit" title="" value="Senden" /> </div> </td> </tr> </table> </form> <?php echo''; } else { $eMail = ' Anrede: '.$_POST['anrede'].' Vorname: '.$_POST['vorName'].' Nachname: '.$_POST['nachName'].' E-Mail: '.$_POST['eMail'].' Betreff: '.$_POST['betreff1'].' Nachricht: '.$_POST['nachricht'].' Kopie der Nachricht: '.$_POST['kopie'].' Einwilligung: '.$_POST['einWilligung'].''; if (@mail("info@XYZ.de", "Neue Nachricht vom Kontaktformular", $eMail)) { echo "Ihre Nachricht wurde Ann XYZ versandt. Vielen Dank!<br />"; } else { echo "Der E-Mail-Verkehr funktioniert zur Zeit nicht.<br />"; } if ($_POST['kopie']) { if (@mail($_POST['eMail'], "Dies ist die Kopie Ihrer Nachricht an XYZ.", $eMail)) { echo "Eine Kopie der von Ihnen verfassten Nachricht wurde an Sie versandt.<br />"; } } } function isEmail($email) { $nonascii = "\x80-\xff"; $nqtext = "[^\\$nonascii\015\012\"]"; $qchar = "\\[^$nonascii]"; $protocol = "(?:mailto:)"; $normuser = "[a-zA-Z0-9][a-zA-Z0-9_.-]*"; $quotedstring = "\"(?:$nqtext|$qchar)+\""; $user_part = "(?:$normuser|$quotedstring)"; $dom_mainpart = "[a-zA-Z0-9][a-zA-Z0-9._-]*\."; $dom_subpart = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*"; $dom_tldpart = "[a-zA-Z]{2,5}"; $domain_part = "$dom_subpart$dom_mainpart$dom_tldpart"; $regex = "$protocol?$user_part\@$domain_part"; if (preg_match("/^$regex$/",$email)) { return true; } return false; } ?>
Danke vorab für Eure hilfreichen Impulse.
Beitrag zuletzt geändert: 12.1.2020 15:52:05 von littlejoe -
@littlejoe
Statt den Wert abzufragen solltest du die Eigenschaft checked abfragen. Siehe: https://www.w3schools.com/JSREF/prop_checkbox_checked.asp
Das heißt, du musst diese Zeile:
kontaktFormular.einWilligung.value == "checked"
Mit dieser austauschen:
kontaktFormular.einWilligung.checked == false
Dann sollte es funktionieren.
Beitrag zuletzt geändert: 13.1.2020 11:20:37 von witze-dschungel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage