Antworten auf deine Fragen:
Neues Thema erstellen

php-Kontaktformular - Email und Betreff als Optional einstellen

laemmen

Maissalat

Moooin, ich habe ein Problem mit meinem Kontaktformular. Ich möchte, dass der Betreff und die Email-Adresse als Optional eingestellt sind - hier sind sie aktuell noch Pflichtangaben. Ich habe irgendwas versucht, Teile des Codes rausgenommen, aber dann wird keine Mail an mich verschickt.

Könnt ihr mir weiterhelfen??

Code:
<?php

// *** Einstellungen ***
$mail_to = 'lustig@mehl.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.='Name:<br>';
if(trim($from_mail)=='')
  $err_text.='Email:<br>';
else
  if(!preg_match('/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$/i',$from_mail))
    $err_text.='Bitte geben Sie eine gültige E-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>';

$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><big><b>Fehler:</b></big><br>';
  echo $err_text.'</p>';
}

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

<form action="<?=GetParam('PHP_SELF','S')?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr>
  <td nowrap align=right>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>Email:</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>Homepage:</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>Eintrag:<br></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="Abschicken" 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;
  }
}
?>
Gruß Dennis
 

Robbyn-

PHP / Flex Programmierer

AW: php-Kontaktformular - Email und Betreff als Optional einstellen

PHP:
<?php

// *** Einstellungen ***
$mail_to = 'ihre@mailadresse.tld'; // 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($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') && ($err_text != '')) {
  echo '<p><big><b>Fehler:</b></big><br>';
  echo $err_text.'</p>';
}

if (($send != '1') || ($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 E-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><i>(max. 1.000 Zeichen)</i></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;
  }
}
?>

Probiere mal den Code müssten jetzt eigentlich die Abfragen draussen sein.
 
Zuletzt bearbeitet:

Robbyn-

PHP / Flex Programmierer

AW: php-Kontaktformular - Email und Betreff als Optional einstellen

Ok dann Probiere mal den Code

PHP:
<?php

// *** Einstellungen ***
$mail_to = 'ihre@mailadresse.tld'; // 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($mail_text)=='') $err_text.='Bitte geben Sie einen Nachrichtentext ein.<br>';
if(trim($mail_subject) == '')
{
    $mail_subject = "Standart";
}

if(trim($from_mail) == '')
{
    $from_mail    =    "Keine E-Mail";
}

// *** 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><big><b>Fehler:</b></big><br>';
  echo $err_text.'</p>';
}

if (($send != '1') || ($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 E-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><i>(max. 1.000 Zeichen)</i></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;
  }
}
?>
Mfg.Robbyn

Aber ich sehe gerade was der Code kam mir schon so bekannt vor ist das nicht der Code von Gaijin.at - Freeware, Online-Tools, PHP-Scripts, Artikel. Falls ja werde ich dir da jetzt nciht mehr helfen da er Geschützt ist und nicht verändert werden darf. Sorry

Mfg.Robbyn
BITTE 'EDIT' BENUTZEN UM DOPPELPOSTS ZU VERMEIDEN!
 
Zuletzt bearbeitet von einem Moderator:

laemmen

Maissalat

AW: php-Kontaktformular - Email und Betreff als Optional einstellen

Aber ich sehe gerade was der Code kam mir schon so bekannt vor ist das nicht der Code von Gaijin.at - Freeware, Online-Tools, PHP-Scripts, Artikel. Falls ja werde ich dir da jetzt nciht mehr helfen da er Geschützt ist und nicht verändert werden darf. Sorry

Mfg.Robbyn

Ich habe ihn in einem Forum als Download gefunden, ohne Vermerkt auf den Urheber :uhm: Aber fallen solche Änderung am Code nicht unter Anpassen?
Ansonsten lasse ich das lieber mit dem Code und nutze ihn normal, vielen Dank auch schonmal für die Hilfe!


Gruß Dennis
 

saila

Moderatorle

AW: php-Kontaktformular - Email und Betreff als Optional einstellen

Hi,

was für ein haufen Scriptcode für eine simple Frage....

Lösung:
PHP:
$mail_to = strip_tags($mail_to);
if(trim($mail_to) == '') {
  $mail_to = 'dummy@deine_domain.tld';
}
Einfach entsprechend einbinden. Das gleich Beispiel kannst du für den Betreff mit entsprechendem Text verwenden.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben