[PHP] CGI fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey, weet iemand wat de volgende fout kan inhouden?

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Ik heb de fout al met google gezocht, maar dit is niet echt duidelijker geworden.
Ik vraag hierbij aan jullie of jullie ook weleens deze fout hebben gezien en zo ja wat je eraan gedaan hebt.

Ik draai IIS6 op win2k3
PHP command exec() loopt dus vast en geeft deze error

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Dat houdt waarschijnlijk in dat PHP voortijdig crasht. Doet een gewone "Hello world" het wel?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja, alles werkt, behalve deze pagina

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?
//Maak windows account$sjaak = "sjaak";
$karel = "kop";
$string=rand(0,999999);
$handle = fopen ("c:\\root\\tmp\\".$string.".bat", "w");
$filename = "c:\\root\\tmp\\".$string.".bat";
$somecontent = "net user ".$plop." ".$sjaak." /add";

if (is_writable($filename)) {

   if (!$handle = fopen($filename, 'a')) {
         print "Kan het bestand niet openen ($filename)";
         exit;
   }

   if (!fwrite($handle, $somecontent)) {
       print "Kan niet schrijven naar bestand ($filename)";
       exit;
   }

   print "OK";

   fclose($handle);

} else {
   print "Het bestand $filename is niet schrijfbaar";
}     

//en uitvoeren
$file = "'c:/root/tmp/274383.bat'";
exec($file);
?>
<html>
<head>
<title>SJAAK</title>
</head>
<body>
</body>
</html>


Zoals je ziet wil ik dmv PHP een gebruiker toevoegen aan windows.
Maar bij deze pagina blijft ie hangen en geeft ie die error

[ Voor 48% gewijzigd door Verwijderd op 08-01-2004 19:37 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe weet je of het bestaand 274383.bat wel bestaat?

Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
En daardoor zou php crashen?
Wat gebeurt er als je de exec weglaat?
En als je met de hand de gegenereerde bat-file uitvoert?
Zou 't ook nog kunnen dat PHP zit te wachten totdat je batch-file is afgelopen en dat dat nooit gebeurt?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

uhm... je maakt een bestand aan met een random nummer, en vervolgens ben je er concreet zeker van dat dat bestand "274383.bat" heet.

En waarom gebruik je die directory seperators zo inconsequent?
De ene keer heb je het over "" oftewel een standaard windows "", de andere keer heb je het over "/" oftewel de unix/linux dinges, die weliswaar door PHP goed gezet wordt naar "" (denk ik, ik ken geen PHP maar in Perl is dat wel zo).

Ennuh wellicht is dit ook wat vaag/onhandig:

<?
//Maak windows account$sjaak = "sjaak";
//code op comment line?
//variable '$sjaak' dus niet aangemaakt
$karel = "kop";
//variable '$karel' aangemaakt

(...)

$somecontent = "net user ".$plop." ".$sjaak." /add";
//'$plop'? Da's een nieuwe variable, tot zover ik kan beoordelen... wellicht heeft exec/net.exe daat verderop problemen mee?
//En '$sjaak' bestaat dus ook niet. Oftewel, $somecontent == "net user" en dan twee spaties

//'$karel' heb je maar 1x gebuikt. Wat is het nut van die var? Heb je toevallig '$plop' en '$karel' verward?

[ Voor 72% gewijzigd door muba op 08-01-2004 21:53 ]

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok, reactie:
dit bestand heet test.php (niet voor niets)
ik weet zeker dat het bestand bestaat, want die heb ik zelf aangemaakt.
Die random file is voor als het eenmaal werkt dat ik dat nummer alleen nog maar hoef te vervangen door $string.
Als ik het BAT bestand me tde hand uitvoer gaat alles goed...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MUBA schreef op 08 januari 2004 @ 21:43:
<?
//Maak windows account$sjaak = "sjaak";
//code op comment line?
//variable '$sjaak' aangemaakt
$karel = "kop";
//variable '$karel' aangemaakt

(...)

$somecontent = "net user ".$plop." ".$sjaak." /add";
//'$plop'? Da's een nieuwe variable, tot zover ik kan beoordelen... wellicht heeft exec/net.exe daat verderop problemen mee?

//'$karel' heb je maar 1x gebuikt. Wat is het nut van die var? Heb je toevallig '$plop' en '$karel' verward?
Je hebt gelijk, maar de inhoud van het bestaand batch is wel goed, dus laten we er maar vanuit gaan dat dat OK is.
Ik heb net trouwens ff geprobeerd om te kijken wat er gebeurde als ik
exec($file); veranderde in exec($blaat);
Dit geeft weer geen error op (ook geen uitvoer natuurlijk, maar misschien interessant)

Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
En als je dat bat bestand vervangt door een leeg bat bestand dat niets doet. Krijg je dan nog steeds de foutmelding? Als dat nog steeds zo is: probeer eens een non-bat-file uit?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
vaag, met een lege bat werkt het niet, en met bijv calc.exe ook niet.
Ik vind het vreemd, want in een andere pagina werkt exec wel, dit is in combinatie met een proggoie wat de uptime meet, hier de code:

code:
1
2
Exec("webshot.exe uptime",$content,$error);echo("<B>
Server uptime: </B>" . (round($content[0] / 3600000)) . " hours<br>");


edit: SHIT, ik heb nu wat zitten kutten en nou heb ik zelfs dat niet meer.
Ik heb zitten kutten in taakbeheer, ik heb wat processen uitgezet, volgens mij alleen maar cmd.exe, blijkbaar voert ie ze toch uit op de achtergrond, hij zet ze alleen niet door denk ik, want er was geen output ervan

[ Voor 46% gewijzigd door Verwijderd op 09-01-2004 08:03 ]

Pagina: 1