Problem mit Formmailer + Checkform

satarielxx

Grünschnabel
Als erstes muss ich gleich sagen, bin ein Anfänger. Als zweites bitte nicht gleich sagen der Quellcode ist sch****, Script deto usw. Dafür bin ich nicht hier ich möchte bzw. bräuchte nur hilfe:

hab da ein kleines problem. Hab einen Formmailer dazu ein externes JS zwecks Formularüberprüfung.
Ich möchte nun das Formular auf die vollständigkeit Prüfen lassen und ERST DANACH soll das Formular abgesendet werden.

Weis jetzt irgendwie nicht weiter --> zur Zeit wird das Formular zwar überprüft aber trotzdem wird das Formular gesendet

Hilfe --> DANKE

Hier mal das Script:

PHP:
<?php
$strEmpfaenger = 'test@test.com;
$strFrom       = '"test" <Admin>';
$strSubject    = 'Bestellung';
$strReturnhtml = 'http://www.test.at';
$strDelimiter  = ":\t";

if($_POST)
{
 $strMailtext = "";

 while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {
   foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

 if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }

 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
 header("Location: $strReturnhtml");
 exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Versandformular</title>
<meta name="keywords" content="hier kommt der content"
<meta name="description" content="Versandformular" />
<meta name="author" content="content" />
<script type="text/javascript" src="auswahl.js"></script>
<script type="text/javascript" src="LinkedSelection.js"></script>
<script type="text/javascript" src="checkform.js"></script>
<script language="javascript">
function ergebnisZeigen( selected )
{
  if( selected.length )
  {
    var sel = '';
    var val = '';
    var txt = '';
    for( var i = 0; i < selected.length; i++ )
    {
      sel += ( i>0 ? ' &rarr; ' : '') + selected[i].id;
      val += ( i>0 ? ' &rarr; ' : '') + selected[i].value;
      txt += ( i>0 ? ' &rarr; ' : '') + selected[i].text;
    }
  }
};

window.onload = function()
{
  var vk = new LinkedSelection( [ 'handymarke', 'type' ], ergebnisZeigen, typenAuswahl );
}
</script>
<link rel="stylesheet" href="formcss.css" type="text/css" />
<style type="text/css">
<!--
.Stil1 {color: #FF0000}
-->
</style>
</head>
<body>
<form action="<?php print $_SERVER['PHP_SELF']; ?>"  name="versandform" method="post">
<table width="90%" height="44" border="0" class="menumitte2">
<tr>
<td width="30%" height="40" class="top_date">
    <div align="center"><span>
        <?php
$datum = date("d.m.Y");
echo $datum
?>
        </span></div></td>
    <td width="30%" class="top_unlockme"><div align="center">test</div></td>
  <td width="30%" class="top_form"><div align="center">Bestellformular</div>
      </span></td>
</tr>
</table>

<table width="90%" height="194" border="0" class="menumitte2">
<tr>
  <td height="28" colspan="3" class="kundendaten"><div align="center"><span class="kundendaten_title">Kundendaten:</span></div></td>
    </tr>
<tr>
  <td width="16%" style="position:relative; left:50px;">&nbsp;</td>
  <td width="43%" style="position:relative; left:50px;">Vorname:</td>
  <td width="41%" style="position:relative; left:50px;">
      <input type="text" name="vorname" size="30" maxlength="30"/></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">Nachname: <span class="Stil1">*</span> </td>
  <td style="position:relative; left:50px;">
   <input type="text" name="nachname" size="30" maxlength="30" /></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">Stasse: <span class="Stil1">*</span> </td>
  <td style="position:relative; left:50px;">
   <input type="text" id="strasse" size="30" maxlength="30" /></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">Plz: <span class="Stil1">*</span> </td>
  <td style="position:relative; left:50px;">
   <input type="text" name="plz" size="5" maxlength="5" /></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">Ort: <span class="Stil1">*</span> </td>
  <td style="position:relative; left:50px;">
   <input type="text" id="ort" size="30" maxlength="30" /></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">Land: <span class="Stil1">*</span></td>
  <td style="position:relative; left:50px;">
   <select name="land" size="1" />
    <option value="noselect">...bitte auswählen</option>
<option value="oesterreich">Österreich</option>
<option value="deutschland">Deutschland</option></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
  <td style="position:relative; left:50px;">E-Mailadresse:</td>
  <td style="position:relative; left:50px;">
   <input type="text" id="mail" size="30" maxlength="30" /></td>
    </tr>
<tr>
  <td style="position:relative; left:50px;">&nbsp;</td>
<td style="position:relative; left:50px;">Telefonnummer:</td>
<td style="position:relative; left:50px;">
<input type="text" id="telefonnummer" size="30" maxlength="30" /></td>
</tr>
</table>
<p>&nbsp;</p>
<table width="90%" border="0" class="menumitte">
  <tr>
    <td height="28" colspan="4" class="handytype"><div align="center"><span class="handytype_title">Handymodell/Type und IMEI</span></div></td>
  </tr>
  <tr>
    <td style="position:relative; left:50px;">Handytype: <span class="Stil1">*</span></td>
    <td style="position:relative; left:50px;"><select name="handymarke">
  <option value="--">Bitte wählen:</option>
  <option value="Nokia">Nokia</option>
  <option value="Sony Ericsson">Sony Ericsson</option>
  <option value="Samsung">Samsung</option>
  <option value="LG">LG</option>
  <option value="Motorola">Motorola</option>
  <option value="Siemens/BenQ">Siemens/BenQ</option>
  <option value="motorola">Motorola</option>
  <option value="motorola">Motorola</option>
  <option value="motorola">Motorola</option>
  </select></td>
    <td width="15%" rowspan="2">IMEI-Nummer: <span class="Stil1">*</span></td>
    <td width="25%" rowspan="2"><input type="text" name="imei" size="30" maxlength="15" /></td>
  </tr>
  <tr>
    <td width="22%" style="position:relative; left:50px;">Handymodell: <span class="Stil1">*</span></td>
    <td width="38%" style="position:relative; left:50px;"><select id="type" name="Modell">
    <option value="--">----------</option> 
  </select></td>
  </tr>
</table>
<p>&nbsp;</p>
<table width="90%" height="88" border="0" class="menumitte">
<tr>
  <td height="28" colspan="3" class="handytype"><div align="center"><span class="zahlungsinfo_title">Zahlungsinformationen</span></div></td>
    </tr>
<tr>
  <td width="22%" style="position:relative; left:50px">
   <div align="center"></div></td>
  <td width="9%" style="position:relative; left:50px"><input type="checkbox" name="nn" unchecked="unchecked" /></td>
  <td><p><span class="bezahlung">VORAUSZAHLUNG</span> || Code wird erst nach erfolgter Zahlung berrechnet </p></td>
    </tr>
<tr>
  <td style="position:relative; left:50px">
       <div align="center"></div></td>
  <td style="position:relative; left:50px"><input type="checkbox" name="bar" unchecked="unchecked" /></td>
<td width="69%"><span class="bezahlung">PAYPAL</span> || wird sofort nach Zahlungseingang berechnet </td>
</tr>
</table>
<p>&nbsp;</p>
<table width="90%" border="0" class="menu_bottom">
  <tr>
    <td width="90%"><div align="center"><span class="agbs"> Hiermit best&auml;tige ich die AGBs von xxxx gelesen zu haben, weiters Verzichte ich bei dieser Dienstleistung auf das R&uuml;ckgaberecht</span>
        <input type="checkbox" name="agbs" unchecked="agbs" />
      <br />
    </div></td>
  </tr>
</table>
<table width="90%" class="menu_bottom">
<tr>
<td>
  <div align="center">
    <input name="Senden" type="submit" value="ABSENDEN" onclick="javascript:pruefung()"  />
    </div>
</td></tr></table>
</form>
</body>
</html>



und hier ist das JS:

Javascript:
function pruefung()
{

if (document.versandform.nachname.value == "")
{
window.alert ("Bitte füllen Sie das Feld NACHNAMEN aus");
return;
}

if (isNaN(document.versandform.plz.value)==true)
{
window.alert ("Bitte füllen Sie das Feld POSTLEITZAHL aus");
return;
}

if (document.versandform.ort.value == "")
{
window.alert ("Bitte füllen Sie das Feld ORT aus");
return;
}

if (document.versandform.strasse.value == "")
{
window.alert ("Bitte füllen Sie das Fled STRASSE aus");
return;
}


if (document.versandform.land.selectedIndex == false)
{
window.alert ("Bitte wählen Sie Ihr LAND aus");
return;
}


if (isNaN(document.versandform.imei.value)==true || document.versandform.imei.value == "")
{
window.alert ("Bitte geben Sie die IMEI (Seriennummer) Ihres Handys ein");
return;
}



if (document.versandform.nn.checked == false && document.versandform.bar.checked == false)
{
window.alert ("Bitte wählen Sie eine VERSANDART");
return;
}

if (document.versandform.agbs.checked == false)
{
window.alert ("Bitte akzeptieren sie die AGB's")
return;
}
}
 
Zuletzt bearbeitet von einem Moderator:

Loomis

Mitglied Bunt
Wenn du das ganze in die passenden Code-Tags einbaust, kuckt sich das auch jemand an.
( [*CODE][*/CODE], [*HTML][*/HTML], [*PHP][*/PHP], usw. ohne Sternchen)
 

Maniac

Erfahrenes Mitglied
Bitte verwende das nächste mal die Code-BBCodes.

Du musst die prüfung nicht auf den Button legen sondern im Form-Tag als onSubmit-Event:

Code:
<form action="<?php print $_SERVER['PHP_SELF']; ?>" name="versandform" method="post" onsubmit="return pruefung(this)">
 

satarielxx

Grünschnabel
hallo,

stimmt man sollte das JS nicht auf den Button ausführen lassen sondern auf das Formular. habs jetzt zwar geändert ist aber nochimmer so...... :mad:

den Input tag hab ich so geändert:
Code:
<input type="submit" value="ABSENDEN" />
 

Maniac

Erfahrenes Mitglied
das liegt an deinem Javascript teil
Code:
if (document.versandform.nachname.value == "")
{
window.alert ("Bitte füllen Sie das Feld NACHNAMEN aus");
return;
}

muss so aussehen:
Code:
if (document.versandform.nachname.value == "")
{
window.alert ("Bitte füllen Sie das Feld NACHNAMEN aus");
return false;
}

also quasi "Wenn Feld leer ist, dann gib false zurück"
Und bei den anderen Feldern muss das natürlich aus so sein.
 

queicherius

♥ PHP ♥
du solltest die Formulare auch noch mit php prüfen - js kann der Benutzer abschalten und dann bekommst du nicht alle Sachen übergeben :rolleyes:
 
Zuletzt bearbeitet:

satarielxx

Grünschnabel
ich bekomm das einfach nicht hin, habs jetzt im JS mit return false und return true probiert aber es kommt immer dasselbe raus:mad::mad:

Es wird zwar das Formular überprüft aber trotzdem wird es dan abgesendet :mad::mad:
 

queicherius

♥ PHP ♥
mit
Code:
return false;
und
Code:
<form action="<?php print $_SERVER['PHP_SELF']; ?>" name="versandform" method="post" onsubmit="return pruefung()">
sollte es aber funktionieren :suspekt: