Variablen richtig an PHP weitergeben
BrokenBrain
- javascript
0 Dogfish0 Tobias Kloth0 BrokenBrain0 wahsaga
Hallo allerseits!
Ich habe folgendes vor:
ich habe ein in einer HTML Seite ein Bewerbungsformular einebaut. Der User soll das Formular ausfüllen und dann auf den Button klicken um die Bewerbung abzuschicken. Nach dem Drücken des Buttons soll folgendes passieren:
Nun mein Problem:
Obwohl ich mehrere Variablen übergebe, liest der PHP Script nur eine wie es aussieht nur die erste Variable aus. Außerdem wird dann der Text ohne Zeilenümbrüche dargestellt (sowohl in der email als auch in PHP)
So sieht mein Code aus:
-JS:
function fightus()
{
var message;
var subject;
var to_email;
var from_email;
message="Clan: " +txt_name.value+ " (" +txt_short.value+ ")\n"
+"Leader: " +txt_leader.value+ "\n"
+"Homepage: " +txt_hp.value+ "\n"
+"Map: " +lst_map.options[lst_map.selectedIndex].text+ "\n"
+"Gametyp: " +lst_gametyp.options[lst_gametyp.selectedIndex].text+ "\n"
+"Datum: " +lst_wday.options[lst_wday.selectedIndex].text + ", " +lst_day.options[lst_day.selectedIndex].text+ "." +lst_month.options[lst_month.selectedIndex].text+ "\n"
+"Zeit: " +txt_h.value+ ":" +txt_min.value+ "\n"
+"E-Mail: " +txt_email.value+ "\n"
+"ICQ#: " +txt_icq.value;
subject="FightUs: " +txt_name.value+ " (" +txt_short.value+ ")";
to_email="brokenbrain@onlinehome.de";
from_email="Herausforderung!!!";
window.location.href = "PHP/email.php?message="+message+"&subject="+subject+"&to_email="+to_email+"&from_email="+from_email;
return
}
-PHP:
<?php
$message=$_GET['message'];
$subject=$_GET['subject'];
$to_email=$_GET['to_email'];
$from_email=$_GET['from_email'];
mail($to_email,$subject,$message,$from_email);
?>
Gruß
BrokenBrain
Hallo du da draußen,
Wieso bleibst du nicht in deinem alten Thread ([pref:t=53361&m=295469])?
An Sonsten: Probiere mal, deine übergebenen Strings zuerst mit encodeURIComponent() (http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#encode_uri_component) zu kodieren.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
Hallo Dogfish!
An Sonsten: Probiere mal, deine übergebenen Strings zuerst mit encodeURIComponent() (http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#encode_uri_component) zu kodieren.
Danke für deinen Tipp! werde ich gleich probieren.
Gruß
BrokenBrain
Hallo BrokenBrain,
- das Formular wird mit JavaScript ausgewertet, d.h. die Eingaben werden ausgelesen und in einen zusammenhängenden Text geschrieben und in einer Variable gespeichert. Dabei verwende ich das Zeichen für Umbruch "/n".
warum um Himmelswillen schickst du das Formular nicht einfach ab, und wertest die Angaben mit php aus? und was passiert, wenn der User kein js hat?
+"ICQ#: " +txt_icq.value;
ich weiß zwar nicht, für was das in einer Bewerbung gut ist, aber gut...
$to_email=$_GET['to_email'];
mail($to_email,$subject,$message,$from_email);
übergebe _nie_ die E-Mailadresse, an die php die Mail verschicken soll - sonst lässt sich dein Script wunderbar zum Spamen benutzen.
Grüße aus Nürnberg
Tobias
Hallo Tobias Kloth!
Ich bedanke mich für deine "hilfreiche" Antwort!
Hat mich wirklich weitergeholfen!
Lass mich mal überlegen was mir geholfen hat.................................................................
sorry ich sehe nur Gemecker!
ich werde trotzdem mal drauf eingehen:
warum um Himmelswillen schickst du das Formular nicht einfach ab, und wertest die Angaben mit php aus?
weil es für mich bequemer ist das Formular in JS auszuwerten! Vorallem weil ich mit PHP noch weniger Erfahrung hab als mit JS, genauso geht es auch meinem Kumpel der dann später den Script eventuell ändern will, und er hat gar keine Ahnung von PHP!!
JS finde ich eh viel praktischer!
und was passiert, wenn der User kein js hat?
dann hat er Pech gehabt!! Solche User haben auf meiner Seite eh nichts verloren! Sag mal ehrlich, wer verzichtet heutzutage auf JS?
Das sind wirklich Minderheiten und darauf will ich und kann ich nicht Rücksicht nehmen, vorallem weil nun fast jeder Browser JS unterstützt.
+"ICQ#: " +txt_icq.value;
ich weiß zwar nicht, für was das in einer Bewerbung gut ist, aber gut...
Das ist eine Bewerbung für einen Onlinegame-Clan, und bei Clans ist ICQ so gut wie Pflicht, falls du es nicht weißt!
$to_email=$_GET['to_email'];
mail($to_email,$subject,$message,$from_email);
übergebe _nie_ die E-Mailadresse, an die php die Mail verschicken soll - sonst lässt sich dein Script wunderbar zum Spamen benutzen.
Also dazu sag ich nur: das ist dann mein Problem!
Und jetzt nachdem ich auf deine Kommentare eingangen bin, würde ich gerne von dir eine vernünftige Antwort bekommen, falls du überhaupt einen Vorschlag hast.
Gruß
BrokenBrain
hi,
warum um Himmelswillen schickst du das Formular nicht einfach ab, und wertest die Angaben mit php aus?
weil es für mich bequemer ist das Formular in JS auszuwerten!
und wenn JS abgeschaltet ist?
dann bekommst du _ungeprüfte_ formulareingaben, die unvollständig sein können, an dein php-script übergeben - was macht dieses damit?
eine prüfung in php ist unerlässlich, wenn du sicher sein willst.
Vorallem weil ich mit PHP noch weniger Erfahrung hab als mit JS, genauso geht es auch meinem Kumpel der dann später den Script eventuell ändern will, und er hat gar keine Ahnung von PHP!!
JS finde ich eh viel praktischer!
php kann man lernen, wenn man will.
und was passiert, wenn der User kein js hat?
dann hat er Pech gehabt!! Solche User haben auf meiner Seite eh nichts verloren!
wie gesagt, wenn bei deinem php-script unvollständige eingaben ankommen, und dieses das nicht abprüft, dann bist eher du der jenige, der pech gehabt haben könnte.
übergebe _nie_ die E-Mailadresse, an die php die Mail verschicken soll - sonst lässt sich dein Script wunderbar zum Spamen benutzen.
Also dazu sag ich nur: das ist dann mein Problem!
das kann sehr schnell dazu führen, dass dein provider sich bei dir meldet, weil über _dein_ script abertausende spam-mails versendet wurden - die spammer sind sehr trickreich im auffinden solcher sicherheitslücken!
und mails versenden bedeutet traffic - und den zahlst dann im zweifelsfalle du, wenn ein spammer dein script ausnutzt.
gruss,
wahsaga