PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler in PHP-Script - Kontaktforumular



Pallas
27-08-2006, 21:35
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&uuml;ltig" );

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

$recipient = "x@x.de";
$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 :(

Romanday
28-08-2006, 07:02
----Anmerkung: Ursprünglich sollte so das Mail versendet werden, jedoch reichen mir die Infos nicht aus.

Cu Pallas :(

Es heißt: Das Kind die eMail.

Wie lautet den die Fehlermeldung?
Ich weiß nicht was Du möchtest.
Was fehlt dir?

Pallas
29-08-2006, 00:11
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);

nEox
29-08-2006, 11:36
Eine leere weiße Seite kann bedeuten, dass ein Fehler auftritt, dieser allerdings wegen abgeschalteter Fehlerausgabe nicht angezeigt wird.

Folgende zwei Zeilen kannst du ganz oben in dein Skript einfügen, damit die Fehlerausgabe aktiviert wird.


ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);


Grüße,
nEox

Pallas
29-08-2006, 14:00
Sorry! Eine Fehlermeldung kommt trotz dem Befehl oben nicht.
Die Seite bleibt weiß und ich stehe im "Regen" weil ich nicht weis wieso!

Das war die Datei vorher:
<?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&uuml;ltig" );

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

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");
}
?>
------------------------------------
Da mir jedoch die E-Mail-Angaben nicht gereicht haben, ist das ganze Problem wohl erst entstanden. Doch wie bekomme ich meinen ganzen Felder da unter?
CU Pallas

coolpix
29-08-2006, 23:36
Ich weiss nicht wo dein Problem liegt, aber dein Code ist nicht sehr verständlich. Benutz mal
-bbTags um Syntax Highlighting für deinen Code zu aktivieren.

mfG

//Edit: Trotzdem ist mir dies hier aufgefallen:

[PHP]mail($recipient, $subject, $msg, $mailheaders) or die ("Ihre Nachricht konnte leider nicht versandt werden!");

Ich denke das die E-Mail nicht abgesendet wird, und deshalb hier abgebrochen wird. Aber warum keine Fehlermeldung erscheint ist mir auch unklar.

Pallas
30-08-2006, 15:58
Hi,

danke an alle, habe das Problem lösen können.

Cu Pallas

coolpix
30-08-2006, 16:33
Und woran lag es? ...