Forum Doku Wiki Blog

Forumsarchiv 2006, August
bitte um "Formular Code Überprüfung"

archivierte Beiträge lesen

  1. (PHP) bitte um "Formular Code Überprüfung" von Tanja, 14. 08. 2006, 20:02

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 14. 08. 2006, 20:02 Uhr von Tanja veröffentlicht.

Hallo liebes Forum ...

Ich habe mir ein kleines Formular für eine private Homepage gebastelt.
Einmal wollte ich euch fragen ob der Code so im groben vernünftig ist oder ob es da riesige Sicherheitslöcher gibt.
Dann würde ich da gerne noch soetwas wie "Wenn alle Felder ausgefüllt, dann senden, ansonsten Meldung" einbauen.
Bitte denkt bei einer eventuellen Erklärung wie ein PHP-Neuling. "gg"

Grüße Tanja

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 14. 08. 2006, 20:05 Uhr von Christoph Schnauß veröffentlicht.

hallo,

> Einmal wollte ich euch fragen ob der Code so im groben vernünftig ist

Nun ja, wo isser denn, dein Code?


Grüße aus Berlin

Christoph S.
--
Visitenkarte

ss:| zu:) ls:& fo:) va:) sh:| rl:|

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 14. 08. 2006, 20:28 Uhr von Twilo veröffentlicht.

Hallo,

> > Einmal wollte ich euch fragen ob der Code so im groben vernünftig ist

> Nun ja, wo isser denn, dein Code?

na da war ein anderer berliner schneller :-)


mfg
Twilo

--
Farbtabelle

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 14. 08. 2006, 20:43 Uhr von Christoph Schnauß veröffentlicht.

hallo Twilo,

<väterlicher Tonfall-Modus>

> > Nun ja, wo isser denn, dein Code?
> na da war ein anderer berliner schneller :-)

Nö. Selbst wenn dieselbe Minute angezeigt wird, so gibt dir die Reihenfolge doch klar zu erkennen, daß ich um Sekunden schneller war. Wer später kommt, stellt sich hier im Forum immer oben an, und da du nun "über mir" stehst, warst du in der Realität "nach mir" ;-P

</väterlicher Tonfall-Modus>


Grüße aus Berlin

Christoph S.
--
Visitenkarte

ss:| zu:) ls:& fo:) va:) sh:| rl:|

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 15. 08. 2006, 10:07 Uhr von seth veröffentlicht.

gudn tach!

> > > Nun ja, wo isser denn, dein Code?
> > na da war ein anderer berliner schneller :-)
>
> Nö. Selbst wenn dieselbe Minute angezeigt wird, so gibt dir die Reihenfolge doch klar zu erkennen, daß ich um Sekunden schneller war.[...]

eben. mit dem "anderen" berliner warst vermutlich du, Christoph, gemeint.

prost
seth

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 15. 08. 2006, 17:07 Uhr von Twilo veröffentlicht.

Hallo,

> > > > Nun ja, wo isser denn, dein Code?
> > > na da war ein anderer berliner schneller :-)

> > Nö. Selbst wenn dieselbe Minute angezeigt wird, so gibt dir die Reihenfolge doch klar zu erkennen, daß ich um Sekunden schneller war.[...]

> eben. mit dem "anderen" berliner warst vermutlich du, Christoph, gemeint.

hm.. da hat der Christoph wohl nicht ganz aufgepasst :-)

mfg
Twilo

--
Farbtabelle

Wo isser denn, der zu prüfende Code?

Der folgende Beitrag wurde am 15. 08. 2006, 23:08 Uhr von Christoph Schnauß veröffentlicht.

hallo,

> da hat der Christoph wohl nicht ganz aufgepasst :-)

ok, ihr habt gewonnen. Zur Strafe gibts dann heute keinen Holunderwein, sondern Ebereschenwein (hat 0,3 Vol% weniger Allohol).


Grüße aus Berlin

Christoph S.
--
Visitenkarte

ss:| zu:) ls:& fo:) va:) sh:| rl:|

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 14. 08. 2006, 20:05 Uhr von Twilo veröffentlicht.

Hallo,


> Einmal wollte ich euch fragen ob der Code so im groben vernünftig ist oder ob es da riesige Sicherheitslöcher gibt.

welcher Code?


mfg
Twilo

--
Farbtabelle

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 14. 08. 2006, 20:08 Uhr von Tanja veröffentlicht.

UPS ...

Habe doch glatt das wichtigste vergessen !!!

Code:

<?php
$server = $_REQUEST['server'];
$ip = $_REQUEST['ip'];
$name = $_REQUEST['name'];
$mail = $_REQUEST['mail'];
$betreff = $_REQUEST['beitrag'];
$name=trim($name);
$mail=trim($mail);
$betreff=trim($beitrag);
$name=strip_tags($name);
$mail=strip_tags($mail);
$betreff=strip_tags($beitrag);
If (isset($_POST['submit']))
{
$message="Ein Eintrag der Seite topfblume.net\r\n\r\n";
$message.="Browser: $server\r\n";
$message.="IP: $ip\r\n\r\n";
$message.="Name: $name\r\n";
$message.="Email: $mail\r\n";
$message.="Betreff: $beitrag\r\n";
$header="Content-Type: text/plain\r\n";
mail("info@topfblume.net", "Nachricht vom Formular - topfblume.net", $message, $header);
}
?>

--------
html

<form action="<?php $PHP_SELF; ?>" method="post">
<input type="text" name="name">
<input type="text" name="email">
<textarea name="beitrag" rows="5" cols="20" title="Gebe hier Deine Nachricht ein"></textarea>
<input type="submit" value="senden">
</form>


bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 14. 08. 2006, 20:14 Uhr von Mathias Brodala veröffentlicht.

Hallo Tanja.

> <?php
> $server = $_REQUEST['server'];
> $ip = $_REQUEST['ip'];
> $name = $_REQUEST['name'];
> $mail = $_REQUEST['mail'];
> $betreff = $_REQUEST['beitrag'];


Alle diese Schlüssel existieren beim erstmaligen Aufruf noch garnicht, weshalb du sie nur übernehmen solltest, wenn sie gesetzt wurden.

> $name=trim($name);
> $mail=trim($mail);
> $betreff=trim($beitrag);
> $name=strip_tags($name);
> $mail=strip_tags($mail);


Warum überhaupt dieser Umweg? Du kannst direkt mit den Schlüsseln in $_REQUEST agieren. Es ist ein Array wie jeder andere auch, mit dem Unterschied dass er stets zur Verfügung steht.

> $header="Content-Type: text/plain\r\n";
> mail("info@topfblume.net", "Nachricht vom Formular - topfblume.net", $message, $header);


Das sind die relevanten Zeilen. Die E–Mail–Adresse, der Betreff als auch die zusätzlichen Header sind fest vorgegeben, man kann hier also nirgends zusätzliche Mailheader einschmuggeln.

> <form action="<?php $PHP_SELF; ?>" method="post">

Brauchst du wirklich noch register_globals?

Ansonsten dürfte das Script sicher sein.


Einen schönen Montag noch.

Gruß, Mathias

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 15. 08. 2006, 12:25 Uhr von wahsaga veröffentlicht.

hi,

> Alle diese Schlüssel existieren beim erstmaligen Aufruf noch garnicht, weshalb du sie nur übernehmen solltest, wenn sie gesetzt wurden.

Meintest du vielleicht, wenn sie gesetzt wurden?

gruß,
wahsaga


--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 15. 08. 2006, 12:50 Uhr von Mathias Brodala veröffentlicht.

Hallo wahsaga.

> > Alle diese Schlüssel existieren beim erstmaligen Aufruf noch garnicht, weshalb du sie nur übernehmen solltest, wenn sie gesetzt wurden.
>
> Meintest du vielleicht, wenn sie gesetzt wurden?

Ja, meinte ich. Wieder einmal haben mir die beiden Zwischenablagen einen Streich gespielt.

Mal sehen, ob ich die Qt–Version irgendwie deaktiviert bekomme.


Einen schönen Dienstag noch.

Gruß, Mathias

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]

bitte um "Formular Code Überprüfung"

Der folgende Beitrag wurde am 14. 08. 2006, 21:10 Uhr von Saltamontes veröffentlicht.

> If (isset($_POST['submit']))
> {

 if (!(isset($_POST['name']))){
   $error_msg = "Name fehlt!";
 }
 if (!(isset($_POST['email']))){
   $error_msg = "E-Mail fehlt!";
 }
 if (!(isset($_POST['beitrag']))){
   $error_msg = "Beitrag fehlt!";
 }
 if (!(isset($error_msg))){
> $message="Ein Eintrag der Seite topfblume.net\r\n\r\n";
> $message.="Browser: $server\r\n";
> $message.="IP: $ip\r\n\r\n";
> $message.="Name: $name\r\n";
> $message.="Email: $mail\r\n";
> $message.="Betreff: $beitrag\r\n";
> $header="Content-Type: text/plain\r\n";
> mail("info@topfblume.net", "Nachricht vom Formular - topfblume.net", $message, $header);
> }
}


So kannst du abfragen ob alles ausgefüllt wurde und nur dann die Eingaben schicken. Außerdem kannst du noch die Fehlermeldung ausgeben. Damit nach dem Abschicken nicht alles verloren geht, falls etwas fehlt, solltest du noch dein Formular um die Eingaben ergänzen:

<input type="text" name="name" value="<?php print $_POST['name']; ?>">

entsprechend auch bei den anderen Feldern.

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4