[perl/cgi] request methode = post probleem

Pagina: 1
Acties:

  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
Ik gebruik in mijn script deze code

Perl:
1
2
3
4
5
6
7
8
if    ($ENV{'REQUEST_METHOD'} eq "GET")
{
   $request = $ENV{'QUERY_STRING'};
}
elsif ($ENV{'REQUEST_METHOD'} eq "POST")
{
    read(STDIN, $request,$ENV{'CONTENT_LENGTH'}) || die "Could not get query\n";
} 


Wanneer ik iets via de GET methode verstuurd werkt hij maar via POST gaat hij naar de || enig idee waarom ?!?

[ Voor 12% gewijzigd door Daniel304 op 10-09-2003 14:49 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Ik heb enig idee waarom ;)

De read functie geeft een 0 terug bij een fout, maar ook als alles goed is ingelezen en het einde van de input is bereikt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Juup
  • Registratie: Februari 2000
  • Niet online
Daniel mag ik je een tip geven?
Gebruik CGI.pm om forminput te verwerken.
Het is heel simpel en zeer veilig
Perl:
1
2
3
use CGI;
my $cgi = new CGI;
print $cgi->param('naamVanMijnInputVeldje');

[ Voor 10% gewijzigd door Juup op 10-09-2003 21:26 ]

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
Jaaap helaas.. Ik kan dit niet doen.. dit omdat er een array uitkomt zetten er zijn namelijk meerdere input velden met dezelfde naam. Maar bedankt voor de tip.

Creepy helaas werkt het nog steeds niet als ik de || .... weg haal.. er komt dan nog steeds niks bruikbaars in $request te staan terwijl dat wel werkt wanneer ik de get gebruik !!! (de strings van get en post zullen er toch wel hetzelfde uitzien of ook dat niet ?!?)

[ Voor 47% gewijzigd door Daniel304 op 11-09-2003 10:27 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Wat bedoel je met niks bruikbaars? Wat komt er wel uit? Misschien kan je laten zien wat er dan in $request komt te staan, plus het stukje code waarmee je $request uit elkaar haalt en in (een) variabele stopt?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Met CGI.pm kun je ook meerdere inputs met dezelfde naam hebben hoor:
HTML:
1
2
3
<input type="checkbox" name="foo" value="bar1">
<input type="checkbox" name="foo" value="bar2">
<input type="checkbox" name="foo" value="bar3">

Perl:
1
2
3
4
5
6
use CGI;
my $cgi = new CGI;
@bar = $query->param('foo');
foreach (@bar) {
    print "$_\n"
}

output:
bar1
bar2
bar3

Zie ook: http://perldoc.com/perl5....A-SINGLE-NAMED-PARAMETER-

[ Voor 30% gewijzigd door RvdH op 11-09-2003 19:20 ]


  • Juup
  • Registratie: Februari 2000
  • Niet online
Dank strlen voor de steun ;)

Creepy als je jouw implementatie afhebt wil ik er graag op prijsschieten.
Laten we afspreken dat ik 2 tot de macht het aantal security holes euro van je krijg ok?

m.a.w.: je krijgt dit bijna niet waterdicht. Tenzij je HEEL goed bent.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Juup schreef op 11 september 2003 @ 23:48:
Dank strlen voor de steun ;)

Creepy als je jouw implementatie afhebt wil ik er graag op prijsschieten.
Laten we afspreken dat ik 2 tot de macht het aantal security holes euro van je krijg ok?

m.a.w.: je krijgt dit bijna niet waterdicht. Tenzij je HEEL goed bent.
Dus zelf de $qeurystring uit elkaar plukken en in vars stoppen is minder waterdicht dan @bar = $query->param('foo' m.b.v. per CGI? Please explain want naar mijn weten zit het nog altijd in het GEBRUIK van de variabelen daarna.

En er zijn zat voorbeelden te vinden die geen gebruik maken van de CGI module en toch echt net zo veilig zijn hoor ;)
bijv. http://stsdas.stsci.edu/bps/perltalk14.html

Niet dat de perl::cgi module makkelijk is maar daar vroeg de T.S. niet naar. En zeggen dat het zonder stikt van de security holes is wel erg makkelijk

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1