PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Formular - Felder hinzufügen (http://www.selfphp.de/forum/showthread.php?t=22395)

williwiberg 12.11.2009 10:20:10

Formular - Felder hinzufügen
 
Hallo,
da ich wenig Ahnung von PHP habe, bitte ich euch hier um Hilfe.
Und zwar möchte ich ein Formular erstellen, in dem man seine Adresse angeben kann, die dann an mich per Email gesendet wird.

Ich habe bis jetzt ein funktionierendes Formular, aber ich weiß nicht wie ich jetzt weitere Felder (Vorname/Nachname/Straße/Hausnr./PLZ/Ort/Telefon/Email) hinzufügen kann, damit diese Daten an mich gesendet werden.

Hier ist der Code:
PHP-Code:

<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Ihre E-Mail-Adresse: <input type="text" name="Mail"><br>
Ihre Nachricht:<br>
<textarea name="botschaft" cols="50" rows="5">
</textarea><br>
<input type="submit" value="Mail abschicken">
</form>
<?php
if (isset($_POST['Mail']) && $_POST['Mail'] != "") {
 if(
mail("meine@email.de""Sie haben Post!"$_POST['botschaft'], "From: $_POST[Mail]")) {
    echo 
"<p>Danke! Ihre Botschaft wurde weitergeleitet!</p>\n";
  } else {
    echo 
"<p>Leider gab es einen Sendefehler!</p>\n";
  }
}
?> 
</body>

Danke schon mal :)

cortex 12.11.2009 10:32:59

AW: Formular - Felder hinzufügen
 
Zitat:

Zitat von williwiberg (Beitrag 132146)
aber ich weiß nicht wie ich jetzt weitere Felder [...] hinzufügen kann

ich sehe ehrlich gesagt nicht, wo das problem liegt. sollte an am HTML liegen: Formulare. sollte es an der serverseitigen verarbeitung liegen: Formulare. letzteres tutorial (und weitere empfehlenswerte) sind unter punkt D unserer forenregeln verlinkt.

cx

CPA 13.11.2009 16:01:17

AW: Formular - Felder hinzufügen
 
Hier mal dein gepostetes Formular mit zwei zusätzlichen Feldern (Vorname, Nachname).
Wenn du es dir genau anschaust, dann wirst sicherlich sehen wie einfach das Formular um weitere Felder erweitert werden kann.


PHP-Code:

<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Ihre E-Mail-Adresse: <input type="text" name="Mail"><br>

Ihr Vorname: <input type="text" name="firstname"><br>
Ihr Name: <input type="text" name="name"><br>

Ihre Nachricht:<br>
<textarea name="botschaft" cols="50" rows="5"></textarea><br>
<input type="submit" value="Mail abschicken">
</form>
<?php
if (isset($_POST['Mail']) && $_POST['Mail'] != "") {
    
/* Hier wird der Inhalt der Mail zusammengesetzt
    *  Die drei Felder "vorname", "name" und "botschaft"
    *  werden hier in der Variable "$MailInhalt" vereint
    */
    
$MailInhalt 'Vorname: '.$_POST['firstname'].'\n'.
                  
'Nachname: '.$_POST['name'].'\n\n'.
                  
'Nachricht:\n'.$_POST['botschaft'];
    
// Statt $_POST['botschaft'] wird hier nun der zuvor zusammengesetzte Mail-Inhalt übergeben.
    
if(mail("meine@email.de""Sie haben Post!"$MailInhalt"From: $_POST[Mail]")) {
        echo 
"<p>Danke! Ihre Botschaft wurde weitergeleitet!</p>\n";
    } else {
        echo 
"<p>Leider gab es einen Sendefehler!</p>\n";
    }
}
?> 
</body>


cortex 13.11.2009 16:30:33

AW: Formular - Felder hinzufügen
 
prima... dann mögen aber auch noch folgende hinweise erlaubt sein:

- $_SERVER[ 'PHP_SELF' ] ist unsicher, da manipulierbar - besser $_SERVER[ 'SCRIPT_NAME' ]
- die daten aus $_POST sollten unbedingt validiert werden

cx

R4Zz0R 15.11.2009 10:24:39

AW: Formular - Felder hinzufügen
 
inwiefern manipulierbar... ?^^

Abgesehen davon das alle eingaben von benutzern als unsicher angesehen werden sollten,
verstehe ich nich wo da der große unterschied liegen sollte.

Bzw. wie man auser das man die seite lokal speichert und dort dann die angben zum fomular verändert schaffen könnte die von php übergebenen daten zu manipulieren.

Aufklärung pls..

MFG R4Zz0R

vt1816 15.11.2009 11:04:53

AW: Formular - Felder hinzufügen
 
Zitat:

Zitat von R4Zz0R (Beitrag 132219)
[...]

Aufklärung pls..

MFG R4Zz0R

Zitat:

PHP-Entwickler nutzen aus Bequemlichkeit oft die Variable $_SERVER['PHP_SELF'] um in Formularen die aktuelle Adresse in das Form-Tag schreiben zu lassen. In nahezu jeder dynamischen Webseite werden Formulare verwendet, beispielsweise in einem Gästebuch, Board, Shopsystem oder auch nur in einem Kontaktformular. Die Verwendung von $_SERVER['PHP_SELF'] birgt jedoch eine Gefahr von XSS in sich.

Der folgende Code stellt ein typisches Beispiel dar.

PHP-Code:

<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">

Nehmen wir an hierbei handelt es sich um ein Kontaktformular welches per http://host/contact.php zu erreichen ist. PHP würde nun automatisch "contact.php" in das Form-Tag schreiben. Was aber passiert, wenn man die URL manipuliert?

In diesem Beispiel wird ein simples Javascript, welches eine Alert Box aufruft, in die Seite eingeschleust. Dazu genügt es den Code an das Ende der URL zu hängen. Würde diese Seite nun über einen Link per folgender URL aufgerufen werden: http://host/contact.php/"><script>alert('XSS')</script><form="

erzeugt PHP folgende Ausgabe:

PHP-Code:

<form action="contact.php/"><script>alert('XSS')</script><form="" method="post"> 

Somit würde der Scriptcode zur Ausführung kommen. Möglich wird dies, da die aktuelle Adresse des Scripts ungefiltert ausgegeben wird. Es findet nirgendwo eine Überprüfung der Validität der übergebenen Adresse statt. Durch dass neu entstandene zweite Form-Tag werden zusätzlich Code-Teile, die nun nicht mehr richtig Dargestellt werden würden, ausgeblendet. Der ahnungslose Besucher bekommt von all dem nichts mit.


Doch hier verbirgt sich noch eine weitere Gefahr. Das Umleiten eines Logins. Dadurch das hier direkt das Form Tag verändert wird, ist es sehr einfach möglich sich ein eigenes Form Tag zu erstellen. Dieses würde nach dem originalen angezeigt werden, mit der Folge, dass das originale durch den Browser ignoriert wird. Damit kann ein Angreifer, durch einen User angegebene Login-Daten, zu sich weiterleiten. Dies könnte z.B. bei Onlinebanking fatale Folgen haben.
Google hat wohl heute frei? ;-)

R4Zz0R 15.11.2009 11:14:57

AW: Formular - Felder hinzufügen
 
Zitat:

Zitat von vt1816 (Beitrag 132221)
Google hat wohl heute frei? ;-)

Nein xD

Ich bin nur leider nicht zuhause und nicht an meinem rechner deswegen schaue ich nur mal schnell vorbei und informire mich. Danke aber für die information xD

vt1816 15.11.2009 11:24:30

AW: Formular - Felder hinzufügen
 
Zitat:

Zitat von R4Zz0R (Beitrag 132222)
[...]
Ich bin nur leider nicht zuhause und nicht an meinem rechner ...

Was hat das eine mit dem anderen zu tun?


Zitat:

Zitat von R4Zz0R (Beitrag 132222)
[...]
schaue ich nur mal schnell vorbei und informire mich ...

Was, hat die Zeit nicht gereicht um beim großen Bruder vorbei zu schauen? Die Zeit die Du für das Posting und die Antwort benötigt hast, hätte gereicht um auch noch bei Dolly B. vorbei zu schaun. ;-)


Zitat:

Zitat von R4Zz0R (Beitrag 132222)
[...]
Danke aber für die information xD

Bitte.

R4Zz0R 15.11.2009 11:29:18

AW: Formular - Felder hinzufügen
 
xD

Wir schweifen vom thema ab xD

Aber da ich nebenher noch ein wenig zu tun habe un mir nur bei kleinen pausen erlaube im forum nachzuhaken und ich nicht auf sofortige antwort aus bin reicht das gelegentliche schauen und anworten xD

DokuLeseHemmung 15.11.2009 13:59:39

AW: Formular - Felder hinzufügen
 
Nur, damit ich es richtig verstehe...

Du fragst also nicht weil du irgendwas nicht selber heraus finden kannst, sondern weil du zu faul dazu, oder zu gierig bist.
Frei nach dem Motto:
Zitat:

Schön, dass du mir hilfst, dann kann ich ja noch dreister werden.
Danke!


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:24:08 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.