BrokenBrain: Variablen richtig an PHP weitergeben

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:

  • 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".
  • diese und noch andere variablen sollen nun an eine php datei übergeben werden
  • der php script soll nun dafür sorgen, dass er eine email abgeschickt wird, wobei der text, die email-adresse etc. aus den übergebenen variablen ausgelesen wird

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

  1. 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

    --
    Verantwortlich für Falschaussagen ist ausschließlich mein Gehirn. Hinweise auf solche gebe ich ihm aber gerne weiter.
    Let's close our eyes and see what happens.
    http://dogfish.net.tc/
    1. 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

  2. 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

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. 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

      1. 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