Probleme mit Formular

Cemil

Erfahrenes Mitglied
Hi,
habe folgendes Problem:

Wenn ich das Formular versende, werden die Fehlermeldungen zwar angezeigt, aber versendet wird es trotzdem.

Ich will das alle Fehlermeldungen angezeigt werden, aber es soll nichts versendet werden. Das klappt im moment nicht so ganz.

Wäre sehr froh, wenn sich jemand die Zeit nehmen würde, um mein Code anzuschauen.

Ich sehe vor lauter Bäumen den Wald nicht mehr.

Habe nur company geändert um zu testen:
PHP:
<?php
        $ok=0;
        $ok = @mysql_query($sql);
        if($ok==0) {

        // Firma
        if (empty($_POST['company'])) {
            $error1 = "<p>Bitte geben Sie eine Firma ein.</p>";
            $ok=1;
        }
        
        // Name
        if (empty($_POST['name'])) {
            echo "<p>Bitte geben Sie einen Namen ein.</p>";
        }
        if (!empty($_POST['name'])) {
        if (!eregi("[a-z]", $name)){
            echo "<p>Bitte geben Sie einen gültigen Namen ein.</p>";
        }
        }

        // Adresse
        if (empty($_POST['address'])) {
            echo "<p>Bitte geben Sie eine Adresse ein.</p>";
        }
        if (!empty($_POST['address'])) {
        if (!eregi("[a-z0-9]", $address)){
            echo "<p>Bitte geben Sie eine gültige Adresse ein.</p>";
        }
        }

        // Wohnort
        if (empty($_POST['city'])) {
            echo "<p>Bitte geben Sie einen Wohnort ein.</p>";
        }
        if (!empty($_POST['city'])) {
        if (!eregi("[a-z]", $city)){
            echo "<p>Bitte geben Sie einen gültigen Wohnort ein.</p>";
        }
        }

        // Land
        if (!empty($_POST['country'])) {
        if (!eregi("[a-z]", $country)){
            echo "<p>Bitte geben Sie ein gültiges Land ein.</p>";
        }
        }

        // PLZ
        if (!empty($_POST['pcode'])) {
        if (!eregi("[0-9]", $pcode)){
            echo "<p>Bitte geben Sie eine gültige Postleitzahl ein.</p>";
        }
        }

        // Telefon
        if (empty($_POST['tel'])) {
            echo "<p>Bitte geben Sie eine Telefonnummer ein.</p>";
        }
        if (!empty($_POST['tel'])) {
        if (!eregi("[0-9]", $tel)){
            echo "<p>Bitte geben Sie eine gültige Telefonnummer ein.</p>";
        }
        }

        // Fax
        if (!empty($_POST['fax'])) {
        if (!eregi("[0-9]", $fax)){
            echo "<p>Bitte geben Sie eine gültige Faxnummer ein.</p>";
        }
        }

        // E-Mail
        if (empty($_POST['email'])) {
            echo "<p>Bitte geben Sie eine E-Mailadresse ein.</p>";
        }
        if (!empty($_POST['email'])) {
        if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*"."@([a-z0-9]+([\.-][a-z0-9]+))*$", $email)){
            echo "<p>Bitte geben Sie eine gültige E-Mailadresse ein.</p>";
        }
        }

        // Bildbeschreibung
        if (empty($_POST['desc'])) {
            echo "";
        }

        // Bilddatei
        if(empty($uploadfile)) {
        echo "<p>Bitte wählen Sie eine Bilddatei aus (nur gif, jpg, jpeg oder png).</p>";
        }
        else {
        $uploadfile_tempname = $_FILES['uploadfile']['tmp_name'];
        $uploadfile_name = $_FILES['uploadfile']['name'];
        $uploadfile_type = $_FILES['uploadfile']['type'];
        $uploadfile_size = $_FILES['uploadfile']['size'];
        if($uploadfile_type != "image/gif" && $uploadfile_type != "image/pjpeg" && $uploadfile_type != "image/x-png") {
           $uploadfile_err[] = "<p>Bitte wählen Sie eine gültige Bilddatei aus.</p>";
        }
        if($uploadfile_size > "100000") {
            $uploadfile_err[] = "<p>Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 100 KB!</p>";
        }
        if(empty($uploadfile_err)) {
            copy("$uploadfile_tempname", "$uploadfile_path"."$uploadfile_name");
            echo "<p>Die Datei $uploadfile_name wurde erfolgreich hochgeladen!</p>";
        }
        else {
            foreach($uploadfile_err as $uploadfile_error)
            echo "$uploadfile_error";
        }
        }
            echo ("<b>Dateien wurden erfolgreich gesendet!</b>");
        }
        else {
            echo $error1;
            //echo ("<p>Dateien konnten nicht gesendet werden! " . mysql_error());
            //header("Location: $PHP_SELF");
            //exit();
        }
        show_form($_POST['company'],$_POST['name'],$_POST['address'],$_POST['city'],$_POST['country'],$_POST['pcode'],$_POST['tel'],$_POST['fax'],$_POST['email'],$_POST['desc'],$_POST['uploadfile']);
    }
?>
Bin dankbar für jede Hilfe.

Grüsse
 
$ok=0;
$ok = @mysql_query($sql);
if($ok==0) {

bin mir nicht sicher ob dass das Problem is aber erst ist ok = 0 dann wird es ein anderer Wert und und wenn du nun abfragst ob ok = 0 ist, dürfte das ja wohl auf alle Fälle nicht der Fall sein :(
 
Hallo,
vielen Dank für Deine Antwort.

Das habe ich übersehen. Habe es wie unten aufgeführt getestet, aber nichts geht. Irgendwo ist der Wurm drin. Ehrlich gesagt, weiss nicht wo der Fehler liegt.

PHP:
$error=0;
$ok = @mysql_query($sql);
    	
if($ok==0) {

// Firma
if (empty($_POST['company'])) {
          $error1 = "<p>Bitte geben Sie eine Firma ein.</p>";
          $error=1;
}

Grüsse
 
Hallo nochmals,
Leute es tut mir leid, das ich so ein Sch....(man kann es verstehen wie man will, Schrott geht auch ;)) geschrieben habe, aber ich beschäftige mich jetzt seit mehr als einer Woche mit diesem Formular und funktionieren tut es immer noch nicht.

Ich habe es nochmals geschrieben aber es funkt immer noch nicht:

PHP:
$send=0;
if ($send!=1)
{
$ok = @mysql_query($sql);
if($ok==0) {

// Firma
if (empty($_POST['company'])) {
          $error1 = "<p>Bitte geben Sie eine Firma ein.</p>";
          $send=1;
}

Grüsse
 
Hi,
ich sende mal den gesamten Code als .zip-Datei. Wenn jemand Lust und Laune hat, kann er sich das mal reinziehen. Der Code ist sauber geschrieben (das mindeste was man von einem Anfänger erwarten kann ;)).

Grüsse
 

Anhänge

so mein ich das nicht, ich dachte eigentlich daran, dass er ja wenn überhaupt nur in den Else-zweig geht und nichts überprüft von deinen Kontrollen.... oder übergibt $sql etwa 0 ? Das glaube ich nämlich weniger.... Viel. solltest du eine andere Bedingung an die if Bedingung setzen.
PHP:
$ok = @mysql_query($sql);
if($ok==0) {
 
Zurück