[thttpd/php] post werkt niet, get werkt wel??

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • divvid
  • Registratie: Februari 2006
  • Laatst online: 18-08 13:36
overal gezocht maar geen antwoord gevonden op het volgende:

In mijn script heb ik de volgende form tag staan:
<form action="addcomment.php" method="post">

als ik op submit klik dan krijg ik een "open addcomment.php" box in de browser
Dit gebeurd alleen op php 5.04 onder thttpd 2.25b
Als ik echter addcomment.php direkt open, dan wordt de file wel geparsed en correct gedisplayed
Als ik method="get" gebruik in het form dan wordt addcomment.php wel geparsed

Onder Apache2 met php 4.x werkt het allemaal prima. Kan iemand mij een hint geven waar ik moet zoeken om dit aan de praat te krijgen onder thttpd (ben ik aan gebonden voor de prod. omgeving)

Acties:
  • 0 Henk 'm!

Verwijderd

als ik op submit klik dan krijg ik een "open addcomment.php" box in de browser
Wat bedoel je :? Wat is dit voor box...

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 21:27

Reinier

\o/

Laat eens wat relevante code uit addcomment.php zien. Misschien wordt er een verkeerd mimetype meegegeven wanneer hij via post opgevraagd wordt.

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
iets zegt me dat het met registered globals te maken heeft...
idd post eens relevante code van addcomment.php

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • divvid
  • Registratie: Februari 2006
  • Laatst online: 18-08 13:36
In firefox onder linux krijg ik een 'open file with' box, in ff onder windows krijg ik een lege pagina en explore geeft een 'The page cannot be displayed' pagina.

Hieronder de code uit het addcomment.php script
PHP:
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
<?php
if (isset($_POST['submit']))
{
        $filename = '/opt/share/guestbook/data.txt';
        foreach($_POST as $field=>$input) {
                $input = htmlentities($input);
                if ( !get_magic_quotes_gpc() ) {
                        $input = addslashes($input);
                }
                $_POST[$field] = $input;
        }
        $data=$_POST['name']."|".$_POST['email']."|".$_POST['www']."|".$_POST['comment']."\n";
        if (($_POST['name'])!="" AND ($_POST['comment'])!="")
        {
                $fp = fopen($filename, 'a+');
                if (fwrite($fp, $data) === FALSE) {

                        fclose($fp);
                        header("Location: guestbook.php");
                        exit;

                }
                else{
                        fclose($fp);
                        header("Location: guestbook.php");
                        exit();
                }
        }
        else{
                header("Location: guestbook.php");
                exit;
        }
}
?>


Ik heb het echter ook getest met een hele simpele file met daarin:
PHP:
1
2
3
<?php
echo phpinfo();
?>


het lijkt er dus op dat php files die als action aangeroepen worden met een POST method,niet geparsed worden door de webserver en php files die aangeroepen worden met een GET method wel geparsed worden. de var volgorde volgens phpinfo is EGPCS, maar wijzigen helpt niets.
Als ik de file addcomment.php direct via de browser aanroep wordt ik netjes doorgelinked naar de pagina die ik in de header commandos opgeef. i'm still puzzled

Acties:
  • 0 Henk 'm!

Verwijderd

Je begint je code met:

PHP:
1
2
3
if (isset($_POST['submit'])) 
{
//etc.


Ik mag toch hopen dat dit niet een verwijzing is naar je submit-button?
Als dit wel zo is maak daar dan eens een correcte controle van.
Iets als;

PHP:
1
2
3
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')
{
// etc..

[ Voor 9% gewijzigd door Verwijderd op 01-03-2006 13:22 ]


Acties:
  • 0 Henk 'm!

  • divvid
  • Registratie: Februari 2006
  • Laatst online: 18-08 13:36
intussen ook met een heel simpel form getest, met hetzelfde resultaat: get werkt wel, post werkt niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Laat maar :)

[ Voor 102% gewijzigd door Verwijderd op 01-03-2006 13:34 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Lijkt me een probleem met je webserver dan. Blijkbaar parset die PHP niet als de request method POST is. :? Duik eens in je webserver-config?
Verwijderd schreef op woensdag 01 maart 2006 @ 13:29:
Grapjas... Als je GET gebruikt, komt ie helemaal niet in de IF-tak. Als je POST gebruikt wel.
Ik mag toch hopen/aannemen dat hij $_POST gewoon in $_GET verandert? :P

[ Voor 50% gewijzigd door NMe op 01-03-2006 13:30 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op woensdag 01 maart 2006 @ 13:29:
Lijkt me een probleem met je webserver dan. Blijkbaar parset die PHP niet als de request method POST is. :? Duik eens in je webserver-config?

[...]

Ik mag toch hopen/aannemen dat hij $_POST gewoon in $_GET verandert? :P
Dát is precies het probleem wat TS zoekt i.m.o..

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Als de code niet wordt aangepast dan zou het best kunnen dat de webserver niet goed omgaat met die locations headers. Deze worden namelijk niet uitgevoerd wanneer er geen post is. Misschien worden alle headers wel weggegooit waardoor er geen contenttype meer in staat en IE (en firefox) vervolgens neit weten wat ze er mee moeten en daarom maar aanbieden om het bestand op te slaan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • divvid
  • Registratie: Februari 2006
  • Laatst online: 18-08 13:36
Zoals ik al zei, de INHOUD van het php script maakt helemaal niets uit. Als ik de form action verwijs naar een simpel php bestand dat aleen maar de phpinfo laat zien, dan werkt het ook niet met POST en wel met GET. dit heeft dus niets met headers te maken lijkt me, want zover komt de server niet eens. Deet ie dat maar dan viel er wat te debuggen. Het stomme is nu dat de server wel degelijk php bestanden parsed, als je ze maar niet via de POST method vanuit een script benaderd.

Ik heb de hele man-page van thttpd er al op nagezocht en de php.ini file heb ik helemaal nagelopen, maar ik kan geen enkele optie vinden die het POST/GET gedrag beinvloed.
Om gek van te worden, want op Apache2, met inmiddels ook php5 werkt het allemaal wel gewoon, maar ja die keus heb ik nu eenmaal niet.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Tsja, dan heb je de mogelijkheid uitgesloten dat het een probleem is met je code, en dus staat dit topic beter in Software Algemeen, waar de mensen met verstand van software zitten. :)

PW>>SA

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1