Fehler in PHP-Script - Kontaktforumular

  • #1
P

Pallas2k6

Mitglied
Themenersteller
Dabei seit
27.08.2006
Beiträge
5
Reaktionspunkte
0
Hi,
brauche Hilfe bei einem Kontaktformular!

<?php
require_once( functions.php );
global $user,$db,$conf, $username;
if( $username !='' )
{
$result = mysql_query( SELECT * FROM ypg_members WHERE user_name='$username' ) or poperror( mysql_error() );
$user = mysql_fetch_array( $result );
}
if(isset ($action) && $action=='send')
{
if($name =='') poperror(Tragen Sie bitte Ihren Nachnamen ein!);
if($vorname =='') poperror(Tragen Sie bitte Ihren Vornamen ein!);
if($senderemail =='') poperror(Tragen Sie bitte Ihre E-Mail-Adresse ein!);
if($message =='') poperror(Das Feld Ihre Nachricht ist leer!);
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]
{2,4}$, $senderemail ) ) error( Sorry! Diese E-Mail-Adresse ist ungültig );

----- Fehler müsste ab hier sein:

$recipient = [email protected];
$subject = Anfrage;
$mailheaders = From: <$senderemail> \n;
$mailheaders .= Reply-To: <$senderemail>\n\n;
$msg .= Nachname: $name\n;
$msg .= Vorname: $vorname\n;
$msg .= \n;
$msg .= $strasse\n;
$msg .= $plz ;
$msg .= $ort\n;
$msg .= \n;
$msg .= -----------------------------------\n;
$msg .= $homepageurl\n;
$msg .= $senderemail\n;
$msg .= -----------------------------------\n;
$msg .= Nachricht: $message\n;
$msg .= -----------------------------------\n;
mail($recipient, $subject, $msg, $mailheaders) or die (Ihre Nachricht konnte leider nicht versandt werden!);

---- Ab hier sollte auch wieder alles OK sein ---------------------------
----Anmerkung: Ursprünglich sollte so das Mail versendet werden, jedoch reichen mir die Infos nicht aus.

$subject=Anfrage von $name via $con[inName];
mail($conf['inMail'],$subject,$message,From: .$sendermail);



------------------Ende-----------------------------------


include(kopf.php);
include (./temp/$conf[TemplateSet]/kontakt-ok.htm);
include(fuss.php);
}

if(!isset ($action))
{
include(kopf.php);
include (./temp/kontakt.htm);
include(fuss.php);
}
?>

Cu Pallas :|
 
  • #2
Code:
<?php
----- Fehler müsste ab hier sein:

$recipient = [email protected];
$subject = Anfrage;
$mailheaders = From: <$senderemail> \n;
$mailheaders .= Reply-To: <$senderemail>\n\n;
$msg .= Nachname: $name\n;
$msg .= Vorname: $vorname\n;
$msg .= \n;
$msg .= $strasse\n;
$msg .= $plz ;
$msg .= $ort\n;
$msg .= \n;
$msg .= -----------------------------------\n;
$msg .= $homepageurl\n;
$msg .= $senderemail\n;
$msg .= -----------------------------------\n;
$msg .= Nachricht: $message\n;
$msg .= -----------------------------------\n;
mail($recipient, $subject, $msg, $mailheaders) or die (Ihre Nachricht konnte leider nicht versandt werden!);

---- Ab hier sollte auch wieder alles OK sein ---------------------------
?>

Nö, der Teil ist in Ordnung, habs getestet ;)

Was passiert denn überhaupt (oder nicht) bissle dürftig deine Beschreibung ;)

Fehlermeldung / Warning ?? ??? ??

Edit:

Werden die Daten per Formular übergeben und REGISTER_GLOBALS ist in der PHP.INI auf OFF gestellt, solltest du deine Variablen aber mit $_POST, $_GET oder $_REQUEST ansprechen ;)

Ist aber nur ma so ins Blaue geraten ;)
 
  • #3
Die PHP-Seite ist für den Mailversand und das öffnen einer HTML-Seite
verantwortlich.
Leider bindet die PHP-Datei die HTML-Datei nicht ein und es kommt ein leeres
weißes Fenster.
Dafür ist die Änderung im Mailbereich verantwortlich.

Dieser Kleine Abschnitt war früher für den Mailversand verantwortlich, doch
da gab es nur ein Feld Name, Nachricht und E-Mail. Das ist mir viel zu wenig - Daher die Änderungen, doch seither geht nur eine weiße leere Internetseite auf und das war's. Ich hoffe jemand erkennt mein Problem

$subject=Anfrage von $name via $con[inName];
mail($conf['inMail'],$subject,$message,From: .$sendermail);
 
  • #4
OK, also nochma langsam zum mitschreiben, der von dir erwähnte Teil zwischen:

----- Fehler müsste ab hier sein:
und
---- Ab hier sollte auch wieder alles OK sein ---------------------------

IST IN ORDNUNG

kannst du aber ganz einfach selbst testen indem du nur den betreffenden Abschnit in eine Testdatei schreibst und die Variablen füllst.
Anschließend auf den Webserver hochladen und ausführen.
Du siehst zwar nur eine leere Seite, aber die Mail wird verschickt ;)

z.B.
Code:
<?php
function poperror($msg) {
	echo $msg;
	die;
}

$senderemail = [email protected];
$name = Testuser;
$vorname = VN Tester;
$strasse = Im Bach unten;
$plz = 12345;
$ort = Irgendwo;
$homepageurl = [url]http://www.test.de;[/url]
$message = Blos nen Tescht;

if($name =='') poperror(Tragen Sie bitte Ihren Nachnamen ein!);
if($vorname =='') poperror(Tragen Sie bitte Ihren Vornamen ein!);
if($senderemail =='') poperror(Tragen Sie bitte Ihre E-Mail-Adresse ein!);
if($message =='') poperror(Das Feld Ihre Nachricht ist leer!);
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$, $senderemail ) ) poperror( Sorry! Diese E-Mail-Adresse ist ungültig );


$recipient = [email protected];
$subject = Anfrage;
$mailheaders = From: <$senderemail> \n;
$mailheaders .= Reply-To: <$senderemail>\n\n;
$msg .= Nachname: $name\n;
$msg .= Vorname: $vorname\n;
$msg .= \n;
$msg .= $strasse\n;
$msg .= $plz ;
$msg .= $ort\n;
$msg .= \n;
$msg .= -----------------------------------\n;
$msg .= $homepageurl\n;
$msg .= $senderemail\n;
$msg .= -----------------------------------\n;
$msg .= Nachricht: $message\n;
$msg .= -----------------------------------\n;
mail($recipient, $subject, $msg, $mailheaders) or die (Ihre Nachricht konnte leider nicht versandt werden!);
?>

Eins hab ich aber noch gefunden ;)
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$, $senderemail ) ) poperror( Sorry! Diese E-Mail-Adresse ist ungültig );

mehr kann ich nicht testen, da mir dazu die anderen Dateien bzw. die DB fehlt ;)

BTW, das macht irgendwo keinen Sinn ;)
Code:
<?php
if($message =='') poperror(Das Feld Ihre Nachricht ist leer!);
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$, $senderemail ) ) poperror( Sorry! Diese E-Mail-Adresse ist ungültig );
?>
 
  • #5
Nun habe ich einen Fehlermeldung. Der Feher soll in der Zeile:
Parse error: parse error, unexpected T_STRING in /home/www/htdocs/xx.de/test/kontaktform.php on line 50

Zeile 50 ist:
mail($recipient, $subject, $msg, $mailheaders) or die (Ihre Nachricht konnte leider nicht versandt werden!);

Das ist das komplette SCRIPT:
Alle Links zu Dateien und Pfade sind OK!

<?php
require_once( ad/functions.php );
global $user,$db,$conf, $username;
if( $username !='' )
{
$result = mysql_query( SELECT * FROM ypg_members WHERE user_name='$username' ) or poperror( mysql_error() );
$user = mysql_fetch_array( $result );
}
if(isset ($action) && $action=='send')
{
function poperror($msg) {
echo $msg;
die;
}
$senderemail = [email protected];
$name = Testuser;
$vorname = VN Tester;
$strasse = Im Bach unten;
$plz = 12345;
$ort = Irgendwo;
$homepageurl =
$message = Blos nen Tescht;

if($name =='') poperror(Tragen Sie bitte Ihren Nachnamen ein!);
if($vorname =='') poperror(Tragen Sie bitte Ihren Vornamen ein!);
if($senderemail =='') poperror(Tragen Sie bitte Ihre E-Mail-Adresse ein!);
if($message =='') poperror(Das Feld Ihre Nachricht ist leer!);
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$, $senderemail ) ) poperror( Sorry! Diese E-Mail-Adresse ist ungültig );


$recipient = [email protected];
$subject = Anfrage;
$mailheaders = From: <$senderemail> \n;
$mailheaders .= Reply-To: <$senderemail>\n\n;
$msg .= Nachname: $name\n;
$msg .= Vorname: $vorname\n;
$msg .= \n;
$msg .= $strasse\n;
$msg .= $plz ;
$msg .= $ort\n;
$msg .= \n;
$msg .= -----------------------------------\n;
$msg .= $homepageurl\n;
$msg .= $senderemail\n;
$msg .= -----------------------------------\n;
$msg .= Nachricht: $message\n;
$msg .= -----------------------------------\n;
$msg .= \n;
mail($recipient, $subject, $msg, $mailheaders) or die (Ihre Nachricht konnte leider nicht versandt werden!);





include(head.php);
include (./dat/$conf[TemplateSet]/kontaktform-send.htm);
include(fuss.php);
}

if(!isset ($action))
{
include(head.php);
include (./dat/kontaktform.htm);
include(fuss.php);
}
?>


--------------------------
CU Pallas
 
  • #6
Versuch es doch bitte mal OHNE diesen ganzen INCLUDE-Mist ;)

Ich kann mich nur wiederholen, bei mir FUNKTIONIERT es ;)

Und denk daran, das:
Code:
elseif ( !eregi( ^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$, $senderemail ) ) poperror( Sorry! Diese E-Mail-Adresse ist ungültig );

ist EINE ZEILE ;)

(Wobei es normalerweise Wurscht ist, bei JS wäre es Fatal ;))
 
  • #7
SORRY! Den include-Mist brauche ich ja gerade, sonst geht die Internetseite für das Formular nicht an der richtigen Stelle auf.
Die ganze Seite besteht aus mehreren Dateien!

Die Interseite besteht aus mehreren Bereichen
die alle miteinander und der Datenbank kommunizieren!
--------------------------------------------
| Kopf |
--------------------------------------------
| | |
| Links | Kontaktforumlar |
| | & andere Seiten hier |
--------------------------------------------
| Fuß |
-------------------------------------------

Ich hoffe nun ist mein Problem klar,
daher brauche ich eine Lösung.

CU Pallas
 
  • #8
Pallas2k6 schrieb:
SORRY! Den include-Mist brauche ich ja gerade,

Nein, brauchst du zum testen nicht ;)

Mach doch einfach das was ich geschrieben habe.

Testdatei anlegen und ausführen, dann siehst du das der Mailversand funktioniert.
Ergo muss es an einer der Include-Dateien liegen.

BTW, man kann Stück für Stück testen, oder (so wie du) alles auf einmal.
Testest du alles auf einmal, kann der Fehler überall sein.
Wenn du es Stücklesweise machst, ist es viel einfacher.

z.B.
Alle Includes auskommentieren, so das nur der Mailversand übrig bleibt und testen.
Dannach ein Include nach dem anderen wieder aktivieren und testen.
Irgendwann wird dann ein Fehler auftauchen, und schon weißt du woran es hängt.
Im Prinzip ganz einfach, Oder ?!?!

Tipp, es muss vor Zeile 50 sein ;)
 
Thema:

Fehler in PHP-Script - Kontaktforumular

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben