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

Problème IIS ou PHP ?

9 réponses
Avatar
L'AMI Yves
Bien sûr, ça ne va pas être le bon forum... Mais c'est bien le diable
s'il ne se trouve pas quelqu'un capable de m'aider.

Donc d'abord, bonsoir !

Voici le problème : j'ai un site qui marche, en PHP/MySQL.

Pour des besoins de développement interne, j'ai essayé de l'installer
sur mon réseau local : j'ai donc installé IIS sur un poste XP du réseau,
puis j'ai installé MySQL, puis PHP. J'ai initialisé ma base de données,
puis j'ai essayé mon site : la page d'accueil s'est affichée presque tout
de suite, j'étais content...

Mais en navigant dedans, j'ai rencontré le problème suivant : les
variables ne passent pas d'une page à l'autre (formulaire, méthode
Post). Dans la page appelée, je vois bien, dans la barre d'adresse :
"http/...../page_appelée?Variable", mais dans la page, j'ai le
message d'erreur
Notice: Undefined variable: Variable in page_appelée.php on line 10.

Est-ce un problème IIS, ou PHP ?

Merci de votre aide.

AMIcalement.

9 réponses

Avatar
Sergio
L'AMI Yves a pensé très fort :

Mais en navigant dedans, j'ai rencontré le problème suivant : les
variables ne passent pas d'une page à l'autre (formulaire, méthode
Post). Dans la page appelée, je vois bien, dans la barre d'adresse :
"http/...../page_appelée?Variable", mais dans la page, j'ai le
message d'erreur
Notice: Undefined variable: Variable in page_appelée.php on line 10.

Est-ce un problème IIS, ou PHP ?



Problème PHP. Je suppose que tu as installé PHP 5. Par défaut (et c'est
très bien) dans le php.ini il y a :
register_globals = Off

Donc soit tu le mets à "On" et tu programme commes un cochon, soit tu
la laisses à "Off" et tu récupères tes variables par :

$var=$_POST['var'] ;

(idem pour $_GET[], $_COOKIE[], $_SESSION[]...).

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
L'AMI Yves
Je prends juste connaissance de ta réponse, je n'ai pas encore
testé, mais ça va sûrement marcher, et je te remercie.

Mais tu me provoques en suggérant que "je programme comme
un cochon" :
1 - peux-tu développer ?
2 - mon site - qui marche (actuellement sur free, en test) va
surement tourner en version définitive sur un serveur avec
PHP 5 et register_globals = On : qu'est-ce que ça va changer ?

Encore merci

"Sergio" a écrit dans le message de
news:
L'AMI Yves a pensé très fort :

> Mais en navigant dedans, j'ai rencontré le problème suivant : les
> variables ne passent pas d'une page à l'autre (formulaire, méthode
> Post). Dans la page appelée, je vois bien, dans la barre d'adresse :
> "http/...../page_appelée?Variable", mais dans la page, j'ai le
> message d'erreur
> Notice: Undefined variable: Variable in page_appelée.php on line 10.
>
> Est-ce un problème IIS, ou PHP ?

Problème PHP. Je suppose que tu as installé PHP 5. Par défaut (et c'est
très bien) dans le php.ini il y a :
register_globals = Off

Donc soit tu le mets à "On" et tu programme commes un cochon, soit tu
la laisses à "Off" et tu récupères tes variables par :

$var=$_POST['var'] ;

(idem pour $_GET[], $_COOKIE[], $_SESSION[]...).

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org




Avatar
Sergio
Le 14/02/2006, L'AMI Yves a supposé :
Je prends juste connaissance de ta réponse, je n'ai pas encore
testé, mais ça va sûrement marcher, et je te remercie.



Mais tu me provoques en suggérant que "je programme comme
un cochon" :



ne le prend pas mal, c'est une figure de style. Moi aussi, je me suis
fait avoir !
Pour un nouveau projet, présuppose que register_global est à off :
- Ton site en sera plus sûr
- Il résistera mieux aux futures évolutions de PHP

1 - peux-tu développer ?
2 - mon site - qui marche (actuellement sur free, en test) va
surement tourner en version définitive sur un serveur avec
PHP 5 et register_globals = On : qu'est-ce que ça va changer ?



Pour tester sur Free en PHP5, tu peux mettre un .htaccess contenant :
PHP 1

Sinon, accéder "directement" aux variables (paramètres, cookies etc.)
avec register_global à on, est source de failles de sécurité :
par exemple un utilisateur malveillant peut simuler une variable qui ne
devrait pas être là en la passant en paramètres. Fait quelques
recherches là-dessus avec Google...

Mais certains développeurs "programmant comme des cochons" la prennent
mal. J'avais modifier Guppy pour utiliser le register_global à off, et
publié la version modifié. L'auteur m'avait répondu "à quoi ça sert, vu
que la plupart des hébergeurs le mettent à off !"...


--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
William Marie
"L'AMI Yves" a écrit dans le message
de news: 43f1b641$1$17058$
Je prends juste connaissance de ta réponse, je n'ai pas encore
testé, mais ça va sûrement marcher, et je te remercie.

Mais tu me provoques en suggérant que "je programme comme
un cochon" :
1 - peux-tu développer ?
2 - mon site - qui marche (actuellement sur free, en test) va
surement tourner en version définitive sur un serveur avec
PHP 5 et register_globals = On : qu'est-ce que ça va changer
?



Je te rassure : PHP (de préférence en mode ISAPI moins lourd que
CGI), MySQL et IIS (4 et 5) fonctionnent très bien sous Win 2003
Server (avec même MS-SQL Server et PostgreSQL pour faire du genre) et,
bien sûr, sous Win 2000 Server.

Y a juste un petit gag lié à PHP, vu qu'il n'a pas d'installateur
(si on ne veut pas du package EasyPHP qui est toujours en retard d'une
guerre), au niveau des variables d'environnement qui manquent sinon il
ne va pas retrouver ses petits et tu te demanderas "M'enfin ?"
(allusion à un semi-troll développé plus bas). Et je _refuse_ de
mettre tout dans un tas (système Krosoft), comme les library utiles
dans system32 (parce que pour les MAJ...). Donc mettre dans PATH le
chemin PHP. Idem dans la BdR KKLMSoftwarePHP une clé SZ répondant au
doux nom de "IniFilePath" et contenant le dit chemin. Utile ? il y a
une variable d'environnement PHPRC=chemin dont j'ai entendu parler.

Pour phpMyAdmin ne pas oublier de rajouter (faut aller à la pêche
sur le Web voir la doc PHP) libmcrypt.dll (pour l'authentification
cryptée par cookies)

PHP.INI doit utiliser mysqli.dll (avancé) plutôt que mysql.dll

Et on ne touche pas à register_globals (qui reste à OFF), on
remplace courageusement, et à la mimine, les variables de formulaires
$trucmuche par &_POST['trucmuche']. C'est comme le HTML mal codé, plus
tôt on mettra du bon code, mieux ça sera (et on ne parle pas de mon
site qui est en archaïque HTML 3.5, mais, j'y travaille).
--
========================================================== William Marie
Toulouse (France)
mailto:
ATTENTION ! Anti-SPAM pour m'écrire remplacer trapellun.net
par free.fr
http://wmarie.free.fr
===========================================================
Avatar
Dominique Ottello
"William Marie" écrivait :

PHP.INI doit utiliser mysqli.dll (avancé) plutôt que mysql.dll



Si l'hébergeur le supporte.
--
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Technologie aéronautique : http://aviatechno.free.fr (http://ottello.net)
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Avatar
Sergio
William Marie a écrit :

Je te rassure : PHP (de préférence en mode ISAPI moins lourd que CGI),
MySQL et IIS (4 et 5) fonctionnent très bien sous Win 2003 Server (avec même
MS-SQL Server et PostgreSQL pour faire du genre) et, bien sûr, sous Win 2000
Server.



Y a juste un petit gag lié à PHP, vu qu'il n'a pas d'installateur (si on
ne veut pas du package EasyPHP qui est toujours en retard d'une guerre), au



Si, si, PHP a un installeur, mais il ne marche que pour IIS, ce qui est
un comble !

Sinon, si EasyPHP te semble en retard d'une guerre (c'est vrai), fait
un tour vers WAMP (aqui : http://www.wampserver.com/), c'est comme
easyPHP, mais à jour (Apache 2, PHP 5, MySql 5...) et facile à
installer et utiliser...

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Sergio
Il se trouve que Dominique Ottello a formulé :
"William Marie" écrivait :

PHP.INI doit utiliser mysqli.dll (avancé) plutôt que mysql.dll



Si l'hébergeur le supporte.



Il s'agit ici de faire tourner le serveur sur sa machine sous Windows :
Donc l'hébergeur, c'est toi ! Il te donnera tous les droits !

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Dominique Ottello
"Sergio" écrivait :

Sinon, si EasyPHP te semble en retard d'une guerre (c'est vrai), fait
un tour vers WAMP (aqui : http://www.wampserver.com/), c'est comme
easyPHP, mais à jour (Apache 2, PHP 5, MySql 5...) et facile à
installer et utiliser...



Je confirme. Installation et utilisation nasodigitales (© JCB)
--
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Technologie aéronautique : http://aviatechno.free.fr (http://ottello.net)
Concorde dans la presse de 1965 à 2003 : http://le.pointu.free.fr
Avatar
mdnews
Sergio avait énoncé :

Sinon, si EasyPHP te semble en retard d'une guerre (c'est vrai), fait un tour
vers WAMP (aqui : http://www.wampserver.com/), c'est comme easyPHP, mais à
jour (Apache 2, PHP 5, MySql 5...) et facile à installer et utiliser...




A noter aussi dans la catégorie alternatives légères à easyPHP

Pi3Web
http://pi3web.sourceforge.net/pi3web/

Serveur www + php prêt à l'usage le tout dans 2.3 Mo (au lieu de 18)
Petite interface d'admin en GUI Windows

Il y a juste à installer MySQL à la main, à part, mais c'est assez
facile.