domdom Posté 27 Septembre 2004 Posté 27 Septembre 2004 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 !
Titag Posté 27 Septembre 2004 Posté 27 Septembre 2004 Salut, Essaye : if ($HTTP_POST_VARS["posted"] == 1) { echo "Bon";}
Anonymus Posté 27 Septembre 2004 Posté 27 Septembre 2004 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.
domdom Posté 27 Septembre 2004 Auteur Posté 27 Septembre 2004 Titag, c'est mon topain !!!! merci, Titag, ça marche ! alors merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii !
Titag Posté 27 Septembre 2004 Posté 27 Septembre 2004 Arf, il n'y a pas de quoi... mais suis plutot les conseil d'Anonymus, il est plus à la page que moi
Anonymus Posté 27 Septembre 2004 Posté 27 Septembre 2004 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
domdom Posté 27 Septembre 2004 Auteur Posté 27 Septembre 2004 merci anonymus pour tous tes éclaircissements.
Dan Posté 27 Septembre 2004 Posté 27 Septembre 2004 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. Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant