User since
2006-06-09
76
Artikel
BenutzerIn
Hmh, ok, dann wäre das geklärt, habs jetzt begriffen wie ihr das meint.
Dann wäre nur noch das Problem mit dem Senden Button da...
Aber vielen Dank schon für die ganze bisherige hilfe.
Hier im forum ist wirklich etwas los, und man bekommt schnell eine Antwort!\n\n
<!--EDIT|Danwe|1149853398-->
User since
2003-08-04
14371
Artikel
ModeratorIn
Einen Vergleich auf Ungleichheit von Strings funktioniert in Perl nicht mit
!= sondern mit
ne:
#!/usr/bin/perl
use strict;
use warnings;
my $string = 'hallo';
if($string ne 'check'){
print $string;
}
User since
2003-08-15
2653
Artikel
BenutzerIn
und wehe $string is undef weil der wert daraus aus param() stammt und dieses dir bei fehlender eingabe nen undef zurückgibt...
deshalb musst du erst auf defined prüfen
User since
2005-01-17
14555
Artikel
Admin1
<form action='gaestebuch.plx' method='get'>
Daten mit GET zu übertragen ist nur bis zu einer bestimmten Datenmenge sinnvoll.
Die URL darf nämlich je nach Browser und Server nur eine bestimmte Länge haben.
Besser ist es POST zu nehmen, wenn die Datenmenge größer wird.
Zudem wird bei einem GET mit Formular immer die ganze URL mitsamt der Parameter im Browser angezeigt. Das sieht eher unschön aus.\n\n
<!--EDIT|GwenDragon|1149855405-->
User since
2003-08-15
2653
Artikel
BenutzerIn
OT: ich hatte mal bei suse 7.3 im konqueror den merkwürdigen bug, dass der gesamte KDE abgespackt ist, wenn das GET länger als ca. 200 zeichen war... war echt lustig
User since
2006-06-09
76
Artikel
BenutzerIn
Ich habe es jetzt anders gelöst. Ich übergebe die Werte nicht per GET sondern POST.
Damit funktioniert es irgendwie besser, es kommt jetzt auch eine Warnung vom Browser, wenn man nochmal neu laden will.
Gibt es nicht auch noch die Möglichkeit, wenn derjenige gesendet hat ihm die Daten wieder zu entreisen, also die Übergabeparameter auf "" zurückzusetzen!? Das wäre noch eine Gute möglichkeit.
Wie ist das mit einer IP erkennung oder sowas in der Art, dass der user die nächsten 2 Minuten keine Nachricht mehr senden könnte?
User since
2003-08-15
2653
Artikel
BenutzerIn
nein die möglichkeit gibts nicht. Wenn du aktualisierst will er die daten neu senden. Er macht ja nur das was du ihm sagst was er tun soll.
Es gibt aber einen trick! Auf der durch das submit aufgerufene script ein redirect zu einer dritten seite einbauen.
Das mit IP find ich doof weil es gibt ja auch proxies oder leute die vom uni-netzwerk bei dir surfen... ich würd lieber mit sessions arbeiten\n\n
<!--EDIT|Froschpopo|1149857362-->
User since
2006-06-09
76
Artikel
BenutzerIn
Mit sessions, da habe ich noch gar keinen Plan, aber deine argumentation stimmt, ok, daran hatte ich nicht gedacht.
Wie meinst du das mit der dritten Seite genau, verstehe ich nicht!? Ich habe doch bis jetzt nur eine Seite, und antworten sollte man ja auf der selben Seite können, oder?
User since
2003-08-15
2653
Artikel
BenutzerIn
also du hast ja das Formular wo derjenige seinen Gästebuchbeitrag eingibt. Anschließend klickt er auf "absenden" und kommt auf die CGI-Seite in der du die Daten verarbeitest. Wenn du ihn jetzt mit einem redirect zu einer anderen seite weiterschickst, wird er bei einem reload nicht den POST-request mehr abschicken können.
Das macht man eigentlich meistens so... und wenn du das Redirect direkt im Header machst, z.b. mit "CGI::redirect()", geht das so schnell, dass derjenige garnicht merkt, dass da eine Seite zwischen war.
Ist eigentlich übliche Praxis im Internet
User since
2006-06-09
76
Artikel
BenutzerIn
ok, danke werds ausprobieren.
Das ist mir auch schonmal aufgefallen, wie du das schilderst^^
Ich bin erstmal bis Donnerstag im urlaub, dannach melde ich mich zurück.