Toon posts:

[PL] use strict probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb nu het onderstaande scriptje gemaakt, alles werkt goed, alleen het redirecten gaat niet lukken *zucht* ... ik heb use strict gecomment, omdat het script hier anders op vast loopt, maatr volgens mij is dit wel noodzakelijk om de redirect goed uit te laten voeren.

ik krijg nu heel mooi op het scherm te staan : Location: index.cgi :S ...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/local/bin/perl -w
eval {
#  use strict;
  use CGI qw(:standard);
  print "Content-type: text/html \n\n";
  $input = new CGI;
}; 

if ($@) { &error("$@"); }

$link = $input->param('link');
$onderdeel = $input->param('onderdeel');
$text = $input->param('text');

$textbestand = "../WWW/$link.txt";

open (BESTAND, "> $textbestand") or die "";
print BESTAND "$onderdeel=$text";
close BESTAND;

print "Location: index.cgi";

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Op donderdag 02 mei 2002 15:43 schreef PatrickPietens het volgende:
code:
1
print "Content-type: text/html \n\n";
Ja maar, hier sluit je je HTTP headers al af. Nogal logisch dat alle tekst die je vervolgens uitvoert in de HTTP body terecht komt.

Verwijderd

Topicstarter
maar ik heb die regel nodig ... anders voert hij het script niet uit :S ... het script is gehost bij xs4all.nl, en daar is het een verreiste om daarme te beginnen ...

Internal Server Error

krijg je anders ...

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 09-09 11:02
Op donderdag 02 mei 2002 16:05 schreef PatrickPietens het volgende:
maar ik heb die regel nodig ... anders voert hij het script niet uit :S ... het script is gehost bij xs4all.nl, en daar is het een verreiste om daarme te beginnen ...

Internal Server Error

krijg je anders ...
Hmm, misschien kan het geen kwaad om even een stukje over CGI te lezen:
http://hoohoo.ncsa.uiuc.edu/cgi/

In het kort: je script moet HTTP headers uitvoeren om ervoor te zorgen dat de webserver je uitvoer doorstuurt naar de client. Daar mag een content-type header bij zitten, als je content wil genereren, maar als je alleen wil redirecten, kun je met een location-header volstaan.

Je HTTP headers worden afgesloten met een lege regel, dus zodra je print "Content-type: text/html\n\n" uitvoert kun je ze niet meer toevoegen.