mehrere checkbox prüfen

strukturart

Erfahrenes Mitglied
Was mache ich denn da falsch?

PHP:
else if (empty($_POST['freitag']) || empty($_POST['samstag']) || empty($_POST['sonntag'])  ){
 echo $fehler; 
}
 
Auch wenn mich dir Namensgebung deiner Variable verwirrt, sollte eine Negation jeder einzelnen Teiloperation zum Erfolg führen. Außerdem heißt es in PHP elseif und nicht else if, also ohne Leerzeichen dazwischen:
PHP:
} elseif(!empty($_POST['freitag']) || !empty($_POST['samstag']) || !empty($_POST['sonntag'])) { 
  echo $fehler;  
}
 
Leider wird Prüfung der Checkbox ignoriert.


posten mal den kompletten Code:

PHP:
<form   method="post"  class="formular_text">
 <table>
      <tr>
        <td>Vorname <i>Prénom</i></td>
        <td><input type="text" name="vorname" id="vorname" value="<?php if (isset($_REQUEST['vorname'])) echo htmlspecialchars($_REQUEST['vorname']); ?>"></td>
        </tr>
        <tr>
        <td>Name <i>Nom</i></td>
        <td><input type="text" name="name" id="name" value="<?php if (isset($_REQUEST['name'])) echo htmlspecialchars($_REQUEST['name']); ?>"></td>
        </tr>
         <tr>
        <td>E-Mail <i>E-mail</i></td>
        <td><input type="text" name="email" id="email" value="<?php if (isset($_REQUEST['email'])) echo htmlspecialchars($_REQUEST['email']); ?>"></td>
        </tr>
         <tr>
        <td>Telefon <i>Téléphone</i></td>
        <td><input type="text" name="telefon" id="telefon" value="<?php if (isset($_REQUEST['telefon'])) echo htmlspecialchars($_REQUEST['telefon']); ?>"></td>
        </tr>
        </table>        
<input type="checkbox" name="freitag" value="Freitag" > Freitag <i> Vendredi</i> 8.9
<input type="checkbox" name="samstag" value="Samstag"> Samstag <i>Samedi</i> 9.9
<input type="checkbox" name="sonntag" value="Sonntag"> Sonntag <i>Dimanche</i> 10.9


<spam class="formular_text"> Mitteilung <i>Message</i>
<textarea  name="message" cols="50"rows="5" id="message"  value="<?php if (isset($_REQUEST['message'])) echo htmlspecialchars($_REQUEST['message']); ?>"></textarea><br>

<input type="submit" name="submit"   value="senden">
<br>

<?php

 if(isset($_POST['submit'])){
	
$fehler="<spam class='formular_fehler'>Bitte alle  Felder ausfüllen.</spam>";
	
if (empty($_POST['name'])){
 echo $fehler; 
}
elseif (empty($_POST['vorname'])){
 echo $fehler; 
}
elseif (empty($_POST['email'])){
 echo $fehler; 
}
 elseif(!empty($_POST['freitag']) || !empty($_POST['samstag']) || !empty($_POST['sonntag'])){ 
 echo $fehler;  
}
 
In deinem Fall musst du auch die Negation des Ganzen verwenden:
PHP:
} elseif(empty($_POST['freitag']) && empty($_POST['samstag']) && empty($_POST['sonntag'])) { 
  echo $fehler;  
}
 
Zurück