1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Formular funktioniert auf einem bestimmten Webserver nicht, Fehlermeldung.

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von pepepy, 30.07.07.

  1. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    284
    Hallo,

    ich habe ein Problem mit ein paar Formularen.

    Klickt man auf SENDEN, wird meine zuvor definierte Fehlermeldung ausgegeben:

    "Verbindungsprobleme! Bitte versuchen Sie es später noch einmal."

    Meine Frage ist nun: Woran liegt das?
    Kann ich das beheben oder ist der Provider gefordert?
    Ist es eine Servereinstellung?

    Das selbe Formular funktioniert auf meinem Webspace hervorragend.
    Auf dem des Kunden gibt es diese Fehlermeldung.

    Und hier das Script:

    Code:
    <?php
    $name = $_POST["name"];
    $vorname = $_POST["vorname"];
    $telefon = $_POST["telefon"];
    $email = $_POST["email"];
    $adresse = $_POST["adresse"];
    $plz = $_POST["plz"];
    $nachricht = trim(substr($_POST["nachricht"],0,1250));
    $button = $_POST["button"];
    
    function check_email($email) {
    	//email nach dem @-Zeichen aufgetrennt
    	$addarray = explode("@",$email);
    	
    	//gab es mehr oder weniger als ein @-Zeichen? Dann falsch
    	if(count($addarray) != 2) return false;
    	
    	//ist der Teil vor dem @-Zeichen leer? Dann falsch
    	if(strlen($addarray[0]) == 0) return false;
    	
    	//ist der Domain_teil nach dem @-Zeichen kleiner als 5 Zeichen? Dann falsch
    	if(strlen($addarray[1]) < 5) return false;
    	
    	//Punkt für Toplevel-Domain auslesen
    	$punktarray = explode(".",$addarray[1]);
    	
    	//gab es weniger als einen Punkt, dann ungültig, falsch
    	if(count($punktarray) < 2) return false;
    	
    	//TopLevelDomain merken
    	$tld = $punktarray[count($punktarray)-1];
    	
    	//TLD hat mindestens 2, max. 6 Zeichen 
    	if(strlen($tld) >= 2 && strlen($tld) <= 6) return true;
    }
    
    //Formulardaten versendet?
    if($button) {
    
        // Pflichtfedler leer?
        if(!$name || !$vorname) {
            $meldung[] = "<span class=\"alert\">&bull; Bitte füllen Sie alle * Felder aus.</span>";
        }
    
        // Email-Adresse falsch?
        $check = check_email($email);  /* selbstdefinierte Funktion, die in "/data/funktionen.php" liegt 
                                          wird duch "include" am Anfang der Datei abgerufen*/
        
        if(!$check) {
            $meldung[] = "<span class=\"alert\">&bull; Es wurde keine gültige E-Mail-Adresse eingegeben!</span>";  
        }
        //alles in Ordnung?
        if(!$meldung) {
              //e-mail versenden!
           $subject = "Onlineanfrage vom ".date("d.m.Y H:i:s");
           
           $mailbody = "$vorname $name hat mit uns über die Webseite Kontakt aufgenommen.\n\n".
    				   "Telefon: $telefon\n".
    				   "E-Mail: $email\n\n".
    				   "Mitteilung: \n$nachricht\n\n";
           
           $versandt = @mail("info@mail.de", $subject, $mailbody, "From: $email");  
                    // @-Zeichen verhindert, dass man die Fehlermeldung im Browser sieht
           
           if($versandt) {header("Location:antwort_neu.php");}
           
           else {$meldung[] = "<span class=\"alert\">Verbindungsprobleme! Bitte versuchen Sie es später noch einmal.</span>";}
        
         }
    }
    
    ?>
    
    <?php echo "<? xml version=\"1.0\"?>" ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Kontakt</title>
    <link href="../css/basic.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    <!--
    @import url("../css/extras.css");
    -->
    </style>
    <script type="text/javascript" src="../js/script.js"></script>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript" src="../js/front.js"></script>
    
    </head>
    
    <body>
    
      <?php 
    	if(is_array($meldung)) {
    	echo implode("<br />", $meldung);
    	}
      ?>
          <table border="0" cellpadding="0" cellspacing="0">
            <tr>
              <th width="468" height="450" align="left" valign="top" scope="col"><br />
                <form action="kontakt_neu.php" method="post" name="kontakt">
                
                  <table width="433" cellpadding="0" cellspacing="0">
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">Name *</td>
                      <td height="35" colspan="3">
                        <input name="name" type="text" class="rahmen" id="name" value="<?php echo $name; ?>" size="35" /></td>
                    </tr>
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">Vorname *</td>
                      <td height="35" colspan="3">
                        <input name="vorname" type="text" class="rahmen" value="<?php echo $vorname; ?>" size="35" /></td>
                    </tr>
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">Telefon</td>
                      <td height="35" colspan="3">
                        <input name="telefon" type="text" class="rahmen" value="<?php echo $telefon; ?>" size="35" /></td>
                    </tr>
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">E-Mail *</td>
                      <td height="35" colspan="3">
                        <input name="email" type="text" class="rahmen" value="<?php echo $email; ?>" size="35" /></td>
                    </tr>
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">Strasse</td>
                      <td height="35" colspan="3">
                        <input name="adresse" type="text" class="rahmen" value="<?php echo $adresse; ?>" size="35" /></td>
                    </tr>
                    <tr align="left" valign="top">
                      <td height="35" colspan="2">PLZ/Ort</td>
                      <td height="35" colspan="3">
                        <input name="plz" type="text" class="rahmen" value="<?php echo $plz; ?>" size="35" /></td>
                    </tr>
                    <tr>
                      <td height="130" colspan="2" valign="top">Mitteilung</td>
                      <td height="130" colspan="3" valign="top">
                        <textarea name="nachricht" cols="35" rows="7" wrap="physical"><?php echo $nachricht; ?></textarea></td>
                    </tr>
                    <tr align="left" valign="middle">
                      <td width="41" height="30"><p>  </p></td>
                      <td width="44" height="30"> </td>
                      <td width="185" height="30" align="right" valign="middle">
                        <input name="Submit2" type="reset" class="senden" value="LÖSCHEN" />                  </td>
                      <td width="23"> </td>
                      <td width="138" height="30"><input name="button" type="submit" class="senden"  value="SENDEN" /></td>
                    </tr>
                  </table>
                  <p> </p>
              </form></th>
            </tr>
          </table>
    </body>
    </html>
    
    Sicher kann man das Ganze besser lösen.

    Ich verstehe nur nicht warum es hier funktioniert und dort nicht.

    Für Hinweise wäre ich dankbar.
     
    #1 pepepy, 30.07.07
    Zuletzt bearbeitet: 30.07.07
  2. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    scheint auf dem ersten blick daran zu liegen dass die mail-funktion (zeile 62) nicht funktioniert. am besten mal mit dem provider kurzschliessen.
    Und noch etwas: ich würde die email-adresse mit regular expressions überprüfen - im moment ist das formular für den spam-versand optimiert ;).
    lg c7.
     
  3. pepepy

    pepepy Riesenboiken

    Dabei seit:
    20.06.06
    Beiträge:
    284
    Wie meinst du das?
    Wie gesagt, schicke ich das Formular von meiner Domain aus, kommt die E-Mail an.

    Wenn ich das selbe Formular auf den Webserver des Kunden hochlade und ausfülle, gibt es die Fehlermeldung.

    Du meinst ich sollte checken ob es die Adresse wirklich gibt? Oder etwas zur Sicherheit einbauen?

    Zunächst muss es laufen und weiss nicht warum es nicht geht - habt ihr eine Idee?


    Gruß
    peter
     
  4. ma.buso

    ma.buso Châtaigne du Léman

    Dabei seit:
    16.04.05
    Beiträge:
    824
    mach mal das @ vor mail() raus und schau nach ob es eine fehlermeldung gibt.
     
  5. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454

Diese Seite empfehlen