Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Apache/PHP n'aime pas la méthode POST sur Ubuntu

11 réponses
Avatar
noone
Bonsoir,

j'ai un petit soucis
j'utilise dans une page en HTML/PHP la méthode POST.
Chez Free la page marche sans problème...
Par contre chez moi (Ubuntu) tout se passe comme si la variable n'était
jamais initialisée...

Une idée ?

Merci d'avance



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Restriction de l'accès Internet</title>
</head>

<body>

<center>

<h1>Restriction de l'accès Internet</h1>



<hr>



<h2>Salle 32</h2>
<form method="post" action="index.php">
<input type="hidden" name="room" value="31">

<table border=0 cellpadding=10>
<tr align="center">
<td align="center">
<input type="submit" name="start" value="Lancer la connexion">
</td>
<td align="center">
<input type="text" name="duree" size="4" value="60">
</td>
<td width=20%></td>
<td align="center">
<input type="submit" name="stop" value="Stopper la connexion">
</td>
</tr>
</table>
</form>





</center>


<hr>



<?php
if ( $start <> "" ) {
$action = "start";
}

if ( $stop <> "" ) {
$action = "stop";
$duree = "";
}


if ( $action <> "" ) {
$script = "./internet_rules.sh $action $room $duree";
echo "<pre>$script</pre>";
exec($script);
}
?>



</body>
</html>


Remarque : ça ne marche pas mieux avec GET

10 réponses

1 2
Avatar
Arol
a écrit dans le message de news:
Bonsoir,

j'ai un petit soucis
j'utilise dans une page en HTML/PHP la méthode POST.
Chez Free la page marche sans problème...
Par contre chez moi (Ubuntu) tout se passe comme si la variable n'était
jamais initialisée...


$_POST["variable"]
$_GET["variable"]

Et ça n'a aucun rapport avec linux, mais dans la configuration de php.

Avatar
Doug713705
Le Vendredi 21 Avril 2006 00:04, s'est exprimé de la
sorte sur fr.comp.os.linux.configuration :

Bonsoir,
Bonsoir,


j'ai un petit soucis
j'utilise dans une page en HTML/PHP la méthode POST.
Chez Free la page marche sans problème...
Par contre chez moi (Ubuntu) tout se passe comme si la variable n'était
jamais initialisée...

Une idée ?



Le problème n'est pas spécifique à Linux.
As tu essayé avec un autre formulaire plus simple ?

Merci d'avance

Rajoute ça dans ton code, ça t'aidera à débugguer :


<?
foreach ($_POST as $key => $value)
echo "post: ".$key."=".$value."<br>";

foreach ($_GET as $key => $value)
echo "get: ".$key."=".$value."<br>";
?>

Remarque : ça ne marche pas mieux avec GET


Le problème ne semble pas venir du code qui fonctionne
chez moi avec Apache 1.3.34 /php 4.4.2.

--
@+
Doug [Linux user #307925] - Slackware RuleZ ;-)
[Pourquoi t'es qui, qu'est ce que tu fais par où ?]
-- Pour me contacter enlever no-spam (2X) --

Avatar
noone
a écrit dans le message de news:

Bonsoir,

j'ai un petit soucis
j'utilise dans une page en HTML/PHP la méthode POST.
Chez Free la page marche sans problème...
Par contre chez moi (Ubuntu) tout se passe comme si la variable n'était
jamais initialisée...



$_POST["variable"]
$_GET["variable"]

Et ça n'a aucun rapport avec linux, mais dans la configuration de php.




Bon j'ai corrigé en faisant


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Restriction de l'accès Internet</title>
</head>

<body>

<center>

<h1>Restriction de l'accès Internet</h1>

<hr>

<h2>Salle 32 (Physique)</h2>
<form method="post" action="index.php">
<input type="hidden" name="room" value="32">

<table border=0 cellpadding>
<tr align="center">
<td align="center">
<input type="submit" name="start" value="Lancer la connexion">
</td>
<td align="center">
<input type="text" name="duree" size="4" value="60">
</td>
<td width %></td>
<td align="center">
<input type="submit" name="stop" value="Stopper la connexion">
</td>
</tr>
</table>
</form>

<hr>



</center>


<hr>

<?php
/*
foreach ($_POST as $key => $value)
echo "post: ".$key."=".$value."<br>";

foreach ($_GET as $key => $value)
echo "get: ".$key."=".$value."<br>";
*/
?>


<?php
$room = $_POST["room"];
$duree = $_POST["duree"];

if ( $_POST["start"] <> "" ) {
$action = "start";
}

if ( $_POST["stop"] <> "" ) {
$action = "stop";
$duree = "";
}


if ( $action <> "" ) {
$script = "./internet_rules.sh $action $room $duree";
echo "<pre>$script</pre>";
exec($script);
}
?>



</body>
</html>


et ça marche maintenant chez Free et sur Ubuntu


Je trouve que cette écriture est nettement moins pratique.

La différence de comportement s'explique nécessairement par une
différence dans un fichier de conf de Linux... Apache ou PHP... je ne
sais pas


Merci


Avatar
noone
Le problème n'est pas spécifique à Linux.


C'est un fichier de conf Linux (Apache ou PHP) qui diffère

As tu essayé avec un autre formulaire plus simple ?


Non... c'est le plus simple que j'ai trouvé en utilisant Google
"formulaire php"

Rajoute ça dans ton code, ça t'aidera à débugguer :

<?
foreach ($_POST as $key => $value)
echo "post: ".$key."=".$value."<br>";

foreach ($_GET as $key => $value)
echo "get: ".$key."=".$value."<br>";
?>


c'est très pratique



Remarque : ça ne marche pas mieux avec GET



Le problème ne semble pas venir du code qui fonctionne
chez moi avec Apache 1.3.34 /php 4.4.2.



voir la modif suggérée par Arol


Merci


Avatar
Matthieu Moy
"" writes:

Le problème n'est pas spécifique à Linux.


C'est un fichier de conf Linux (Apache ou PHP) qui diffère


Si c'est un fichier d'Apache ou de PHP, ça n'est pas un fichier de
Linux. Apache tourne très bien sous d'autres OS (Solaris,
Windows, ...), et on peut faire tourner autre chose qu'Apache sous
Linux ;-).

Le mieux est d'écrire du code portable, sinon, regardes dans
httpd.conf quelque part dans /etc/.

--
Matthieu


Avatar
noone
Le mieux est d'écrire du code portable, sinon, regardes dans
httpd.conf quelque part dans /etc/.


donc c'est apache ? et pas PHP ?

Avatar
Matthieu Moy
"" writes:

Le mieux est d'écrire du code portable, sinon, regardes dans
httpd.conf quelque part dans /etc/.


donc c'est apache ? et pas PHP ?


A priori, PHP est un module de Apache, mais je ne sais pas si il a un
fichier de conf séparé, j'ai jamais touché à ça de près !

--
Matthieu


Avatar
Arol
a écrit dans le message de news:
Le mieux est d'écrire du code portable, sinon, regardes dans
httpd.conf quelque part dans /etc/.


donc c'est apache ? et pas PHP ?


Non, c'est php.
Depuis la version 4.3, il y a 2 fichiers php.ini de configuration, 1 pour
apache, 1 pour la ligne de commande.
Configurer celui de apache.

Mais $_POST["variable"] ou $_GET["variable"] c'est plus propre que
$variable.
Donc rien à toucher.


Avatar
noone
a écrit dans le message de news:

Le mieux est d'écrire du code portable, sinon, regardes dans
httpd.conf quelque part dans /etc/.


donc c'est apache ? et pas PHP ?



Non, c'est php.
Depuis la version 4.3, il y a 2 fichiers php.ini de configuration, 1 pour
apache, 1 pour la ligne de commande.
Configurer celui de apache.

Mais $_POST["variable"] ou $_GET["variable"] c'est plus propre que
$variable.
Donc rien à toucher.




oui j'ai trouvé

/etc/php4/apache/php.ini
/etc/php4/apache2/php.ini
/etc/php4/cgi/php.ini

/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini


mais bon je n'ai pas trouvé le paramètre à modifier...

Par contre $_POST["variable"] est quand même vachement moins pratique
que $variable... mais c'est juste mon avis



Avatar
Calimero
wrote:
mais bon je n'ai pas trouvé le paramètre à modifier...


magic_quotes_gpc = On


Par contre $_POST["variable"] est quand même vachement moins pratique
que $variable... mais c'est juste mon avis


Mais c'est un pouillième plus sûr et à titre perso je préfère. On sait
d'où vient la donnée.

--
@+
Calimero

1 2