Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]1053[/thread]

PHP: Radiobutton ohne Inhalt?



<< >> 7 Einträge, 1 Seite
Pida
 2006-07-03 15:28
#10707 #10707
User since
2006-06-09
52 Artikel
BenutzerIn
[default_avatar]
Hallo,

für meine Homepage habe ich ein Kontaktformular erstellt; dabei kann auch per Radio-Button (k)ein Newsletter abonniert werden. Nun ist mir etwas unerklärliches passiert; nämlich bekam ich eine mail, in der die Benachrichtigung wegen des Newsletterbezugs komplett leer war. Das kann ich mir nicht erklären, da doch AFAIK immer einer von mehreren Radio-Buttons innerhalb eines Formulares aktiviert sein muss.

Hier die zentralen Stellen:

Code: (dl )
1
2
<input type="radio" checked name="newsletter" value="ja"> Den Newsletter abonnieren<p>
<input type="radio" name="newsletter" value="nein"> Keinen Newsletter beziehen

und dann

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$empfaenger = "xxx";
$sender = $_POST["sender"];
$sendermail = $_POST["sendermail"];
$newsletter = $_POST["newsletter"];
$betreff = "Newsletter";

$text = "$sender sendet folgende Nachricht:

" . $_POST["text"] . "
Die Adresse lautet $sendermail.
Newsletterbezug: $newsletter";
mail($empfaenger, $betreff, $text,
"From: xxx");
?>

Wo liegt mein Fehler? An der entsprechenden Stelle in der mail müsste doch immer "ja" oder "nein" stehen...

Danke, Pida
esskar
 2006-07-03 15:51
#10708 #10708
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder, der poster hat nicht deine webseite, sondern ein script benutzt
Dubu
 2006-07-04 01:42
#10709 #10709
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Und eventuell damit ausprobiert, ob er dein Skript zum Spammen benutzen kann, sprich: ob sich beliebige Empfänger eintragen lassen (was offensichtlich nicht geht).
betterworld
 2006-07-04 03:15
#10710 #10710
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Man sollte sich immer vor Augen halten, dass keine Beschränkung, die per HTML oder Javascript oder sonst irgendwie dem Browser auferlegt wird, zwangsläufig eingehalten werden muss. Du hast das HTML zwar selbst geschrieben, aber es wird nicht von einem System ausgewertet, ueber das Du Kontrolle hast. Der Benutzer kann es beliebig editieren (oder wie esskar sagt: Man kann ein Script benutzen).

Daher sollten Sicherheitsueberpruefungen immer noch einmal vom Server (hier von PHP) durchgefuehrt werden.
esskar
 2006-07-04 06:52
#10711 #10711
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=betterworld,04.07.2006, 01:15]Daher sollten Sicherheitsueberpruefungen immer noch einmal vom Server (hier von PHP) durchgefuehrt werden.[/quote]
beispiel: wenn in $_POST["newsletter"] nicht "ja" (obwohl ich "1" für "ja" und "0" für "nein" besser fände) steht, dann bedeutet dies immer "nein"
Pida
 2006-07-04 20:39
#10712 #10712
User since
2006-06-09
52 Artikel
BenutzerIn
[default_avatar]
Danke für eure Antworten. Wenn ich es richtig verstehe, hat also jemand ein Formular verschickt, ohne dafür meine eigene Seite zu benutzen.

Lässt sich das denn verhindern? Mir schwebt da etwas vor im Stil von

Code: (dl )
1
2
3
if (mail kommt von meiner Formularseite){
mail ....
}


Gruß, Pida
pq
 2006-07-04 21:11
#10713 #10713
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Pida,04.07.2006, 18:39]Lässt sich das denn verhindern?[/quote]
kurze antwort: nein.
lange antwort: es läßt sich nur erschweren. eine art session-id z.B.
oder mit einen captcha. das ist derzeit noch am schwersten.
das bedeutet aber aufwand, wenn du nicht mit einem schlag alle
sehbehinderten surfer von deinem formular ausschließen willst.
Quote
Mir schwebt da etwas vor im Stil von

Code: (dl )
1
2
3
if (mail kommt von meiner Formularseite){
mail ....
}

eine mail kann gar nicht von deiner formularseite kommen. alles, was von
der seite zu deinem skript kommt, sind parameter/werte-paare.

ein skript, was einen browser imitiert, ist nichts anderes als
ein browser. einziger unterschied: vor dem browser sitzt id.R.
ein intelligenter mensch, während ein automatisiertes skript keine
intelligenz besitzt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 7 Einträge, 1 Seite



View all threads created 2006-07-03 15:28.