PHP Anfängerfragen !

xkoy79

Mitglied
Hallo zusammen,

ich habe hier mal ein Page gebastelt wo ich ein Kontakt Formular haben möchte !
habe das "Design" mit Css gestaltet, nun sollen damit aber auch Mails versendet werden :)

Da habe ich den PHPmailer gefunden, installiert, aber irgendwie ist da gleich die Mail versendet wenn ich auf mein Kontaktformular gehe ! Schaut doch mal selber hier:

http://www.kitzbühler-musig.at/test1.php <----------- Kontakt klicken !

Was muss ich da nun noch anpassen

Vielen Dank
 
Du musst vor dem Absenden der E-Mail prüfen, ob überhaupt das Formular versandt wurde. Dies geht beispielsweise wie folgt:
PHP:
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
	// POST-Anfrage
	// E-Mail versenden
} else {
	// keine POST-Anfrage
	// Formular ausgeben
}
 
Danke euch für eure Hilfe, aber ich hab nun mal ein Script von das "geändert" bzw. habs veruscht:

http://www.gaijin.at/scrphpcform.php

Wollte halt einen Input Feld mehr haben, also das SUbject raus und "Wohnort" rein !!
Bis ich das mal hatte das ne Mail versandt wurde hat mehrere Stunden gedauert :)

Seis drum, nun hab ichs eingebunden, und siehe da, wieder ein Fehler... ich versths nicht.

Habe so ein menu :
PHP:
<?php 
switch($action){ 
case "start": include("start.php"); break; 
case "uns": include("uns.php"); break;
case "spielorte": include("spielorte.php"); break;
case "bilder": include("bilder.php"); break;
case "media": include("media.php"); break;
case "kontakt": include("kontakt.php"); break;
default: include("start.php"); break; 
} 
?>

Plz Help...
 
Wenn du den PHP-Code posten würdest, könnte man eher helfen...
Ich vermute jetzt mal, dein Code um die eMail zu senden, ist in der kontakt.php.
Wenn du nun dein Formular absendest, wird aber wieder die (durch die default:-Angabe in dem switch) start.php eingebunden und somit landest du, ohne dass etwas passiert, wieder auf der Startseite. Beheben kannst du das, indem du im Formular <form action="/test1.php" method="post"> , noch ?action=kontakt anhängst. Also:
<form action="/test1.php?action=kontakt" method="post">
 
Abend, Danke Dir. Geht soweit.

So sieht der Code aus :

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Soll ich den einfach ersetzen durch deinen ?

Wenn ich die mail gesendet habe, da steht dann "zurück" dann kommt wieder die Start Datei ...

Achja hier ist mal der Coe von der kontakt.php , hab ich wiegesagt selber versucht zu ändern...

<?php

// *** Deine Mailadresse (Empfänger) ***
$mail_to="xkoy@gmx.at";
// *************************************

$from_name=$_POST['name'];
$from_mail=strtolower($_POST['mail']);
$mail_text=$_POST['text'];
$send=$_POST['s'];

if(trim($from_name)=="") $err_text.="Bitte gib Deinen Namen an.<br>";
if(trim($from_mail)=="")
$err_text.="Bitte gib 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 gib eine gültige E-Mail-Adresse an.<br>";
if(trim($mail_text)=="") $err_text.="Bitte gib 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><big><b>Fehler:</b></big><br>";
echo "$err_text</p>";
}

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

<div style="width:410px;margin:0px auto;">
<form action="<?php echo $_SERVER['kontakt.php']; ?>" method="post">

<div style="height:35px;width:150px;float:left;text-align:left;">Name:*</div><div style="height:35px;width:400px;text-align:left;"><input type="name" name="name" value="<?php echo $from_name; ?>"></div>

<div style="height:35px;width:150px;float:left;text-align:left;">Wohnort:</div><div style="height:35px;width:400px;text-align:left;"><input type="wohnort" name="wohnort" value="<?php echo $from_wohnort; ?>"></div>

<div style="height:35px;width:150px;float:left;text-align:left;">Telefon:</div><div style="height:35px;width:400px;text-align:left;"><input type="tel" name="tel" value="<?php echo $from_tel; ?>"></div>

<div style="height:35px;width:150px;float:left;text-align:left;">E-Mail:*</div><div style="height:35px;width:400px;text-align:left;"><input type="mail" name="mail" value="<?php echo $from_mail; ?>"></div>

<div style="height:110px;width:150px;float:left;text-align:left;">Text:*</div><div style="height:110px;width:400px;text-align:left;"><textarea name="text" cols="24" rows="5"><?php echo $mail_text; ?></textarea>
</div>

<div style="height:35px;width:150px;float:left;text-align:left;"></div>
<div style="height:35px;width:400px;text-align:left;">
<input type="hidden" value="1" name="s">
<input type="submit" name="Button" value="Abschicken"></div>
</form>
</div>




<?php
} else {
$header="From: $from_name <$from_mail>\n";
$header.="Reply-To: $from_mail\n";
$header.="X-Mailer: PHP-FormMailer (www.gaijin.at)\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>Deine E-Mail wurde abgesendet.</b></p>";
echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
}else{
echo "<p><b>Beim Versenden der E-Mail ist ein Fehler aufgetreten!</b></p>";
echo "<p><a href=\"".$_SERVER['PHP_SELF']."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
?>
 
Nachdem die eMail gesendet wurde, kommt ein Link "zurück zum Formular", der einen aber auf die Startseite befördert. Ist an der Stelle genau das Gleiche, der Zusatz &action=kontakt fehlt einfach! Aber unabhängig davon gibt es ja garkeinen Grund wieder zum Formular zurückzuwechseln, nachdem die Mail erfolgreich gesendet wurde. Was wolltest du denn erreichen ?

MfG
 
Ja verstehe,

also da steht ja "zurück zum Formular" !

Also wäre es Sinnvoll , wenn man da drauf klickt, das man wieder zum Kontakt.php kommt, also zum Formular !

Und dann hab ich gemerkt, das WOHNORT und TELEFON nicht mit übertragen wurden, das sind auch die, die ich nachträglich "reingebastelt" habe.. kenn mich da leider zu wenig aus...

Danke !!
 
Zuletzt bearbeitet:
Zurück