mc-doubleyou
Goto Top

PHP Kontakt

Hallo,

habe ein kleines Problemchen scheinbar ist mein Code falsch

<?php

// get posted data into local variables
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));   
$EmailTo = "xxx@gmail.com";  
$Subject = "Lockerz";  
$Body = "Neuanmeldung"  

// validation
$validationOK=true;
if (Trim($EmailFrom)=="") $validationOK=false;  
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";  
  exit;
}

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");  

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=thx.html\">";  
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=contact.html\">";  
}
?>

bekomme diese Meldung:


Parse error: syntax error, unexpected T_VARIABLE in /data/multiserv/users/101370/projects/443860/www/test/contact.php on line 10

LG MCD

Content-Key: 136096

Url: https://administrator.de/contentid/136096

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: tmystr
tmystr 16.02.2010 um 15:50:23 Uhr
Goto Top
hi,

ich kenne mich zwar nicht mit php aus..
aber wie soll das gehen wenn du bei zeile 10+11 den einen true und den anderen false gesetzt hast?

lg
Mitglied: maretz
maretz 16.02.2010 um 15:55:53 Uhr
Goto Top
Erstmal würde ich in Zeile 10 das ="true" schreiben. Und dann würd ich das ganze umbauen das
true=1
false=0
ist -> und mit Vergleichen aus Zahlen arbeiten. Hintergrund: Es ist immer schneller wenn man 2 Zahlen vergleicht als wenn ich 2 Worte vergleiche. Das hat was damit zu tun das man bei 2 Zahlen genau EINEN Cpu-Befehl benötigt (cjne - compare and jump not equal) bzw. das mit nem einfachen Subtrahieren erledigen kann (if 2-2=0). Bei Worten ist das etwas komplexer -> Du musst das Wort erst in nen Wert umrechnen und dann diesen Wert vergleichen...
Mitglied: ITLocke
ITLocke 16.02.2010 um 16:08:00 Uhr
Goto Top
Hallo

der Fehler liegt nicht in Zeile 10 sondern in Zeile 07!

Dort wurde nämlich das abschliessende Semikolon vergessen.

Gruß Locke
Mitglied: mc-doubleyou
mc-doubleyou 16.02.2010 um 16:24:24 Uhr
Goto Top
Oha, stimmt ^^ aber durch gehts mir trotzdem nicht hab offenbar irgendwas gemacht damit der success nicht passt
Mitglied: ITLocke
ITLocke 16.02.2010 um 16:32:31 Uhr
Goto Top
Probier mal

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

durch

$success = mail($EmailTo, $Subject, $Body, "From: <".$EmailFrom.">");
(--> ".." um $EmailFrom )
zu ersetzen. Manche Funktionen kommen mit dieser Art Variablen einzufügen nicht klar.
Mitglied: mc-doubleyou
mc-doubleyou 16.02.2010 um 16:47:55 Uhr
Goto Top
Der Fehler war so billig wie einfach - musste einen smtp eintragen bei dem Webhoster ... thx an alle
Mitglied: dog
dog 16.02.2010 um 17:05:34 Uhr
Goto Top
Wenn du fertig bist sag uns doch auch noch wo wir dein Script finden können, damit wir ein bisschen Spam verteilen können.

$_POST['EmailFrom'] = "test@example.com>\r\nTo: someone@example.com\r\nTo: me@exmaple.com\r\n\r\nMessage Body";  

Guten Morgen: http://www.damonkohler.com/2008/12/email-injection.html
Mitglied: mc-doubleyou
mc-doubleyou 16.02.2010 um 17:13:35 Uhr
Goto Top
Und was it wenn ich ein Ergebnis in der Art will?

$Body = "Neuanmeldung von: ( $_POST[ "EmailFrom" ] );  

wie muss dann der wirkliche Code aussehen?

LG
Mitglied: maretz
maretz 16.02.2010 um 22:58:13 Uhr
Goto Top
Och - das war jetzt gemein... Du gönnst aber auch gar keinen Spass ;) Und der Mailserver muss sich nur wegen dir jetzt langweilen!
Mitglied: mc-doubleyou
mc-doubleyou 16.02.2010 um 23:02:02 Uhr
Goto Top
wie meinst du das dog? ... kapier echt grad nicht was mir diese Zeile bringen soll
Mitglied: maretz
maretz 17.02.2010 um 07:38:57 Uhr
Goto Top
Die Zeile bringt das man einfach noch viele andere Empfänger mit vielen anderen Texten über dein Script erreichen kann... So schicke ich DIR zwar dann nen Kontakt-Formular, schicke aber an 10.000 andere Leute (ok, so lang wird der String nich gehen aber das ist nur ne frage wie ich das automatisiere) ne nette Werbung über Viagra, Software oder was sonst grad so aktuell ist. Und das ganze geht schön über deinen Server - d.h. die Leute stehen dann bei DIR auf der Matte und wollen dir was auf die Finger hauen ...
Mitglied: mc-doubleyou
mc-doubleyou 17.02.2010 um 07:53:09 Uhr
Goto Top
und warum genau sollte ich die dann einbauen wollen? *grübel*
Mitglied: dog
dog 17.02.2010 um 07:56:40 Uhr
Goto Top
Wir stehen aber echt grade ein bisschen auf dem Schlauch oder?

Die Zeile war ein Beispiel für einen möglichen POST-Input.
Lies dir doch bitte mal den Link durch.
Mitglied: mc-doubleyou
mc-doubleyou 17.02.2010 um 08:21:35 Uhr
Goto Top
ok jetzt hab ichs, ja stand am schlauch - danke

muss also sowas in der art nachrüsten

SecFilterSelective ARGS_VALUES "\n[[:space:]]*(to|bcc|cc)[[:space:]]*:.*@"  

sobald man aber mein Script missbräuchlich verwendet sehe ich das da ich genau diese eine Zeile in der Mail stehen habe, mir geht es schließlich nur um die E-Mail des Absenders

Am besten wäre aber dennoch eine generelle vermeidung von cc: und bcc: also if : in EmailFrom Error

Keine Ahnung aber wie man das bwerkstelligen kann