PHP FormMailer Problem

Die Scriptsprache PHP fĂĽr die Gestaltung von dynamischen Websites.

PHP FormMailer Problem

Beitragvon zoRRen » So 23 Aug, 2009 05:22

Guten Morgen :)

Ich habe Probleme mit diesem Formmailer Script, die Fehlerausgabe funktioniert einwandfrei, doch auch wenn alle Felder richtig ausgefüllt sind, bekomme die Ausgabe Fehler, allerdings ohne Erläuterung. Bitte um Hilfe, danke :)

Code: Alles auswählen
<?php

// *** Einstellungen ***
$mail_to = '[email protected]'; // 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 geben Sie Ihren Namen an.<br>';
if(trim($from_mail)=='')
  $err_text.='Bitte geben Sie Ihre 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 geben Sie eine gĂĽltige Mail-Adresse an.<br>';
if(trim($mail_subject)=='') $err_text.='Bitte geben Sie einen Betreff ein.<br>';
if(trim($mail_text)=='') $err_text.='Bitte geben Sie 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') && (isset($err_text))) {
  echo '<p><font color="#FF0000"><b>Fehler:</b></font><br>';
  echo $err_text.'</p>';
}

if(($send!='1') || (isset($err_text)))
{
?>

<form action="<?=GetParam('PHP_SELF','S')?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Ihr Name:</td><td>&nbsp;</td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?=$from_name?>"></td></tr>
<tr><td nowrap align=right>Ihre Mail-Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?=$from_mail?>"></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?=$mail_subject?>"></td></tr>
<tr><td nowrap align=right valign=top>Text:<br>  (max. 1.000 Zeichen)</td><td></td>
<td width=100%><textarea cols=40 rows=10 name="mailtext"><?=$mail_text?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s">
<input type="submit" value="Nachricht versenden" name="submit">
</td></tr>
</table>
</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;
  }
}
?>
zoRRen
Senior Board-Mitglied
Senior Board-Mitglied
 
Beiträge: 367
Registriert: So 27 Mär, 2005 02:07
Wohnort: Lannach/Graz

Re: PHP FormMailer Problem

Beitragvon radditz » So 23 Aug, 2009 11:07

auf die schnelle finde ich nichts "besonderes".

aber:
wenn du schreibst "@mail(...)" wird AFAIR die FEhlerausgabe unterdrĂĽckt, was dir bei der Fehlersuche nicht besonders hilfreich ist ;)

Tu das @ mal weg und aktivier zu dem noch error reporting:
http://at.php.net/manual/en/function.er ... orting.php
Telematica DSL Solo Pro 30 Mbit/s
Vorher: A1 VDSL 16 Mbit/s
radditz
Ultimate Power-User
Ultimate Power-User
 
Beiträge: 4399
Registriert: Mo 23 Jun, 2003 16:50

Re: PHP FormMailer Problem

Beitragvon Misifts » Do 03 Nov, 2011 21:47

are u using that form for your private website or Wordpress,joomla etc. opensource scripts ?
Misifts
Neu im Board
Neu im Board
 
Beiträge: 10
Registriert: Do 03 Nov, 2011 21:31

Re: PHP FormMailer Problem

Beitragvon theklaus » Mi 05 Dez, 2012 15:23

Ich hab keine Ahnung, ob es noch aktuell ist, aber vielleicht will ja noch jemand das Script verwenden.

Fehler ist jedenfalls:
Es wird geprĂĽft:
Code: Alles auswählen
if(($send=='1') && (isset($err_text))) {
      echo '<p><font color="#FF0000"><b>Fehler:</b></font><br>';
      echo $err_text.'</p>';
    }


isset($err_text) ist aber immer true, da die Variable weiter oben initialisiert wird. Du musst zusätzlich noch prüfen, ob die Variable einen Inhalt hat.

Korrigiert also:
Code: Alles auswählen
if(($send=='1') && (isset($err_text)) && !empty($err_text)) {
      echo '<p><font color="#FF0000"><b>Fehler:</b></font><br>';
      echo $err_text.'</p>';
    }
theklaus
Neu im Board
Neu im Board
 
Beiträge: 16
Registriert: Mi 05 Dez, 2012 13:34


ZurĂĽck zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 Gäste