Checkboxabfrage, aber was ist falsch?

Seven Secrets

Erfahrenes Mitglied
Hallo,

ich habe ein Formularmailer mit Überprüfung der Eingabezeilen übernommen und eine Checkbox hinzu gefühgt. Diese soll nun kontrolliert werden und die mail nur senden, wenn ein Hacken drin ist. Das Script verweigert aber generel das senden. Wo liegt mein Fehler?

PHP:
<?php


	$erforderlich = explode (",", strtolower($erforderlich));

    if ($_POST[$Checkbox] == "akzeptiert"){

    $werte = array("erforderlich","fehler","weiterleitung","betreff","empfaenger","autoantwort","autoantwortbetreff");
	while (list($key, $val) = each($HTTP_POST_VARS))
	{
		if(in_array(strtolower($key),$erforderlich) AND $val=="") {
		header("Location: $fehler");
		exit;

		}

		if(!in_array(strtolower($key), $werte)) {
		$mailtext .= sprintf("%-19s: %s\n",$key,$val);
	}}

	//echo "<pre>$mailtext</pre>";
	//exit;

	mail ($empfaenger,$betreff,$mailtext, "From: $Email");

	if($autoantwort==true AND isset($Email)) {
	$file = @fopen("antwort.txt", "r");
		if (!$file) die("kann datei antwort.txt nicht öffnen");
			$inhalt = fread($file, filesize('antwort.txt'));
			fclose($file);

		mail ($email,$autoantwortbetreff,$inhalt, "From: $empfaenger");
		}

    } else {
    header("Location: $fehler");
    exit;
		}

?>

<html><head>
<meta http-equiv="refresh" content="0;URL=<? echo"$weiterleitung"; ?>">
</head><body></body></html>

Das Formualr dazu findet ihr unter http://www.boogie-palace.de
 
if ($_POST[$Checkbox] == "akzeptiert"){
Wenn das hier wirklich so in deinem Code steht, dann würde ich mal versuchen anstelle von $Checkbox den Checkboxnamen ohne $ in die Elementklammern zu schreiben.

Wenn das nur symbolisch stand, würde ich an diversen Stellen echos einbauen, die dir Zeigen ob bestimmte Fälle überhaupt eintreten oder was z.B. in $_POST[$Checkbox] (?) steht.
 
Das Kontaktformular dazu siehet so aus:

PHP:
<body bgcolor="#006699">
<div align="center" valign="top"> 
  <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0"
bgcolor="#006699" valign="top">
    <tr> 
      <td valign="top" bgcolor="#006699" width="100%" height="424"> 
        <p align="left"> <strong><font face="Arial, Helvetica, sans-serif, Comic Sans MS"> 
          <font color="#FFFFFF" size="4">Kontakt</font></font></strong> </p>
        <div align="center">
<center>
            <table border="0" cellspacing="0" cellpadding="1"
    align="center" bgcolor="#006699" width="85%">
              <tr> 
                <td><table border="0" width="100%" align="center" bgcolor="#FFFFFF" cellspacing="0"
        cellpadding="4">
                    <tr bgcolor="#006699"> 
                      <td align="center"><font color="#FFFFFF" face="Verdana"><small><span class="white"><b>Bitte 
                        füllen sie dieses Formular aus:<br>
                        </b></span></small></font></td>
                    </tr>
                    <tr> 
                      <td> <form name="anmelden" method="post" action="mailer.php">
                          <input type="hidden" name="erforderlich" value="email,name,strasse,***,email,anfrage,checkbox">
                          <input type="hidden" name="fehler" value="fehler.htm">
                          <input type="hidden" name="weiterleitung" value="danke.htm">
                          <input type="hidden" name="empfaenger" value="webmaster@boogie-palace.de">
                          <input type="hidden" name="Betreff" value="Kontaktmailanfrage">
                          <input type="hidden" name="autoantwort" value="true">
                          <input type="hidden" name="autoantwortbetreff" value="Danke für die Anfrage">
                          <div align="center">
                            <center>
                              <table
              border="0" width="100%" cellpadding="0" cellspacing="0" align="center">
                                <tr> 
                                  <td width="21%"><small><font face="Verdana">Name:</font></small></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <input type="text" name="Name" size="50">
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td><small><font face="Verdana">Straße:</font></small></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <input type="text" name="Strasse" size="50">
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td><small><font face="Verdana">***, Ort:</font></small></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <input type="text" name="***" size="50">
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td><small><font face="Verdana">Email:</font></small></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <input type="text" name="Email" size="50">
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td><hr> </td>
                                  <td colspan="2"><hr> </td>
                                </tr>
                                <tr> 
                                  <td><small><font face="Verdana">Anfrage:</font></small></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <textarea name="Anfrage" cols="44" rows="6"></textarea>
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td><div align="right"> </div></td>
                                  <td colspan="2">&nbsp;</td>
                                </tr>
                                <tr> 
                                  <td><div align="right"> 
                                      <input type="checkbox" name="Checkbox" value="akzeptiert">
                                    </div></td>
                                  <td width="3%">&nbsp;</td>
                                  <td width="76%"><font size="-2" face="Arial, Helvetica, sans-serif, Comic Sans MS">Heiremit 
                                    best&auml;tige ich, dass ich mit dem<br>
                                    Senden meiner Daten einverstanden bin!</font></td>
                                </tr>
                                <tr> 
                                  <td><font face="Verdana">&nbsp;</font></td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    </font></small></td>
                                </tr>
                                <tr> 
                                  <td>&nbsp;</td>
                                  <td colspan="2"><small><font face="Verdana"> 
                                    <input name="submit" type="submit" value="senden">
                                    </font></small></td>
                                </tr>
                              </table>
                            </center>
                          </div>
                        </form></td>
                    </tr>
                  </table></td>
              </tr>
            </table>
          </center>
        </div></td>
    </tr>
  </table>
</div>
</body>

Darin befindet Sich die Checkbox mit gleichem Namen.
 
Ja aber dann musst du die Variable $_POST['Checkbox'] auf akzeptiert überprüfen und nicht $_POST[$Checkbox]. Das $ hat in der Elementklammer des superglobalen POST Array's nichts zu suchen.
 
PHP:
$_POST['submitbutton_name'] == "submitbutton_value"
// Das tritt z.B. auch nur ein, wenn du den Button drückst.
//Könntest du auch checken, aber dein anderer Check sollte
//auf jedenfall auch gehen.
$_POST['checkbox_name'] == "checkbox_value"
//Das Prinzip ist immer das gleiche.
 
Zurück