Dirk: kontaktformular fehler php

hallo liebe gemeinde,

über eure hilfe bei meinem problem würd ich mich sehr freuen. ich habe ein kontaktformular, welches bei meinem anbieter suleitec problemlos funktioniert. bei meinem anderen provider hosteurope funktioniert es leider nicht mehr. die überprügung auf ausgefüllte textfelder funktioniert problemlos, doch kann es nicht versendet werden, sprich fehlermeldung "Beim Versenden der Nachricht ist ein Fehler aufgetreten!" woran kann es liegen, bzw. was muss abgeändert werden? hier mal grad der code für euch.
beste grüße und schon jetzt ein großes dankeschön. dirk

<?php  
  
// *** Einstellungen ***  
$mail_to = 'post@post.de'; // Ihre Mailadresse (Empfängeradresse)  
  
// #############################################################################  
$from_name=GetParam('fromname');  
$from_mail=strtolower(GetParam('frommail'));  
$mail_subject=GetParam('mailsubject');  
$mail_text=GetParam('mailtext');  
$send=GetParam('s');  
  
$err_text='';  
if(trim($from_name)=='') $err_text.='Bitte gebe deinen Namen an.<br>';  
if(trim($from_mail)=='')  
  $err_text.='Bitte gebe deine E-Mail-Adresse an.<br>';  
else  
  if(!ereg('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$',$from_mail))  
    $err_text.='Bitte gebe eine gültige E-Mail-Adresse an.<br>';  
if(trim($mail_subject)=='') $err_text.='Bitte gebe einen Betreff ein.<br>';  
if(trim($mail_text)=='') $err_text.='Bitte gebe einen Nachrichtentext ein.<br>';  
  
// *** Zu langen Text abschneiden ***  
if(strlen($mail_text)>1000) {  
  $mail_text=substr($mail_text,0,1000).'... (Text wurde gekürzt!)';  
}  
$from_name=str_replace(chr(34),"''",$from_name);  
$mail_subject=str_replace(chr(34),"''",$mail_subject);  
$from_name=stripslashes($from_name);  
$from_mail=stripslashes($from_mail);  
$mail_subject=stripslashes($mail_subject);  
$mail_text=stripslashes($mail_text);  
  
if (($send == '1') && ($err_text != '')) {  
  echo '<p><b>Fehler:</b><br>';  
  echo $err_text.'</p>';  
}  
  
if (($send != '1') || ($err_text != '')) {  
?>  
  
  
  
  
  
  
  
  
                                      <form action="<?=GetParam('PHP_SELF','S')?>" method="post">  
                                        <table cellspacing="4" cellpadding="0" border="0">  
                                          <tr>  
                                            <td width="140">Name *</td>  
                                            <td><input type="text" name="fromname" value="<?=$from_name?>" size="20" maxlength="80"></td>  
                                          </tr>  
                                          <tr>  
                                            <td>E-Mail *</td>  
                                            <td><input type="text" name="frommail" value="<?=$from_mail?>" size="20" maxlength="80"></td>  
                                          </tr>  
                                          <tr>  
                                            <td>Betreff *</td>  
                                            <td><input type="text" name="mailsubject" value="<?=$mail_subject?>" size="20" maxlength="80"></td>  
                                          </tr>  
                                          <tr>  
                                            <td valign="top">Nachricht *</td>  
                                            <td><textarea name="mailtext" cols="" rows=""><?=$mail_text?></textarea></td>  
                                          </tr>  
                                          <tr>  
                                            <td>&nbsp;</td>  
                                            <td><input class="button" type="Submit" name="submit" value="senden" onfocus="this.blur()"></td>  
                                          </tr>  
                                          <tr>  
                                            <td colspan="2">* Feld muß ausgefüllt werden</td>  
                                          </tr>  
                                        </table><input type="hidden" value="1" name="s"></form>  
  
  
  
  
  
  
  
<?php  
} else {  
  $header="From: $from_name <$from_mail>\n";  
  $header.="Reply-To: $from_mail\n";  
  $header.="X-Mailer: PHP-ContactForm-Script\n";  
  $header.="Content-Type: text/plain";  
  $mail_date=gmdate('D, d M Y H:i:s').' +0000';  
  $send=0;  
  if(@mail($mail_to,$mail_subject,$mail_text,$header))  
  {  
    echo "<p><b>Die Nachricht wurde erfolgreich abgesendet.</b></p>";  
    echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";  
  }else{  
    echo "<p><b>Beim Versenden der Nachricht ist ein Fehler aufgetreten!</b></p>";  
    echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";  
    echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";  
  }  
}  
  
function GetParam($ParamName, $Method = 'P', $DefaultValue = '') {  
  if ($Method == 'P') {  
    if (isset($_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;  
  } else if ($Method == 'G') {  
    if (isset($_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;  
  } else if ($Method == 'S') {  
    if (isset($_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;  
  }  
}  
?>
  1. Hi!

    Entferne mal den @-Operator vor mail() und schalte vorher mit error_reporting(E_ALL) das Error-Reporting ein - dann solltest Du mehr Informationen erhalten.

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hi!

      Entferne mal den @-Operator vor mail() und schalte vorher mit error_reporting(E_ALL) das Error-Reporting ein - dann solltest Du mehr Informationen erhalten.

      off:PP

      hallo peter,

      wie genau mache ich das mit dem error_reporting. mit php bin ich nicht grad auf der höhe.

      1. Hi!

        wie genau mache ich das mit dem error_reporting.

        Du notierst am Anfang des Scriptes:
        error_reporting(E_ALL);// ;-)

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Hi!

          wie genau mache ich das mit dem error_reporting.

          Du notierst am Anfang des Scriptes:
          error_reporting(E_ALL);// ;-)

          off:PP

          also quasi so, doch informationen habe ich keine zurück erhalten.

          <?php
          error_reporting(E_ALL);//
          } else {
            $header="From: $from_name <$from_mail>\n";
            $header.="Reply-To: $from_mail\n";
            $header.="X-Mailer: PHP-ContactForm-Script\n";

          1. Hi,

            also quasi so, doch informationen habe ich keine zurück erhalten.

            <?php
            error_reporting(E_ALL);//
            } else {
              $header="From: $from_name <$from_mail>\n";
              $header.="Reply-To: $from_mail\n";
              $header.="X-Mailer: PHP-ContactForm-Script\n";

            Nein, ganz und gar nicht so. Das erzeugt ja gleich noch einen neuen Fehler, nämlich durch das sinnfreie else nach dem Setzen des error_reporting.

            Wenn dir *dabei* gar nix angezeigt wird („weisse Seite“) - dann steht vermutlich display_errors auf off, stelle das also auch noch auf on.

            MfG ChrisB

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hallo,

    hast du den Artikel gelesen? http://faq.hosteurope.de/index.php?cpid=11073

    Grüße