Aller au contenu

Sujets conseillés

Posté

Bonjour,

Cela fait presque une semaine que je bataille pour mettre en ligne mon site via un serveur dédié.

J'ai réussi tant bien que mal à installer la base de données Mysql via phpmyadmin qui est fourni.

j'ai installé le site sous la racine www du serveur de telle sorte que le site est accessible sur le web !

tout va bien alors me direz vous !

Et bien non, rien ne va et ce parce que aucun des formulaires que j'ai installé ne marche !

Et pourtant, sur ma machine en localhost, c'est un vrai bonheur !

et tous ce que j'ai essayé a échoué. Du coup, je me prends pour un nullard (chose que je suis de par le fait). Donc je cherche un sauveur, non, Mon sauveur !

voici le code d'un formulaire :

au niveau de la déclaration du formulaire, il s'agit d'un formulaire à mot de passe classique :

<form name="id" method="post" action="adminanalyses.php">

<input type="hidden" name="posted" value="1">

<input name="UserID" type="text" size="10" maxlength="10" >

<input name="Password" type="password" size="10" maxlength="10">

<input type="submit" name="Submit" value="OK">

</form>

comme vous pouvez le voir il renvoie à la page adminanalyses.php et j'utilise la méthode "post", j'ai mis un formulaire caché qui va me permettre le traitement une fois que l'on aura appuyé sur le bouton OK (oui, je sais c'est pas très original !)

Au niveau du traitement du formulaire, pour la faire simple :

j'ai mis dans les premières lignes

<?php

if($posted)

{

echo"Bon";

}

?>

Je lui demande juste de m'afficher avant le début de la page qui est rappelée une fois qu'on a cliqué sur le bouton OK le terme "bon". je lui demande même pas d'aller voir si le login et le mot de passe correspondent, non, rien de tout cela, je lui demande juste un "bon" pour voir si la formulaire est éxecuté et là patatra, mon serveur n'en fait qu'à sa tête, il me renvoie bien la page avec le formulaire (preuve que l'adresse notifiée au niveau de la déclaration du formulaire est bonne), mais sans le fameux "Bon".

J'ai donc ensuite essayé les soluces suivantes :

2ième:

<?php

if($posted = 1)

{

echo"bon";

}

?>

3ième

<?php

if($posted == 1)

{

echo"bon";

}

?>

et comble du raffinement, j'ai inséré le code

<?php

if($HTTP_POST_VARS[$posted]== 1)

{

echo"bon";

}

?>

vu qu'en faisant le code

print("\n<pre>\n");

print_r(get_defined_vars());

print("</pre>");

j'ai vu qu'il reconnaissait dans ses variables :

$HTTP_POST_VARS[$posted]

mais visiblement, on ne fait pas afficher un "Bon" à un ordi qui n' a pas soif !!!

Du coup, cela fait trois jours que je m'arrache le peu de cheveux qui me restent .

Dons je me demande en fait s'il y a pas un problème au niveau de la configuration du serveur apache !

il est configuré en PHP4 et voilà tous les modules qui sont sélectionnés

http_core

mod_env

mod_log_config

mod_mime

mod_negotiation

mod_status

mod_include

mod_autoindex

mod_dir

mod_cgi

mod_asis

mod_imap

mod_actions

mod_userdir

mod_alias

mod_rewrite

mod_access

mod_auth

mod_so

mod_setenvif

mod_ssl

mod_php4

mod_gzip

Autant le dire pour moi, c'est de l'hébreu !

Mais peut être y a t'il un de ces modules qui ne devrait pas être sélectionné !

ou peut être qu'il y en a un qui n'est pas sélectionné dans la liste suivante et qui devrait l'être !

mod_auth_dbm

mod_autoindex

mod_browser

mod_cache

mod_cern_meta

mod_disk_cache

mod_ext_filter

mod_info

mod_log_agent

mod_log_common

mod_log_referer

mod_mem_cache

mod_mime_magic

mod_perl

mod_php

mod_php3

mod_proxy

mod_speling

mod_suexec

mod_vhost_alias

mpm_netware

mpm_winnt

perchild

prefork

worker

là encore, quand je vois tout ceci, j'en perds mon latin qui était assez médiocre jusque là.

Bon (parce que moi je ne suis pas avare de ce mot là contrairement à qqu'un qui ne fait que m'énerver depuis 3/4 jours), si vous avez la solution et que vous voulez enfiler votre panoplie de super héros, je crois que c'est le moment !

Je vous serais à jamais éternellement reconnaissant !

Peut être même que j'irai jusqu'à vous préter ma femme (non faut quand même pô déconner non plus !).

Merci d'avance

Une personne en détresse qui martyrise son entourage pour passer ses nerfs !

Posté

Bonjour,

la variable $HTTP_POST_VARS n'est plus d'actualité. Il faut utiliser la variable $_POST à la place.

Donc, essaies :

foreach($_POST as $k => $v)
echo"<br>variable : ".$k." -> valeur : ".$v;

Anonymus.

Posté

Arf, il n'y a pas de quoi... mais suis plutot les conseil d'Anonymus, il est plus à la page que moi :)

Posté

Donc, pourquoi ca ne marchait pas ?

Le fait de marquer :

$HTTP_POST_VARS["posted"] fait référence à l'index 'posted' du tableau 'HTTP_POST_VARS'.

Marquer $HTTP_POST_VARS[posted] fait référence à l'index de la constante posted du tableau 'HTTP_POST_VARS'.

Comme celle ci n'est pas définie, la variable 'HTTP_POST_VARS[non definie]' n'existe pas, et donc ne peut être égale à '1'.

CQFD ;)

Posté

Domdom,

Pour donner une raison à cette différence de "comportement", il suffit de regarder le fichier "php.ini" (dans /usr/local/lib/)

Les versions récentes de php ont la variable register_globals mise à off par défaut.

C'est une simple question de sécurité, car cela rend le hacking des scripts plus difficile. :hypocrite:

Dan

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...