• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

Formular funktioniert auf einem bestimmten Webserver nicht, Fehlermeldung.

pepepy

Becks Apfel (Emstaler Champagner)
Registriert
20.06.06
Beiträge
332
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("[email protected]", $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.
 
Zuletzt bearbeitet:

creative7even

Jerseymac
Registriert
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.
 

pepepy

Becks Apfel (Emstaler Champagner)
Registriert
20.06.06
Beiträge
332
scheint auf dem ersten blick daran zu liegen dass die mail-funktion (zeile 62) nicht funktioniert.

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
 

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
mach mal das @ vor mail() raus und schau nach ob es eine fehlermeldung gibt.