selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

php

Autor: safiro
Datum: 01.03.2005 15:32:07

hi,
ich hab ein php skript in meiner kontakt-page installiert,mitdem kann man mir ein message schreiben und wird automatich zu meinem mail weitergeleitet,aber manchamal die message wird nicht zu mir gesendet und manchmal klappt,
weisst jemand woran kann das problem liegen?



Re: php

Autor: Blade
Datum: 01.03.2005 15:46:19

Hallo Safiro,

an Deinem Deutsch solltest Du noch etwas arbeiten. ;)

> weisst jemand woran kann das problem liegen?

Nein, das kann Dir so niemand sagen. Poste doch mal den Quellcode.



Re: php

Autor: safiro
Datum: 01.03.2005 16:05:28

Blade, ich bemühe mich meine Deutsche Sprache zu verbessern, aber sie ist keine leichte Sprache! glaub mir .
Danke erstmal , un das ist den Quellcode:


(((( Datei Name: contact.php))))

<body text='$HTTP_POST_VARS[textcolor]' bgcolor='$HTTP_POST_VARS[bgcolor]' link='#000000' alink='#000000' vlink='#000000'>
$HTTP_POST_VARS[Head]


<table align='center' bordercolor='#ffffff' width='480' style='border-right:0px solid;border-left:0px solid;border-top:1px solid'>
<tr>
<td>
<p><br>
</td>
<td>
</td>
<td>
</td>
</tr>
<form action='send.php' method='post'>
<tr>
<td width='80'>
</td>
<td width='150'>
<font face='verdana' size='2'> Name:
</td>
<td>
   <input name='autor' type='text' size='20' value=''><br></font>
   </td>
</tr>
<tr>
<td width='50'>
</td>
<td>
<font face='verdana' size='2'>Subject:
</td>
<td>
   <input name='betreff' type='text' size='20' value=''><br></font>
   </td>
</tr>
<tr>
<td width='50'>
</td>
<td>
<font face='verdana' size='2'>E-Mail Adresse:
</td>
<td>
   <input name='mail' type='text' size='20' value=''><br></font>
   </td>
</tr>
</table>
<table align='center' bordercolor='#ffffff' width='480' style='border-right:0px solid;border-left:0px solid;border-bottom:0px solid'>
  <tr>
<td align='center'>
<font face='verdana' size='2'>
   <br>Your message:<br><textarea name='Nachricht' rows=7 cols=40 wrap='virtual'></textarea><br><br>
   <input type='submit' value='Send'><p>
   </form>
</font>
</td>
</tr>
</table>


_________________________________________________

(((((Datei Name: send.php  )))))

<?
include("config.inc.php");

// hier kommt der body
echo "<body text='$HTTP_POST_VARS[textcolor]' bgcolor='$HTTP_POST_VARS[bgcolor]'>";

// Zusammenfügen der Einzelteile zu einer Mail
$HTTP_POST_VARS[text] = "$HTTP_POST_VARS[autor] mit der Mail Adresse: $HTTP_POST_VARS[mail] hat ihnen folgende Nachricht gesendet: \n $HTTP_POST_VARS[betreff] \n \n $HTTP_POST_VARS[Nachricht]";

//jetzt wird geprüft ob Mail, Name oder Betreff vielleicht zu lang sind
$HTTP_POST_VARS[lengthm]= strlen($HTTP_POST_VARS[mail]);
$HTTP_POST_VARS[lengtha] = strlen($HTTP_POST_VARS[autor]);
$HTTP_POST_VARS[lengthb] = strlen($HTTP_POST_VARS[betreff]);
if ($HTTP_POST_VARS[lengthm] > "80") {
echo "The mail adresse is lang!"; die; }
else { echo " Mail Adresse is ok<br>"; }
if ($HTTP_POST_VARS[lengtha] > "50") {
echo "The name is lang!"; die; }
else { echo "The  Name is ok<br>"; }
if ($HTTP_POST_VARS[lengthb] > "150") {
echo "The subject is lang!"; die; }
else { echo "The subject is ok<br>"; }
//Hier wird geprüft ob die Mail Adresse gültig ist und ob in Name, Betreff und Nachricht überhaupt Text ist.
if (strpos($HTTP_POST_VARS[mail], "@") > -1 ){
echo "Mail Adresse is ok<br>"; }
else {
echo "Your mail is unavailable!<br>";
die;
}
if ($HTTP_POST_VARS[autor] == "") {
echo "Please write your name!<br>";
die;
}
else {
echo "Name is ok<br>";
}
if ($HTTP_POST_VARS[betreff] == "") {
echo "Please write your subject!<br>";
die;
}
else {
echo "Subject is ok<br>";
}
if ($HTTP_POST_VARS[Nachricht] == "") {
echo "Please write your message/comment!<br>";
die;
}
else {
echo "Message is ok<br>";
}
//und ab dafür
if (@mail($HTTP_POST_VARS[Adresse], $HTTP_POST_VARS[betreff], $HTTP_POST_VARS[text], "From: \"$HTTP_POST_VARS[autor]\" <$HTTP_POST_VARS[mail]>"))
{
echo "<div align='center'><h3>Thank you</h3></div>";
}
else
{
echo "<div align='center'><h3>Error! message didnt send</h3></div>";
}
?>

_______________________________________________________

(((((Datei Name: config.inc.php)))))

<body style="background-image: url('bg.jpg'); background-attachment: fixed">
<font color=white>

<?
$HTTP_POST_VARS[Adresse] = "safiro@hotmail.com";


$HTTP_POST_VARS[Head] = "<div align='center'><br><h3>Send me a short message</h3></div>";


$HTTP_POST_VARS[bgcolor] = "#0000cd";
// Und hier die Textfarbe:
$HTTP_POST_VARS[textcolor] = "#ffffff";
?>



Re: php

Autor: Blade
Datum: 02.03.2005 11:40:50

> Blade, ich bemühe mich meine Deutsche Sprache zu
> verbessern, aber sie ist keine leichte Sprache!
> glaub mir.

Selbstverständlich glaube ich Dir das. Aber wenn niemand einem auf die Eigenen Fehler hinweist, dann lernt man es nie richtig. Ich stehe derzeit vor einem Ähnlichen Problem: Nachdem ich Jahrelang meine Sprache verschliffen habe (Ich sage z.B: "Tschuldigung", anstatt "Entschuldigung") muss ich mich jetzt wo ich Kinder habe wieder um eine Ordentliche Aussprache kümmern, weil sie es sonst falsch lernen.

> Danke erstmal , un das ist den Quellcode:

Ich habe ein paar Stellen entfernt um das hier lesbarer zu machen. Die Stellen die mir aufgefallen sind solltest Du dennoch leicht finden.
>
>
> (((( Datei Name: contact.php))))
>
> <body text='$HTTP_POST_VARS[textcolor]'
> bgcolor='$HTTP_POST_VARS[bgcolor]' link='#000000'
> alink='#000000' vlink='#000000'>
> $HTTP_POST_VARS[Head]
>
>
> <table align='center' bordercolor='#ffffff'
> width='480' style='border-right:0px
> solid;border-left:0px solid;border-top:1px
> solid'>
> <tr><td><p><br></td>
>     <td></td>
>     <td></td>
> </tr>
> <form action='send.php' method='post'>
> <tr><td width='80'></td>

Hier Definierst Du die Breite der Spalte mit 80 Pixeln. Da ist kein Fehler - nur ein Hinweis.

> <td width='150'><font face='verdana' size='2'> Name:
> </td>
> <td><input name='autor' type='text'
> size='20' value=''><br></font></td>
> </tr>
> <tr><td width='50'></td>

Hier definierst Du die gleiche Spalte mit einer Breite von 50 Pixeln - Der Browser wird diese Angabe wahrscheinlich ignorieren, weil Du die Spalte ja schon auf 80 Pixel definiert hast.

>    <td><font face='verdana' size='2'>Subject:</td>
>    <td><input name='betreff' type='text'
> size='20' value=''><br></font></td>
> </tr>
> <tr><td width='50'></td>

Hier definierst Du die 80 Pixel breite Spalte nochmal auf eine Breite von 50 Pixeln. Es reicht die Breite einer Spalte einmal zu definieren.

>     <td><font face='verdana' size='2'>E-Mail
> Adresse:</td>
>     <td><input name='mail' type='text'
> size='20' value=''><br></font></td>
> </tr>
> </table>
> <table align='center' bordercolor='#ffffff'
> width='480' style='border-right:0px
> solid;border-left:0px solid;border-bottom:0px
> solid'>
>   <tr><td align='center'><font face='verdana' size='2'>
>    <br>Your message:<br><textarea name='Nachricht' rows=7 cols=40 wrap='virtual'>



Re: php

Autor: Blade
Datum: 02.03.2005 11:57:53

Heee, wie gemein. Meine Antwort wurde abgeschnitten. :(

Also dann nochmal:

[...]
Die Regeln von HTML besagen, dass <a></a><b></b> und <a><b></b></a> richtig sind und <a><b></a></b> falsch ist.
Du hast hier: <table><form></table><table></form></table> geschrieben - das ist falsch und könnte die Ursache für Deine Probleme sein. Je nachdem mit welchem Browser man daran geht. Ändere es doch in <form><table></table><table></table></form>.

> _________________________________________________
>
> (((((Datei Name: send.php  )))))
>
> <?
> include("config.inc.php");
>
> // hier kommt der body
> echo "<body text='$HTTP_POST_VARS[textcolor]'
> bgcolor='$HTTP_POST_VARS[bgcolor]'>";
>
> // Zusammenfügen der Einzelteile zu einer Mail
> $HTTP_POST_VARS[text] = "$HTTP_POST_VARS[autor]
> mit der Mail Adresse: $HTTP_POST_VARS[mail] hat
> ihnen folgende Nachricht gesendet: \n
> $HTTP_POST_VARS[betreff] \n \n
> $HTTP_POST_VARS[Nachricht]";
>
> //jetzt wird geprüft ob Mail, Name oder Betreff
> vielleicht zu lang sind
> $HTTP_POST_VARS[lengthm]=
> strlen($HTTP_POST_VARS[mail]);
> $HTTP_POST_VARS[lengtha] =
> strlen($HTTP_POST_VARS[autor]);
> $HTTP_POST_VARS[lengthb] =
> strlen($HTTP_POST_VARS[betreff]);
> if ($HTTP_POST_VARS[lengthm] > "80") {
> echo "The mail adresse is lang!"; die; }
> else { echo " Mail Adresse is ok<br>"; }

"Adresse" heisst im Englischen "address". Und müsste es nicht "is too long" heissen?
Warum gibst Du auf einer Deutschen Webseite Englische Fehlermeldungen aus?

>[...]
> //und ab dafür
> if (@mail($HTTP_POST_VARS[Adresse],
> $HTTP_POST_VARS[betreff], $HTTP_POST_VARS[text],
> "From: \"$HTTP_POST_VARS[autor]\"
> <$HTTP_POST_VARS[mail]>"))

Ich verstehe nicht warum Du Deine Email-Adresse hier nicht Fest einbaust, sondern als Variable. Mir wäre es zu Riskant, nur so für den Fall, dass es einem Spammer gelingt die Variable neu zu setzten.

>[...]

Der Rest sieht Gut aus.



Re: php

Autor: safiro
Datum: 03.03.2005 00:27:09

Danke Blade!
aber hat nicht geklappt, vielleicht weil ich wenig Ahnung von php!

schön dann musst du auch für deine Sprache was machen und nicht nur ich!
das Problem bei mir dass ich mit den anderen Sprachen (Deutsch-English-Französisch) wechsele, bitte um verständnis :)

übrings, kannst du mir einen guten Skript für meine kontakt-page empfehlen! (PS: es muss nicht kompliziert sein)!

Danke nochmal .



Re: php

Autor: Blade
Datum: 03.03.2005 07:29:53

> Danke Blade!
> aber hat nicht geklappt, vielleicht weil ich
> wenig Ahnung von php!
>
Bekommst Du eine Fehlermeldung? Oder irgendetwas, dass einen Hinweis auf den Fehler liefert?
Wenn ich Dich richtig verstanden habe, dann funktioniert Dein Kontaktformular manchmal aber nicht immer - kannst Du das auch Nachstellen? Hängt es mit einem bestimmten Browser zusammen?



Re: php

Autor: Blade
Datum: 03.03.2005 10:40:34

> aber hat nicht geklappt, vielleicht weil ich
> wenig Ahnung von php!
Der Fehler lag nicht im PHP-, sondern im HTML-Teil.

> schön dann musst du auch für deine Sprache was
> machen und nicht nur ich!
> das Problem bei mir dass ich mit den anderen
> Sprachen (Deutsch-English-Französisch) wechsele,
> bitte um verständnis :)

Kein Problem. Ich habe ja die gleichen Probleme mit meinem Englisch.
>
> übrings, kannst du mir einen guten Skript für
> meine kontakt-page empfehlen! (PS: es muss nicht
> kompliziert sein)!

Das was Du hast sieht doch ganz gut aus. Ich hätte nur folgendes anders gemacht:
Du benutzt in Deiner send.php so etwas wie "$HTTP_POST_VARS[mail]". - Da hätte ich einfach "$mail" benutzt - denn nach dem Absenden eines Formulars sind die ganzen Werte in PHP in Variablen verfügbar. Ausserdem benutzt Du "die;" um aus deinem PHP-Schript auszusteigen - da hätte ich den Besucher eher zum Formular zurück geschickt. Aber das kannst Du später immer noch machen, wenn das hier erst mal läuft.

Demnach hätte eine send.php bei mir so ausgesehen:

------------- send.php ------------------

<?
$adresse = "safiro@hotmail.com";
$head = "<div align='center'><br><h3>Send me a short message</h3></div>";
$bgcolor = "#0000cd";
// Und hier die Textfarbe:
$textcolor = "#ffffff";

// hier kommt der body
echo "<body text='$textcolor' bgcolor='$bgcolor'>";

// Zusammenfügen der Einzelteile zu einer Mail
$text = $autor." mit der Mail Adresse: ".$mail." hat ihnen folgende Nachricht gesendet: \n ".$betreff."\n \n ".$Nachricht;

//jetzt wird geprüft ob Mail, Name oder Betreff vielleicht zu lang sind
$lengthm= strlen($mail);
$lengtha= strlen($autor);
$lengthb= strlen($betreff);

if ($lengthm > "80") {
echo "The mail address is too long!"; die; }
else { echo " Mail Addresse is ok<br>"; }

if ($lengtha > "50") {
echo "The name is too long!"; die; }
else { echo "The  Name is ok<br>"; }

if ($lengthb > "150") {
echo "The subject is too long!"; die; }
else { echo "The subject is ok<br>"; }

//Hier wird geprüft ob die Mail Adresse gültig ist und ob in Name, Betreff und Nachricht überhaupt Text ist.
//Ich habe Deine Prüfung gegen eine bessere ausgetauscht. Quelle: http://www.gutepage.net/workshop_show.php?cc=75
//Hier könnte übrigens der Fehler gelegen haben, weil Du mit der alten Verion auf ungültige Emailadressen akzeptiert hättest.
if(eregi("^[_.0-9a-z-]+@([0-9a-z-]+.)+[a-z]{2,4}$",$mail))
echo "Mail address is ok<br>"; }
else {
echo "Your mailaddress is wrong - please check it!<br>"; die; }

if ($autor == "") {
echo "Please write your name!<br>"; die;
} else {
echo "Name is ok<br>";
}

if ($betreff == "") {
echo "Please write your subject!<br>"; die;
} else {
echo "Subject is ok<br>";
}

if ($nachricht == "") {
echo "Please write your message/comment!<br>"; die;
} else {
echo "Message is ok<br>";
}

//und ab dafür
$from = "From: '".$autor."' <".$mail.">";
if (@mail($adresse, $betreff, $text, $from))
{ echo "<div align='center'><h3>Thank you</h3></div>";
} else {
echo "<div align='center'><h3>Error! message didnt send</h3></div>";
}
?>

_______________________________________________________

(((((Datei Name: config.inc.php)))))
Diese Datei brauchst Du nicht mehr ich habe Ihren Inhalt in die send.php übernommen.