Donut: Affenformular + Radio Button

Hallo Leute!

Mich hat eine Freundin gefragt, ob ich ihr eine Homepage erstellen möchte. Bislang bin ich sehr gut zurecht gekommen (CSS, HTML), nur bei PHP bin ich eine absolute Niete. Ich weiß, es ist nicht in Ordnung meine "Hausaufgaben" an euch weiter zu leiten, nur ich verstehe PHP wenig bis gar nicht, darum wollte ich fragen, ob ihr mir diesbezüglich nicht weiterhelfen könnt?! Ich wäre euch sehr verbunden und dankbar!

Hier zu meinem Problem:
Habe ein Kontaktformular erstellt. Bislang keine Probleme. Bekomme auch die Mails. Ich möchte nur ein "Affenformular" einbauen, so dass alle Felder ausgefüllt werden müssen, ansonsten soll eine Fehlermeldung erscheinen.

Hier die PHP-Datei:

  
<?PHP  
  
  
  
   $text ="Hier die E-Mail Nachricht aus dem Kontaktformular";  
   $text.="Name: $_POST[name]\n";  
   $text.="E-Mail: $_POST[email]\n";  
   $text.="Nachricht: $_POST[nachricht]\n";  
  
  
   $vorname="Name: $_POST[name]\n";  
   $email="E-Mail: $_POST[email]\n";  
   $anfrage="Nachricht: $_POST[nachricht]\n";  
  
  
   mail("meine@mail.de","Anfrage von Maggie-Moden Kontaktformular",$text);  
  
  
   echo "Vielen Dank f&uuml;r Ihre Nachricht!<br><br>";  
   echo "Ihre Angaben wurden an uns &uuml;bermittelt!<br><br><br>";  
  
  
  
   echo "$name<br>";  
   echo "$email<br>";  
   echo "$nachricht<br><br><br>";  
  
  
?>  
<a href="javascript:history.back()">zur&uuml;ck zum Kontaktformular</a>  

und hier der html-Code:

  
<div id="form">  
  <table width="50%" border="3" rules="none" bgcolor="#bfbfbf" cellpadding="0" cellspacing="0">  
  <tr>  
  <td colspan=2> <h3>Kontaktformular</h3> </td></tr>  
    <tr>  
    <tr>  
      <td><form  name="formular" onsubmit="return validate()" action="kontakt.php" method="post" >  
		<br />  
     	<b>Name:</b>  
     	<td><input type="text" name="name" id="name" style="width: 300px; height: 22px"/><br />  
		</td>  
		</tr>  
     	<tr>  
		<td>  
		<b>E-Mail:</b>  
	     <td><input type="text" name="email" id="email" style="width: 300px; height: 22px"/><br /><br />	  
		 </td>  
		 </tr>  
		 <td>  
     	<b>Nachricht:</b>  
	     <td><textarea name="nachricht" id="nachricht" style="width: 490px; height: 170px" rows="" cols=""></textarea><br />	  
	     <br />  
		 </tr>  
		 </td>  
		 <tr>  
		 <td colspan="2">  
	     <center>  
     	    <input type="submit" name="Button" value="Nachricht senden"/>  
	        <input name="Reset1" type="reset" value="Inhalt l&ouml;schen" /><br />  
	     </center>  
	   </form>  
     </td>  
   </tr>  
   <tr>  
     <td>  
  
  
     </td>  
   </tr>  
  </table>  
</div>  

Wie gesagt: Ich kenne mich mit PHP kaum aus...dieses Formular ist ein einfaches..., das ich auch auf meinen Newsletter (und somit zweite Frage) umgemünzt habe. Meine zweite Frage wäre: Ich habe im Newsletter radio-buttons eingebaut. Möchte nun in der Mail erfahren, ob der Kunde eine An- oder eine Abmeldung wünscht. Ich kriegs einfach nicht auf die Reihe...

hier PHP:

  
<?PHP  
  
  
   $text ="Hier die E-Mail Nachricht aus dem Newsletteran-/abmeldung";  
   $text.="Name: $_POST[name]\n";  
   $text.="E-Mail: $_POST[email]\n";  
   $radio="Entscheidung: $_POST[anmelden]n";  
   $radio="Entscheidung: $_POST[abmelden]n";  
  
   $vorname="Name: $_POST[name]\n";  
   $email="E-Mail: $_POST[email]\n";  
   $anmelden="Entscheidung: $_POST[anmelden]n";  
   $abmelden="Entscheidung: $_POST[abmelden]n";  
  
  
   mail("meine@mail.de","Anfrage von Maggie-Moden Newsletter",$text);  
  
  
   echo "Vielen Dank f&uuml;r Ihre Anfrage!<br><br>";  
   echo "Ihre Angaben wurden an uns &uuml;bermittelt!<br><br><br>";  
  
  
   echo "$name<br>";  
   echo "$email<br>";  
  
  
?>  
<a href="javascript:history.back()">zur&uuml;ck zum Newsletter</a>  

und hier html:

  
<div id="form">  
  <table width="25%" border="3" frame="box" rules="none" bgcolor="#bfbfbf" cellpadding="0" cellspacing="0">  
  <tr>  
  <td colspan=2> <h3>Newsletter An- und Abmeldung</h3> </td></tr>  
    <tr>  
      <td><form  name="formular" onsubmit="return validate()" action="newsletter.php" method="post" >  
		<br />  
     	<b>Name:</b>  
     	<td><input type="text" name="name" id="name" style="width: 150px; height: 22px"/><br />  
		</td>  
		</tr>  
     	<tr>  
		<td>  
		<b>E-Mail:</b>  
	     <td><input type="text" name="email" id="email" style="width: 150px; height: 22px"/><br /><br />	  
		 </td>  
		 </tr>  
		 <tr>  
		 <td colspan="2">  
	     <center>  
			<input type="radio" name="meldung" value="anmeldung"> Anmeldung<br>  
			<input type="radio" name="meldung" value="abmeldung"> Abmeldung<br>  
			<input type="submit" name="Button" value="senden"/>  
	     </center>  
		  
	   </form>  
     </td>  
   </tr>  
   <tr>  
     <td>  
  
  
     </td>  
   </tr>  
  </table>  
</div>  
<p>  
</div>  

Ich wäre euch wirklich herzlichst verbunden und dankbar!!!Das ist der letzte Punkt von meiner Page, an der ich seit tagen hänge...sonst wäre die Page fertig...

Mit liebem Gruße
Donut!

  1. Hi,

    Ich möchte nur ein "Affenformular" einbauen, so dass alle Felder ausgefüllt werden müssen, ansonsten soll eine Fehlermeldung erscheinen.

    Davon sehe ich in deinem Code überhaupt nichts. „Affenformular” bedeutet, dass das Formular nach fehlerhaftem Ausfüllen erneut angezeigt wird – und die bereits gemachten Eingaben in den jeweiligen Feldern als Vorbelegung/Vorauswahl wieder auftauchen – wo ist das in deinem Code?

    (Irgendeine Validierung per JavaScript scheint wohl stattzufinden – aber das ist nicht was man unter einem „Affenformular” versteht.)

    Ich habe im Newsletter radio-buttons eingebaut.

    Im Newsletter? Du meinst im Formular, oder?

    Möchte nun in der Mail erfahren, ob der Kunde eine An- oder eine Abmeldung wünscht.

    $radio="Entscheidung: $_POST[anmelden]n";
       $radio="Entscheidung: $_POST[abmelden]n";

    $anmelden="Entscheidung: $_POST[anmelden]n";
       $abmelden="Entscheidung: $_POST[abmelden]n";

      
    Deine Radiobuttons haben den Namen "meldung" – wieso fragst du hier nach POST-Parametern mit ganz anderen Namen (die nicht existieren)?  
      
    Wenn du dir nicht sicher bist, wie Radiobuttons übermittelt werden – dann mache eine Testausgabe von $\_POST mit var\_dump, und schaue es dir an!  
      
    (Außerdem würdest du dir mit diesem Code die beiden Variablen nach der Wertzuweisung in der nächsten Zeile gleich wieder überschreiben.)  
      
    Und stelle bitte das error\_reporting und display\_errors auf Werte, die für die Entwicklung sinnvoll sind – damit dich PHP auf solche Fehler (Zugriff auf nicht existente Werte) hinweisen kann.  
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    
    1. Hi!

      Von einem Affenformular sieht man eben nichts, weil ich keinen Plan habe, wie das funktioniert!
      Darum hätt ich eben gerne um eine Info gebeten. Ich kenn mich da absolut nicht aus...auch etwaigen links auf google bin ich nachgegangen.

      Und auf mein Newsletter-Formular trifft das gleiche zu...null plan...nix da...

      Darum wäre ich echt verbunden, wenn ihr mir helfen könnt...

      Glg

      1. Hi,

        Von einem Affenformular sieht man eben nichts, weil ich keinen Plan habe, wie das funktioniert!

        Und warum hast du das nicht gesagt?

        Darum hätt ich eben gerne um eine Info gebeten. Ich kenn mich da absolut nicht aus...auch etwaigen links auf google bin ich nachgegangen.

        Suche nach dem simplen Begriff „Affenformular” liefert bereits genügend Ergebnisse, die das Prinzip erklären – sogar mit Code-Beispielen, bspw. hier: http://www.php.de/wiki-php/index.php/Affenformular_(Standardverfahren)

        Und auf mein Newsletter-Formular trifft das gleiche zu...null plan...nix da...

        Dann besorg dir ein bisschen Plan – von den Grundlagen der Formularverarbeitung in PHP.

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. hab ich doch gesagt, dass ich mich nicht auskenne.

          Das Grundgerüst steht. Ich suche nur jemanden der in der Lage ist und wirklich nett ist, einem PHP-dummie wie mir auf verständliche weise mitzuteilen, was ich zu tun habe bzw. wie ich das auf mein skript ummünzen kann.
          werde mir natürlich deine links ansehen, ChrisB!

  2. @@Donut:

    nuqneH

    echo "$name<br>";

    echo "$email<br>";
       echo "$nachricht<br><br><br>";

      
    Nei-en! Du darfst NIEMALS Nutzereingaben oder andere Werte fremder Herkunft unbearbeitet in HTML-Code schreiben. [NIEMALS](http://de.wikipedia.org/wiki/Cross-Site-Scripting).  
      
    Das Mindeste wäre die HTML-[kontextgerechte](http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel) Behandlung mit `[link:http://php.net/manual/de/function.htmlspecialchars.php@title=htmlspecialchars()]`{:.language-php}.  
      
      
    BTW, du solltest [nicht](http://community.de.selfhtml.org/zitatesammlung/zitat1275) br für Abstände verwenden, sondern CSS.  
      
    Bspw.:  
    ~~~php
       echo "<p class="name">$name</p>";  
       echo "<p class="email">$email</p>";  
       echo "<p class="nachricht">$nachricht</p>";
    

    und im Stylesheet:

    .nachricht  
    {  
       margin-bottom: 3em;  
    }
    

    <a href="javascript:history.back()">zur&uuml;ck zum Kontaktformular</a>

      
    Umlaute m&uuml;ssen [nicht](http://www.w3.org/International/questions/qa-escapes#not) verst&uuml;mmelt werden:  
      
    ~~~php
    <a href="javascript:history.back()">zurück zum Kontaktformular</a>  
    
    

    Qapla'

    --
    „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)