Hilfe bei Scipterstellung!

michaham

Mitglied
Hallo!

Ich habe mir selber schon in unendlichen Stunden an Arbeit ein Script zusammengestellt, das auch t!

Das script trägt die Daten der Formularfelder in eine Datenbank!

Jetzt möchte ich, dass die Felder: Vorname, Nachname, Strasse, PLZ, Ort, Land Pflichtfelder sind und das Feld Email überprüft wird, dass wenn jemand seine Email einträgt (nicht Pflicht), dass es eine gültige Email adresse ist.

Und dann hätte ich noch gern, dass die Daten auch als Email versendet werden, mit den gleichen Kriterien!

Kann mir das wer machen oder helfen?

Ich steh am Ende...ich habe schon so viel probiert...Tutorials durchgearbeitet...aber das ist mir noch zu hoch! (das jetztige Script ist aus einem einfachen Tut und kostete mich schon ein paar Tage)

Das wäre ein wahnsinn....

Herzlichen Dank
michaham
 

Anhänge

Vorkauen wirds dir hier wohl niemand... Aber ich geb dir mal paar Tipps:
Nach:
PHP:
if($_POST['submit'])
{
müsste deine Überprüfung kommen.

Ob eine Variable (z.B. $_POST['name]) nicht gesetzt ist, überprüfst du mit empty():
PHP:
if(empty($_POST['name'])) {
  echo("Kein Name angegeben!");
}
else {
  // ... weitere Abfragen
(genauer gibt empty() true zurück, wenn die Variable null, "" (leerer String), false, "0", 0, array(), var $var (nur definiert) ist...)

Das mit der E-Mail überprüfung glaub ich dir nicht... google: php e-mail überprüfung ...
Aber hier:
PHP:
if(!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $email)) {
  echo("False E-Mail");
}
else {
  // ... weiter ...

Für die E-Mail versendung gibts die Funktion mail()... -> http://php.net/mail
 
Also ich habe das mal versucht,...ich bekomme Fehlermeldung bezüglich des "else" in Zeile 58 oder so! Oder zäume ich das Pferd eh schon falsch auf?

PHP:
<?php
include 'config.inc.php';

if ($_POST['submit'])
{

if(empty($_POST['Vorname'])) {
  echo("Kein Vorname angegeben!");
}
else 
{

if(empty($_POST['Zuname'])) {
  echo("Kein Zuname angegeben!");
}
else 
{

if(empty($_POST['Strasse'])) {
  echo("Keine Strasse angegeben!");
}
else 
{

if(empty($_POST['PLZ'])) {
  echo("Keine Postleitzahl angegeben!");
}
else 
{

if(empty($_POST['Ort'])) {
  echo("Kein Ort angegeben!");
}
else 
{

if(!ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['Email'])){
  echo("Keine gültige E-Mailadresse");
}
else {
  // ... weiter ...  

 $sql = 'INSERT INTO adressen(Anrede, Vorname, Zuname, Strasse, PLZ, Ort, Land, Telefon, Fax, Email) VALUES("'.$_POST['Anrede'].'","'.$_POST['Vorname'].'","'.$_POST['Zuname'].'","'.$_POST['Strasse'].'","'.$_POST['PLZ'].'","'.$_POST['Ort'].'","'.$_POST['Land'].'","'.$_POST['Telefon'].'","'.$_POST['Fax'].'","'.$_POST['Email'].'")';
mysql_query($sql);
  echo 'Der Eintrag war erfolgreich!
  <form action="?php echo $_SERVER["PHP_SELF"]; ? method="pageload"
 <table width="466" border="0" cellspacing="1" cellpadding="1">
    <tr align="center">
    <td align="center">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="submit" name="submit" value="Zurück zum Formular" /></td>
    <td height="0">&nbsp;</td>
  </tr>
</table>
</form>';
}
else 
{
echo '
<form action="" method="post">
<table width="466" border="0" cellspacing="1" cellpadding="1">
  <tr align="center">
    <td width="70">Anrede:</td>
    <td height="0"><div align="left">
      <select name="Anrede" size="1" id="Anrede">
        <option value="Herr">Herr</option>
        <option value="Frau">Frau</option>
      </select>
    </div></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr align="center">
    <td>Vorname:</td>
    <td width="180" height="0"><div align="left">
      <input type="text" name="Vorname">
    </div></td>
    <td width="65">Zuname:</td>
    <td width="147"><input type="text" name="Zuname"></td>
  </tr>
  <tr align="center">
    <td>Strasse:</td>
    <td>      <input type="text" name="Strasse" size="30">    </td>
    <td>PLZ:</td>
    <td><div align="left">
      <input type="text" name="PLZ" size="8">
    </div></td>
  </tr>
  <tr align="center">
    <td>Ort:</td>
    <td height="0"><div align="left">
      <input type="text" name="Ort">
    </div></td>
	<td>Land:</td>
    <td><div align="left">
      <select name="Land" size="1" id="Land" >
        <option value="&Ouml;sterreich">&Ouml;sterreich</option>
        <option value="Deutschland">Deutschland</option>
        <option value="SChweiz">Schweiz</option>
        <option value="Frankreich">Frankreich</option>
        <option value="Belgien">Belgien</option>
      </select>
    </div></td>
  </tr>
    <tr align="center">
    <td>Telefon:</td>
    <td height="0"><div align="left">
      <input type="text" name="Telefon">
    </div></td>
    <td>Fax:</td>
    <td><input type="text" name="Fax"></td>
  </tr>
  <tr align="center">
    <td>Email:</td>
    <td height="0">
         <div align="left">
          <input type="text" name="Email" size="30">
        </div></td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="submit" name="submit" value="Eintragen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
  <tr align="center">
    <td align="center">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="reset" name="Reset" value="Zurücksetzen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
</table>
</form>
';



}

?>
 
Zuletzt bearbeitet:
Ich seh da lauter offene else-Anweisungen,

hoffe, dass diese auch wieder geschlossen werden, wenn du da eine vergisst, gibt es schnell mal eine Fehlermeldung.

Wenn ich Postwerte überprüfe dann meist so:


PHP:
$pruefsumme = 0;
if(empty($_POST['Ort'])) {
  echo("Kein Ort angegeben!<br />");
  $pruefsumme++;
}
if(empty($_POST['Name'])) {
  echo("Kein Name angegeben!<br />");
  $pruefsumme++;
}
usw...

Dadurch bekommt der User gleich zu sehen, welche Felder er vergessen hat, falls er mehrere nicht ausgefüllt hat und muss das Formular nicht jedesmal absenden
Und wenn alle Felder ausgefüllt wurden ist die pruefsumme immer noch 0 und ich kann die Email schicken.

PHP:
if($pruefsumme == 0)
  mail();
else
{
  Formular nocheinmal anzeigen und schon eingetragene Werte einfügen.
}
 
auch hier bekomme ich fehlermeldung...ich mach sicher was falsch:confused: :confused: :confused: :confused: :confused:

PHP:
<?php
include 'config.inc.php';

if ($_POST['submit'])
{

$pruefsumme = 0;
if(empty($_POST['Ort'])) {
  echo("Kein Ort angegeben!<br />");
  $pruefsumme++;
}
if(empty($_POST['Name'])) {
  echo("Kein Name angegeben!<br />");
  $pruefsumme++;
} 

if(!ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['Email'])){
  echo("Keine gültige E-Mailadresse");
}
else {
  // ... weiter ...
  
  if($pruefsumme == 0)
  mail();
else
{
  //Formular nocheinmal anzeigen und schon eingetragene Werte einfügen.
    

 $sql = 'INSERT INTO adressen(Anrede, Vorname, Zuname, Strasse, PLZ, Ort, Land, Telefon, Fax, Email) VALUES("'.$_POST['Anrede'].'","'.$_POST['Vorname'].'","'.$_POST['Zuname'].'","'.$_POST['Strasse'].'","'.$_POST['PLZ'].'","'.$_POST['Ort'].'","'.$_POST['Land'].'","'.$_POST['Telefon'].'","'.$_POST['Fax'].'","'.$_POST['Email'].'")';
mysql_query($sql);
  echo 'Der Eintrag war erfolgreich!
  <form action="?php echo $_SERVER["PHP_SELF"]; ? method="pageload"
 <table width="466" border="0" cellspacing="1" cellpadding="1">
    <tr align="center">
    <td align="center">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="submit" name="submit" value="Zurück zum Formular" /></td>
    <td height="0">&nbsp;</td>
  </tr>
</table>
</form>';
}
else 
{
echo '
<form action="" method="post">
<table width="466" border="0" cellspacing="1" cellpadding="1">
  <tr align="center">
    <td width="70">Anrede:</td>
    <td height="0"><div align="left">
      <select name="Anrede" size="1" id="Anrede">
        <option value="Herr">Herr</option>
        <option value="Frau">Frau</option>
      </select>
    </div></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr align="center">
    <td>Vorname:</td>
    <td width="180" height="0"><div align="left">
      <input type="text" name="Vorname">
    </div></td>
    <td width="65">Zuname:</td>
    <td width="147"><input type="text" name="Zuname"></td>
  </tr>
  <tr align="center">
    <td>Strasse:</td>
    <td>      <input type="text" name="Strasse" size="30">    </td>
    <td>PLZ:</td>
    <td><div align="left">
      <input type="text" name="PLZ" size="8">
    </div></td>
  </tr>
  <tr align="center">
    <td>Ort:</td>
    <td height="0"><div align="left">
      <input type="text" name="Ort">
    </div></td>
	<td>Land:</td>
    <td><div align="left">
      <select name="Land" size="1" id="Land" >
        <option value="&Ouml;sterreich">&Ouml;sterreich</option>
        <option value="Deutschland">Deutschland</option>
        <option value="SChweiz">Schweiz</option>
        <option value="Frankreich">Frankreich</option>
        <option value="Belgien">Belgien</option>
      </select>
    </div></td>
  </tr>
    <tr align="center">
    <td>Telefon:</td>
    <td height="0"><div align="left">
      <input type="text" name="Telefon">
    </div></td>
    <td>Fax:</td>
    <td><input type="text" name="Fax"></td>
  </tr>
  <tr align="center">
    <td>Email:</td>
    <td height="0">
         <div align="left">
          <input type="text" name="Email" size="30">
        </div></td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="submit" name="submit" value="Eintragen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
  <tr align="center">
    <td align="center">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="reset" name="Reset" value="Zurücksetzen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
</table>
</form>
';



}

?>
 
Laut meiner Rechnung hast du 7 öffnende ( { ), aber nur 5 schließende ( } ) geschweifte Klammern.
 
jedes tut ist anders....genau das richtige für einen Anfänger! haha

ich schau mir das mit den Klammern an...danke für den HInweis!
 
Also...ich bin mal soweit und es geht sogar...habe mal mit etwas HIlfe das Formular mit der Pflichtfeldprüfung!

Jetzt fehlt mir noch der einbau: schreiben in Datenbank und ausgabe als Email der Daten!
eventuell noch Prüfung der Emailadresse (nur wenn sie eingegeben wird)

PHP:
<?php
include 'config.inc.php';

error_reporting(E_ALL);

$zaehler = ''; // Zaehler für Pflichfelder
$fehler = ''; // für Fehlermeldungen

if (isset($_POST['submit']))
  { 

   // hier alle Felder prüfen
   // Beispiel für Pflichtfeld
   if(!empty($_POST['Vorname'])){
       $vname_ok = mysql_real_escape_string($_POST['Vorname']);
       $zaehler++; //Zähler erhöhen
        }
    else{
        $fehler = "kein Vorname angegeben!";
        }
		
		 if(!empty($_POST['Zuname'])){
       $nname_ok = mysql_real_escape_string($_POST['Zuname']);
       $zaehler++; //Zähler erhöhen
        }
    else{
        $fehler = "kein Zuname angegeben!";
        }
		
		 if(!empty($_POST['Strasse'])){
       $str_ok = mysql_real_escape_string($_POST['Strasse']);
       $zaehler++; //Zähler erhöhen
        }
    else{
        $fehler = "keine Strasse angegeben!";
        }
		
		 if(!empty($_POST['PLZ'])){
       $plz_ok = mysql_real_escape_string($_POST['PLZ']);
       $zaehler++; //Zähler erhöhen
        }
    else{
        $fehler = "keine Postleitzahl angegeben!";
        }
		
		 if(!empty($_POST['Ort'])){
       $ort_ok = mysql_real_escape_string($_POST['Ort']);
       $zaehler++; //Zähler erhöhen
        }
    else{
        $fehler = "kein Ort angegeben!";
        }
		
						 
      // Formular erfolgreich abegschickt ?
     if  ($zaehler == 5 && $fehler == ''){ 
       include ("erfolg.php"); // mit der Ausgabe der Fehlermeldung
// und dem zurück-Button oder was auch immer
exit();  
       }
   }
   
     
?>  
<form action="eintragen.php" method="post"><?php echo $fehler; ?>
<table width="466" border="0" cellspacing="1" cellpadding="1">
  <tr align="center">
    <td width="70">Anrede:</td>
    <td height="0"><div align="left">
      <select name="Anrede" size="1" id="Anrede">
        <option value="Herr">Herr</option>
        <option value="Frau">Frau</option>
      </select>
    </div></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr align="center">
    <td>Vorname:</td>
    <td width="180" height="0"><div align="left">
      <input type="text" name="Vorname" value="<?php if(isset($vname_ok)) echo $vname_ok; ?>">
    </div></td>
    <td width="65">Zuname:</td>
    <td width="147"><input type="text" name="Zuname" value="<?php if(isset($nname_ok)) echo $nname_ok; ?>"></td>
  </tr>
  <tr align="center">
    <td>Strasse:</td>
    <td>      <input type="text" name="Strasse" value="<?php if(isset($str_ok)) echo $str_ok; ?>" size="30"></td>
    <td>PLZ:</td>
    <td><div align="left">
      <input type="text" name="PLZ" value="<?php if(isset($plz_ok)) echo $plz_ok; ?>" size="8">
    </div></td>
  </tr>
  <tr align="center">
    <td>Ort:</td>
    <td height="0"><div align="left">
      <input type="text" name="Ort" value="<?php if(isset($ort_ok)) echo $ort_ok; ?>">
    </div></td>
    <td>Land:</td>
    <td><div align="left">
      <select name="Land" size="1" id="Land" >
        <option value="&Ouml;sterreich">&Ouml;sterreich</option>
        <option value="Deutschland">Deutschland</option>
        <option value="SChweiz">Schweiz</option>
        <option value="Frankreich">Frankreich</option>
        <option value="Belgien">Belgien</option>
      </select>
    </div></td>
  </tr>
    <tr align="center">
    <td>Telefon:</td>
    <td height="0"><div align="left">
      <input type="text" name="Telefon">
    </div></td>
    <td>Fax:</td>
    <td><input type="text" name="Fax"></td>
  </tr>
  <tr align="center">
    <td>Email:</td>
    <td height="0">
         <div align="left">
          <input type="text" name="Email" size="30">
        </div></td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="submit" name="submit" value="Eintragen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
  <tr align="center">
    <td align="center">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0">&nbsp;</td>
    <td height="0"><input type="reset" name="Reset" value="Zurücksetzen" /></td>
    <td height="0">&nbsp;</td>
  </tr>
</table>
</form>
 
Zurück