Problem bei Formular

crix

Mitglied
PHP:
<html>
<head>
<title>BILDERBUCH-STORY - streng limitierte Promo-EP!!</title>
<style type="text/css">
<!--
.Stil9 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; }
.Stil11 {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	font-weight: bold;
}
.Stil13 {font-size: 12px}
.Stil15 {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
}
.Stil16 {
	color: #000000;
	font-weight: bold;
}
.Stil18 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
.Stil22 {font-family: Arial, Helvetica, sans-serif; font-size: 10px; color: #FF0000; }
-->
</style>
</head>

<body>
<?php 
    if(isset($_POST['ueberpruefung']))  
  {  
  $allesok = 1;  
   
 if(empty($_POST['name'])){ 
  $allesok = 0;  
  $error[name] = "Bitte einen Namen eingeben!";}  

     if(empty($_POST['vorname'])){ 
  $allesok = 0;  
  $error[email] = "Bitte einen Vornamen eingeben!";}
  
  if(empty($_POST['email'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Email eingeben!";}  

  if(empty($_POST['strasse'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Straße eingeben!";}    
  
    if(empty($_POST['nr'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Hausnummer eingeben!";}
  
    if(empty($_POST['plz'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Postleitzahl eingeben!";}
  
    if(empty($_POST['stadt'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Stadt eingeben!";}
  
    if(empty($_POST['nutzungsbedingungen'])){ 
  $allesok = 0;  
  $error[email] = "Du musst die Nutzungsbedingungen aktzeptieren!";}
  
    if(empty($_POST['agbs'])){ 
  $allesok = 0;  
  $error[email] = "Du musst die AGBs aktzeptieren!";}
  
    if(empty($_POST['day'])){ 
  $allesok = 0;  
  $error[email] = "Bitte ein Geburtstag angeben!";}
  
    if(empty($_POST['month'])){ 
  $allesok = 0;  
  $error[email] = "Bitte ein Geburtsmonat angeben!";}
  
    if(empty($_POST['year'])){ 
  $allesok = 0;  
  $error[email] = "Bitte ein GeburtsJahr angeben!";}
  
  } 
   
  if($allesok){  
   
  // HIER MUSS IRGENDWAS REIN DASS DAS FORMULAR EINE EMAIL SENDET UND EINE BESTÄTIGUNG AUSGIBT BESTÄTIGUNG ABER AUCH MIT NEWSLETTERBESTÄTIGUNG  
 

  } 
   
  else 
  { 
  ?> 
 
   
<span class="Stil11">Bilderbuch-Story-Vinyl Verlosung
</span>
<p class="Stil9"><span class="Stil13">Hier kannst du an der <strong>Verlosung</strong> der <strong>30 streng limitierten Bilderbuch-Story Promo-EP&acute;s</strong>  teilnehmen, au&szlig;erdem werden auch <strong>30 VIP Konzertkarten</strong> versch&auml;rbelt. <br> 
    <strong>Also teilnehmen!!</strong><br>
Teilnahmeschluss ist der <strong>15.03.</strong></span></p>
<p class="Stil15"><strong>Viel Gl&uuml;ck </strong><br>
  <strong>Dein CRIX-Team</strong></p>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
  <p><span class="Stil15">Name* :</span><br>
    <span class="Stil15">
      <input name="name" type="text" size="27"  value="<?php echo $_POST['name'];?>"> 
    <span class="Stil22"><?php echo $error['name'];?></span><br>
    Vorname* : <br>
    <input name="vorname" type="text" size="27"  value="<?php echo $_POST['vorname'];?>"> 
    <span class="Stil22"><?php echo $error['vorname'];?></span><br>
    Stra&szlig;e/Nr.* :<br>
    <input name="strasse" type="text" size="21"  value="<?php echo $_POST['strasse'];?>"> 
    <input name="nr" type="text" size="2"  value="<?php echo $_POST['nr'];?>"> 
    <span class="Stil22"><?php echo $error['strasse'];?> <?php echo $error['nr'];?></span><br>
    PLZ/Stadt* : <br>
    <input name="plz" type="text" size="5" maxlength="5"  value="<?php echo $_POST['plz'];?>">
    <input name="stadt" type="text" size="18"  value="<?php echo $_POST['stadt'];?>"> 
    </span><span class="Stil22"><?php echo $error['plz'];?> <?php echo $error['stadt'];?></span><span class="Stil15"><br>
    Handynr. : <br>
    <input name="handynr" type="text" size="27"  value="<?php echo $_POST['handynr'];?>"> 
    <br>
    Geb. Datum* : <br> 
    <select name="day" class="Stil15">
      <option value="01">01</option>
      <option value="02">02</option>
      <option value="03">03</option>
      <option value="04">04</option>
      <option value="05" selected>05</option>
      <option value="06">06</option>
      <option value="07">07</option>
      <option value="08">08</option>
      <option value="09">09</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
      <option value="16">16</option>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <option value="20">20</option>
      <option value="21">21</option>
      <option value="22">22</option>
      <option value="23">23</option>
      <option value="24">24</option>
      <option value="25">25</option>
      <option value="26">26</option>
      <option value="27">27</option>
      <option value="28">28</option>
      <option value="29">29</option>
      <option value="30">30</option>
      <option value="31">31</option>
    </select>    
    <select name="month" class="Stil15">
      <option value="01" selected>01</option>
      <option value="02">02</option>
      <option value="03">03</option>
      <option value="04">04</option>
      <option value="05">05</option>
      <option value="06">06</option>
      <option value="07">07</option>
      <option value="08">08</option>
      <option value="09">09</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
    </select>
    <select name="year" class="Stil15" lang="hr">
      <option value="1950">1950</option>
      <option value="1990">1951</option>
      <option value="1990">1952</option>
      <option value="1990">1953</option>
      <option value="1990">1954</option>
      <option value="1990">1955</option>
      <option value="1990">1956</option>
      <option value="1990">1957</option>
      <option value="1990">1958</option>
      <option value="1990">1959</option>
      <option value="1990">1960</option>
      <option value="1990">1961</option>
      <option value="1990">1962</option>
      <option value="1990">1963</option>
      <option value="1990">1964</option>
      <option value="1990">1965</option>
      <option value="1990">1966</option>
      <option value="1990">1967</option>
      <option value="1990">1968</option>
      <option value="1990">1969</option>
      <option value="1990">1970</option>
      <option value="1990">1971</option>
      <option value="1990">1972</option>
      <option value="1990">1973</option>
      <option value="1990">1974</option>
      <option value="1990">1975</option>
      <option value="1990">1976</option>
      <option value="1990">1977</option>
      <option value="1990">1978</option>
      <option value="1990">1979</option>
      <option value="1990">1980</option>
      <option value="1990">1981</option>
      <option value="1990">1982</option>
      <option value="1990">1983</option>
      <option value="1990">1984</option>
      <option value="1990">1985</option>
      <option value="1990">1986</option>
      <option value="1990">1987</option>
      <option value="1990">1988</option>
      <option value="1990">1989</option>
      <option value="1990">1990</option>
      <option value="1991">1991</option>
      <option value="1992">1992</option>
      <option value="1993">1993</option>
      <option value="1994">1994</option>
      <option value="1995">1995</option>
      <option value="1996">1996</option>
      <option value="1997">1997</option>
      <option value="1998">1998</option>
      <option value="1999">1999</option>
      <option value="2000">2000</option>
      <option value="2001">2001</option>
      <option value="2002">2002</option>
      <option value="2003">2003</option>
      <option value="2004">2004</option>
      <option value="2005">2005</option>
      <option value="2006" selected>2006</option>
    </select> 
    <br>
    Email* : <br>
    <input name="email" type="text" size="27" value="<?php echo $_POST['email'];?>"> 
    <span class="Stil22"><?php echo $error['email'];?></span><br>
    <span class="Stil15">*=Pflichtfelder</span></span></p>
  <p>
    <input name="newsletter" type="checkbox" checked>
    <span class="Stil15">F&uuml;r den <strong>Newsletter</strong> registrieren. <br> 
    <strong>Hinweis: </strong>CRIX beachtet die geltenden Datenschutzrichtlinien.
Deine E-Mail-Adresse wird nicht an Dritte weitergegeben.</span></p>
  <p>
    <input name="nutzungsbedingungen" type="checkbox" value="checkbox" checked>
    <span class="Stil15">*Ich habe die <a href="nutzungsbedingungen.html" target="_blank" class="Stil16">Nutzungsbedinugungen</a> gelesen und best&auml;tige sie. <span class="Stil22"><?php echo $error['nutzungsbedingungen'];?></span></span> </p>
  <p>
    <input name="agbs" type="checkbox" value="checkbox" checked>
    <span class="Stil15">*Ich habe die <a href="agbs.html" target="_blank" class="Stil16">AGBs</a> gelesen und erkl&auml;re mich damit einverstanden. <span class="Stil22"><?php echo $error['agbs'];?></span></span></p>
  <p align="left">
     <input name="radiobutton" type="radio" value="ep" checked>
    <span class="Stil18">Ich will eine der 30 Bilderbuch-Story Promo-EP&acute;s absahnen! 
    <input type="hidden" name="ueberpruefung" value="1">
    <br>
    <input name="radiobutton" type="radio" value="karte">
    Ich will eine von 30 VIP-Konzertkarten absahnen! </span></p>   
  <p align="center">
    <input name="Submit" type="submit" class="Stil15" value="Und ab die Post!">
</p>
</form>    <?php 

  } 
  ?>  
</body>
</html>
Mein Formular.
Nun hab ich ein Problem.
1. Werden immer nur 2 Errors angezeigt bei nicht ausgefüllten Feldern.
2. Nun komme ich nicht weiter. Ich möchte dass das Formular mir per Email übersichtlich zugesandt wird. Und dass eine Bestätigung ausgegeben wird ( am besten dass ich es als html bearbeiten kann ), wenn der Newsletter auch abboniert wird sollte auch eine Bestätigung ausgegeben werden dass der Newsletter abboniert wurde.
 
Zu 1.:

Code:
 if(empty($_POST['name'])){ 
  $allesok = 0;  
  $error[name] = "Bitte einen Namen eingeben!";}  

     if(empty($_POST['vorname'])){ 
  $allesok = 0;  
  $error[email] = "Bitte einen Vornamen eingeben!";}
  
  if(empty($_POST['email'])){ 
  $allesok = 0;  
  $error[email] = "Bitte eine Email eingeben!";}  

//UND SO WEITER
  
    if(empty($_POST['year'])){ 
  $allesok = 0;  
  $error[email] = "Bitte ein GeburtsJahr angeben!";}
  
  }

evtl. solltest du nicht bei jedem (außer dem ersten) $error[ email ] schreiben ;-)


Zu 2.:
du kannst es ja mal mit der Funktion mail() versuchen und einfach wenn alles Ok ist, a) entweder
Code:
$error[email] = "Alles klar!";
oder b) ne neue Var. machen
Code:
$AllesOk = "Alles klar!";
 
Zuletzt bearbeitet:
crix hat gesagt.:
1. Werden immer nur 2 Errors angezeigt bei nicht ausgefüllten Feldern.
Du musst schon den Array-Key ändern, sonst wird er immer nur überschrieben:
PHP:
//nicht: 
$error[email]=...;
$error[email]=...;
[...]
//sondern:
$error['email']=...;
$error['name']=...;
//usw;
 
okay danke dass hab ich jetzt auch bemerkt :) trotzdem is da noch punkt 2 ziemlich wichtig. danke schonmal im vorraus für die hilfe.
mfg
 
Mein Vorschlag:
PHP:
<?php

	$_notes = array(
		'error'   => array(),
		'notice'  => array(),
		'success' => array()
	);

	if( isset($_POST['ueberpruefung']) ) {
   
		if( empty($_POST['name']) ) {
			$_notes['error'][] = 'Bitte einen Namen eingeben!';
		}
		if( empty($_POST['vorname']) ) {
			$_notes['error'][] = 'Bitte einen Vornamen eingeben!';
		}
		if( empty($_POST['email']) ) {
			$_notes['error'][] = 'Bitte eine Email eingeben!';
		}
		if( empty($_POST['strasse']) ) {
			$_notes['error'][] = 'Bitte eine Straße eingeben!';
		}
		if( empty($_POST['nr']) ) {
			$_notes['error'][] = 'Bitte eine Hausnummer eingeben!';
		}
		if( empty($_POST['plz']) ) {
			$_notes['error'][] = 'Bitte eine Postleitzahl eingeben!';
		}
		if( empty($_POST['stadt']) ) {
			$_notes['error'][] = 'Bitte eine Stadt eingeben!';
		}
		if( empty($_POST['nutzungsbedingungen']) ) {
			$_notes['error'][] = 'Du musst die Nutzungsbedingungen aktzeptieren!';
		}
		if( empty($_POST['agbs']) ) {
			$_notes['error'][] = 'Du musst die AGBs aktzeptieren!';
		}
		if( empty($_POST['day']) ) {
			$_notes['error'][] = 'Bitte ein Geburtstag angeben!';
		}
		if( empty($_POST['month']) ) {
			$_notes['error'][] = 'Bitte ein Geburtsmonat angeben!';
		}
		if( empty($_POST['year']) ) {
			$_notes['error'][] = 'Bitte ein GeburtsJahr angeben!';
		}
	}

	if( !empty($_notes['error']) ) {
		echo '<div class="note error"><ul>';
		foreach( $_notes['error'] as $error ) {
			echo '<li>'.$error.'</li>';
		}
		echo '</ul></div>';
	} else {
		// HIER MUSS IRGENDWAS REIN DASS DAS FORMULAR EINE EMAIL SENDET UND EINE BESTÄTIGUNG AUSGIBT BESTÄTIGUNG ABER AUCH MIT NEWSLETTERBESTÄTIGUNG  
	}

?>
 
Oder gleich noch bequemer:
PHP:
<?php

	$_notes = array(
		'error'   => array(),
		'notice'  => array(),
		'success' => array()
	);

	$_requiredArguments = array(
		'POST' => array(
			'name'                => 'Bitte einen Namen eingeben!',
			'vorname'             => 'Bitte einen Vornamen eingeben!',
			'email'               => 'Bitte eine Email eingeben!',
			'strasse'             => 'Bitte eine Straße eingeben!',
			'nr'                  => 'Bitte eine Hausnummer eingeben!',
			'plz'                 => 'Bitte eine Postleitzahl eingeben!',
			'stadt'               => 'Bitte eine Stadt eingeben!',
			'nutzungsbedingungen' => 'Du musst die Nutzungsbedingungen aktzeptieren!',
			'agbs'                => 'Du musst die AGBs aktzeptieren!',
			'day'                 => 'Bitte ein Geburtstag angeben!',
			'month'               => 'Bitte ein Geburtsmonat angeben!',
			'year'                => 'Bitte ein GeburtsJahr angeben!'
		)
	);

	foreach( $_requiredArguments as $method => $arguments ) {
		foreach( $arguments as $argumentName => $errorMessage ) {
			if( !isset(${'_'.$method}[$argumentName]) || empty(${'_'.$method}[$argumentName]) ) {
				$_notes['error'][] = $errorMessage;
			}
		}
	}

	if( !empty($_notes['error']) ) {
		echo '<div class="note error"><ul>';
		foreach( $_notes['error'] as $error ) {
			echo '<li>'.$error.'</li>';
		}
		echo '</ul></div>';
	} else {
		// HIER MUSS IRGENDWAS REIN DASS DAS FORMULAR EINE EMAIL SENDET UND EINE BESTÄTIGUNG AUSGIBT BESTÄTIGUNG ABER AUCH MIT NEWSLETTERBESTÄTIGUNG  
	}

?>
 
danke soweit bin ich jetzt auch schon
2. Nun komme ich nicht weiter. Ich möchte dass das Formular mir per Email übersichtlich zugesandt wird. Und dass eine Bestätigung ausgegeben wird ( am besten dass ich es als html bearbeiten kann ), wenn der Newsletter auch abboniert wird sollte auch eine Bestätigung ausgegeben werden dass der Newsletter abboniert wurde.
:)
 
also ich möchte dass mir das formular übersichtlich an meine email gesendet wird. und dann sollte eine seite mit einer bestätigung kommen.
z.b.
Danke "Name"!
Du nimmst erfolgreich an der Verlosung teil.

Dein CRIX-Team

falls der Newsletter auch abboniert wird sollte dass dann so sein :

Danke "Name"!
Du nimmst erfolgreich an der Verlosung teil.
Du wurdest erfolgreich für den Newsletter registriert.

Dein CRIX-Team

Kann man da was machen?

mfg
 
mail() bei php.net

Als drittes Argument der mail()-Funktion kannst du doch deinen Text angeben, den du versenden willst! Du hast die Möglichkeit, Text ohne weitere Formatierungen oder HTML zu versenden (auf den richtigen Content-Type im Mail-Header achten!).

Ansonsten speicherst du den Emailtext in einer Variablen und ersetzt den Namenplatzhalter durch den Wert aus $_POST['name'] bzw. verkettest die Strings nach deinen Vorstellungen.
 
Zurück