N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants.
Il fonctionne très bien sous php4 mais rien à faire sous php5.
1) la recherche ne se fait pas
2) l'affichage dans le pop est vide
Merci à celui qui voudras bien me résoudre cet incident.
Amitiés
Début des scripts
INDEX.PHP
<?php /* echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; */?>
<?
//INCLUSION DU FICHIER DE CONNEXION
include("connect.inc");
//CONNEXION A LA BASE
$mysql_id=mysql_connect($server,$user,$pwd);
// Sortir du script en cas de problème de connexion
//au serveur.
if(!$mysql_id){
echo "Problème de connexion à la base : ".mysql_errno().":
".mysql_error()."<br />";
exit;
}
//SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);
//SELECTION DE LA TABLE
$table = 'FP_Complet';
//CONSTRUCTION DE LA CLAUSE 'WHERE'
if ($nom){ // Si un nom est inscrit dans le formulaire
$where=" WHERE nom LIKE '%".$nom. "%'";
if ($prenom){ // Si le prénom est aussi renseigné
$where=" WHERE nom='".$nom."' AND prenom LIKE '%".$prenom. "%'";
}
}
else{ // Les deux champs sont vides
$where="";
}
//CONSTRUCTION DE LA CLAUSE 'LIMIT'
//Nombre d'enregistrements souhaités par page
$nb_par_page=10;
if (!$page){
$ligne_debut=0;
}
else{
$page=$page-1;
$ligne_debut=$page*$nb_par_page;
}
$limit=" LIMIT ".$ligne_debut.", ".$nb_par_page;
//REQUETE SQL
$qry="SELECT * FROM $table".$where." ORDER BY nom " .$limit;
//echo $qry;
//EXECUTION DE LA REQUETE
$result=mysql_query($qry);
if (!$nb_pages) { // Si le nb de pages n'a encore jamais été calculé
if ($nom){
$nb_fiches_max=mysql_num_rows($result);
}
else{
$qry2="SELECT * FROM $table";
//echo $qry2;
$result2=mysql_query($qry2);
$nb_fiches_max=mysql_num_rows($result2);
}
$nb_pages=($nb_fiches_max/$nb_par_page);
$nb_pages=ceil($nb_pages);
}
// MESSAGE AU DESSUS DU TABLEAU
if ($nb_fiches_max > 0){ //S'il y a au moins un résultat
$page=$page+1;
$msg= "page ".$page." sur ".$nb_pages; //On affiche le nombre de
pages sur le total
}
else{
$msg="Désolé, aucun enregistrement trouvé !"; //Sinon, on signale
qu'il n'y a pas de résultats
}
?>
body{
background-color:#ffffff;
font-family: Trebuchet MS,Verdana,Geneva,Arial,Helvetica,sans-serif;
}
table.result{
font-family:Arial,sans-serif;
border-collapse:collapse;
border:1px solid #333333;
margin-top:10px;
width:780px;
text-align: center;
}
td.nom {
padding:5px;
width: 200px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td.prenom {
padding:5px;
width: 250px;
border:1px solid #333333;
text-align: center;
background-color:#087417;
color:#ffffff;
}
td {
border:1px solid #333333;
padding:3px;
text-align: left;
}
span.page{
padding-left: 10px;
}
div.pages{
text-align: center;
padding-top: 5px;
}
</style>
</head>
<div align="center">
<body bgcolor="#E7FFB3"><h1>Les fonctionnaires dans les registres</h1>
Vous trouverez ici les données de fonctionnaires vues dans
les registres.<br>
<strong>Pourquoi cette base?</strong><br>
Le fait que les fonctionnaires soient appelés à se déplacer les rends
difficilement localisables.<br>
<br>
</div><center>
<?
##########################
# Recherche infos pour affichage des infos completes
$r=mysql_query("SELECT id FROM $table ORDER by id DESC LIMIT 1 " );
while($row =mysql_fetch_array($r))
{
echo ("<b><p>Il y a "); ?>
<font color="#006599">
<? echo (" $row[id] "); ?>
</font>
<? echo (" entrées dans la base <br> "); }
//$r=mysql_query("SELECT nom, id FROM $table ORDER by id LIMIT 1 ");
// while($row =mysql_fetch_array($r))
// {
// echo ("Pour "); ?>
<font color="#006599">
<? // echo (" $row[id] "); ?>
</font>
<?// echo (" patronymes dans la base<br></b>"); }
?>
</div>
<!-- FIN FORMULAIRE -->
<br><br>
Interrogez la base par départements<br>
<a href="FP_cartes.php">Lieux des registres</a><br>
<a href="FP_cartes_n.php">Lieux de naissances</a><br>
Lieux de décès à l'étude
<br>
<?php
echo "<br />\n"; //On passe une ligne
include ('../../Pied_page.php'); ?>
</center>
</body>
</html>
<?php /* echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; */?>
<?php
//INCLUSION DU FICHIER DE CONNEXION
include("connect.inc");
//CONNEXION A LA BASE
$mysql_id=mysql_connect($server,$user,$pwd);
// Sortir du script en cas de problème de connexion
//au serveur.
if(!$mysql_id){
echo "Problème de connexion à la base : ".mysql_errno().":
".mysql_error()."<br />";
exit;
}
//SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);
//SELECTION DE LA TABLE
$table = 'FP_Complet'; // Le nom de cette table ne passe pas chez Sivit !
//CONSTRUCTION DE LA CLAUSE 'WHERE'
if ($nom){ // Si un nom est inscrit dans le formulaire
$where=" WHERE Nom LIKE '%". $nom. "%'";
if ($prenom){ // Si le prénom est aussi renseigné
$where=" WHERE nom='". $nom."' AND prenom LIKE '%".$prenom. "%'";
}
}
else{ // Les deux champs sont vides
$where="";
}
//CONSTRUCTION DE LA CLAUSE 'LIMIT'
//Nombre d'enregistrements souhaités par page
$nb_par_page=50;
if (!$page){
$ligne_debut=0;
}
else{
$page=$page-1;
$ligne_debut=$page*$nb_par_page;
}
$limit=" LIMIT ".$ligne_debut.", ".$nb_par_page;
//REQUETE SQL
$qry="SELECT * FROM $table".$where." ORDER BY nom " .$limit;
//echo $qry;
//EXECUTION DE LA REQUETE
$result=mysql_query($qry);
if (!$nb_pages) { // Si le nb de pages n'a encore jamais été calculé
if ($nom){
$nb_fiches_max=mysql_num_rows($result);
}
else{
$qry2="SELECT * FROM $table";
//echo $qry2;
$result2=mysql_query($qry2);
$nb_fiches_max=mysql_num_rows($result2);
}
$nb_pages=($nb_fiches_max/$nb_par_page);
$nb_pages=ceil($nb_pages);
}
// MESSAGE AU DESSUS DU TABLEAU
if ($nb_fiches_max > 0){ //S'il y a au moins un résultat
$page=$page+1;
$msg= "page ".$page." sur ".$nb_pages; //On affiche le nombre de
pages sur le total
}
else{
$msg="Désolé, aucun enregistrement trouvé !"; //Sinon, on signale
qu'il n'y a pas de résultats
}
?>
<!DOCTYPE php PUBLIC "-//W3C//DTD Xphp 1.1//EN"
"http://www.w3.org/TR/xphp11/DTD/xphp11.dtd"><head>
<title>Fonctionnaires</title>
<center><h1>Les fonctionnaires dans les registres</h1></center>
<?php
echo $msg."\n"; // On écrit le message au dessus du tableau
?>
<!-- EN-TÊTES DU TABLEAU -->
<center>
Pour obtenir les informations complètes vous devez accepter les 'pop-up'
de ce site<br><br>
Cliquez sur la ligne de votre choix.
<link rel="stylesheet" href="base_resultat.css" type="text/css">
</table>
</center>
<!-- FIN REMPLISSAGE DU TABLEAU -->
</div>
<!-- LIENS VERS LES AUTRES PAGES -->
<div align="center" class="pages">
<?php
$i=0;
while ($i <= $nb_pages-1):
$j=$i+1;
if ((!$nom) AND (!$prenom)){
echo "<span class=\"page\"><a
href=\"FP_adh.php?page=".$j."&nb_pages=".$nb_pages."\">".$j."</a></span>\n";
}
else if (($nom) AND ($prenom)) {
echo "<span class=\"page\"><a
href=\"FP_adh.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."&prenom=".$prenom."\">".$j."</a></span>\n";
}
else{
echo "<span class=\"page\"><a
href=\"FP_adh.php?page=".$j."&nb_pages=".$nb_pages."&nom=".$nom."\">".$j."</a></span>\n";
}
$i++;
endwhile;
?>
</div>
<!-- FIN LIENS VERS LES AUTRES PAGES -->
<?php
echo "<br />\n"; //On passe une ligne
include ('../../Pied_page.php'); ?>
</body>
</html>
<?
//INCLUSION DU FICHIER DE CONNEXION
include("connect.inc");
//CONNEXION A LA BASE
$mysql_id=mysql_connect($server,$user,$pwd);
// Sortir du script en cas de problème de connexion
//au serveur.
if(!$mysql_id){
echo "Problème de connexion à la base : ".mysql_errno().":
".mysql_error()."<br />";
exit;
}
//SELECTION DE LA BASE
mysql_select_db($base,$mysql_id);
//SELECTION DE LA TABLE
$table = 'FP_Complet'; // Le nom de cette table ne passe pas chez Sivit !
//REQUETE SQL
$qry="SELECT * FROM $table WHERE id='".$id."'";
//echo $qry;
//EXECUTION DE LA REQUETE
$result=mysql_query($qry);
<hr width="50%" />
<?
//Cote
if ($cote){
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Cote du
document: </span><span>$cote</span></div>";
}
//Titre
if ($titre){
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Titre du
document: </span><span>$titre</span></div>";
}
?>
<hr width="50%" />
<?
//Profession
if ($profession){
echo "<div style=\"padding-left: 15px;\"><span
class=\"bold\">Profession: </span><span>$profession</span></div>";
}
//LIGNE NAISSANCE
if (($date_n) AND ($lieu_n) AND ($dpt_n)) { // Si le lieu et la date de
naissance sont présents
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Né le
</span><span>$date_n</span><span class=\"bold\"> à
</span><span>$lieu_n</span> (<span>$dpt_n</span>)</div>";
}
else if (($date_n) AND (!$lieu_n) AND ($dpt_n)){ // Si la date de
naissance est présente mais pas le lieu
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Né le
</span><span>$date_n</span> dans le <span>$dpt_,</span></div>";
}
else if ((!$date_n) AND ($lieu_n) AND ($dpt_n)){ // Si le lieu est
présent sans la date de naissance (si ça existe ;-))
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Né à
</span><span>$lieu_n</span> (<span>$dpt_n</span>)</div>";
}
// Type acte
if ($acte){
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Type
d'acte: </span><span>$acte</span></div>";
}
// Date de l'acte
if ($date_acte){
echo "<div style=\"padding-left: 15px;\"><span class=\"bold\">Date de
l'acte: </span><span>$date_acte</span></div>";
}
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants. Il fonctionne très bien sous php4 mais rien à faire sous php5. 1) la recherche ne se fait pas 2) l'affichage dans le pop est vide
Tu as un message d'erreur ? Par ailleurs ce serait bien que tu nous donnes une URL pour qu'on puisse se rendre compte par nous-mêmes où ça coince, MAIS PAS TOUT DE SUITE ! En tout premier lieu, il faudrait que tu vérifies, au cas où connect.inc contiendrait des identifiants de connection (mot de passe...), qu'il ne soit pas accessible directement par http://...chemin.d.accès.../connect.inc !
<?
Tu autorises les « balises courtes » (short tags en anglais) ? Si oui, c'est OK. Sinon, il faut écrire « <?php ».
//INCLUSION DU FICHIER DE CONNEXION include("connect.inc");
ACHTUNG ! C'est une habitude très dangereuse de mettre un fichier avec identifiants de connexion dans l'arborescence accessible directement depuis l'extérieur, qui plus est avec une extension différence de .php (et donc le risque qu'il soit présenté en clair à l'appelant au lieu d'être exécuté).
Je n'ai pas loupé une étape ? C'est bien l'élément ouvert par <php> qui est fermé par </html> ? Bon, j'ai peut-être un peu trop coupé : essaye de nous mettre les fichiers un par un sur un site tel que cjoint.com par exemple afin que ce soit plus clair.
[...]
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement, -- Olivier Miakinen
Bonjour,
Le 06/04/2009 11:36, Yannick a écrit :
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants.
Il fonctionne très bien sous php4 mais rien à faire sous php5.
1) la recherche ne se fait pas
2) l'affichage dans le pop est vide
Tu as un message d'erreur ? Par ailleurs ce serait bien que tu nous
donnes une URL pour qu'on puisse se rendre compte par nous-mêmes où ça
coince, MAIS PAS TOUT DE SUITE ! En tout premier lieu, il faudrait que
tu vérifies, au cas où connect.inc contiendrait des identifiants de
connection (mot de passe...), qu'il ne soit pas accessible directement
par http://...chemin.d.accès.../connect.inc !
<?
Tu autorises les « balises courtes » (short tags en anglais) ? Si oui,
c'est OK. Sinon, il faut écrire « <?php ».
//INCLUSION DU FICHIER DE CONNEXION
include("connect.inc");
ACHTUNG ! C'est une habitude très dangereuse de mettre un fichier avec
identifiants de connexion dans l'arborescence accessible directement
depuis l'extérieur, qui plus est avec une extension différence de .php
(et donc le risque qu'il soit présenté en clair à l'appelant au lieu
d'être exécuté).
//CONNEXION A LA BASE
[...]
Je ne lis pas tout, c'est bien trop long.
<!DOCTYPE php PUBLIC "-//W3C//DTD Xphp 1.1//EN"
"http://www.w3.org/TR/xphp11/DTD/xphp11.dtd">
;-)
Joli DOCTYPE. Il y a des navigateurs qui le comprennent ?
Je n'ai pas loupé une étape ? C'est bien l'élément ouvert par <php> qui
est fermé par </html> ? Bon, j'ai peut-être un peu trop coupé : essaye
de nous mettre les fichiers un par un sur un site tel que cjoint.com par
exemple afin que ce soit plus clair.
[...]
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui
précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr
tu peux la reporter dans les autres fichiers).
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants. Il fonctionne très bien sous php4 mais rien à faire sous php5. 1) la recherche ne se fait pas 2) l'affichage dans le pop est vide
Tu as un message d'erreur ? Par ailleurs ce serait bien que tu nous donnes une URL pour qu'on puisse se rendre compte par nous-mêmes où ça coince, MAIS PAS TOUT DE SUITE ! En tout premier lieu, il faudrait que tu vérifies, au cas où connect.inc contiendrait des identifiants de connection (mot de passe...), qu'il ne soit pas accessible directement par http://...chemin.d.accès.../connect.inc !
<?
Tu autorises les « balises courtes » (short tags en anglais) ? Si oui, c'est OK. Sinon, il faut écrire « <?php ».
//INCLUSION DU FICHIER DE CONNEXION include("connect.inc");
ACHTUNG ! C'est une habitude très dangereuse de mettre un fichier avec identifiants de connexion dans l'arborescence accessible directement depuis l'extérieur, qui plus est avec une extension différence de .php (et donc le risque qu'il soit présenté en clair à l'appelant au lieu d'être exécuté).
Je n'ai pas loupé une étape ? C'est bien l'élément ouvert par <php> qui est fermé par </html> ? Bon, j'ai peut-être un peu trop coupé : essaye de nous mettre les fichiers un par un sur un site tel que cjoint.com par exemple afin que ce soit plus clair.
[...]
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement, -- Olivier Miakinen
Eric Demeester
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour,
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants. Il fonctionne très bien sous php4 mais rien à faire sous php5. 1) la recherche ne se fait pas 2) l'affichage dans le pop est vide
En plus des pertinentes remarques d'Olivier, je constate que :
INDEX.PHP
[...]
//CONSTRUCTION DE LA CLAUSE 'WHERE' if ($nom){ // Si un nom est inscrit dans le formulaire
Tout ça me fait penser à un problème de transfert de variables d'un script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5, (à vérifier dans un phpinfpo()), il est normal que plus rien ne fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui traite le formulaire :
dans (in) fr.comp.lang.php, Yannick <76@voyeaud.org> ecrivait (wrote) :
Bonjour,
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants.
Il fonctionne très bien sous php4 mais rien à faire sous php5.
1) la recherche ne se fait pas
2) l'affichage dans le pop est vide
En plus des pertinentes remarques d'Olivier, je constate que :
INDEX.PHP
[...]
//CONSTRUCTION DE LA CLAUSE 'WHERE'
if ($nom){ // Si un nom est inscrit dans le formulaire
Tout ça me fait penser à un problème de transfert de variables d'un
script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5,
(à vérifier dans un phpinfpo()), il est normal que plus rien ne
fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui
traite le formulaire :
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour,
N'étant pas très doué je n'arrive pas à modifié les 3 scripts suivants. Il fonctionne très bien sous php4 mais rien à faire sous php5. 1) la recherche ne se fait pas 2) l'affichage dans le pop est vide
En plus des pertinentes remarques d'Olivier, je constate que :
INDEX.PHP
[...]
//CONSTRUCTION DE LA CLAUSE 'WHERE' if ($nom){ // Si un nom est inscrit dans le formulaire
Tout ça me fait penser à un problème de transfert de variables d'un script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5, (à vérifier dans un phpinfpo()), il est normal que plus rien ne fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui traite le formulaire :
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en conséquences. Non je n'ai pas de message d'erreur
Le php4 marche mais pas le php5 Teste avec 'ma' en Nom tu comprendras ce qui ne colle pas
Merci de prendre le temps de m'aider.
-- Yannick VOYEAUD
Olivier Miakinen a écrit :
Bonjour,
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui
précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr
tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en
conséquences.
Non je n'ai pas de message d'erreur
voici les deux URL à tester
http://fp.voyeaud.org:81/ pour le php5
http://fp.voyeaud.org/ pour le php4
Le php4 marche mais pas le php5
Teste avec 'ma' en Nom tu comprendras ce qui ne colle pas
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en conséquences. Non je n'ai pas de message d'erreur
Le php4 marche mais pas le php5 Teste avec 'ma' en Nom tu comprendras ce qui ne colle pas
Merci de prendre le temps de m'aider.
-- Yannick VOYEAUD
Denis Beauregard
Le 06 Apr 2009 20:14:08 GMT, Yannick écrivait dans fr.comp.lang.php:
Olivier Miakinen a écrit :
Bonjour,
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en conséquences. Non je n'ai pas de message d'erreur
Le php4 marche mais pas le php5 Teste avec 'ma' en Nom tu comprendras ce qui ne colle pas
De façon évidente, les paramètres n'arrivent pas à destination.
Je ferais une intégration de tous les fichiers en un fichier unique et affichage des données intermédiaires pour voir où les données se perdent.
Denis
Le 06 Apr 2009 20:14:08 GMT, Yannick <76@voyeaud.org> écrivait dans
fr.comp.lang.php:
Olivier Miakinen a écrit :
Bonjour,
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui
précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr
tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en
conséquences.
Non je n'ai pas de message d'erreur
voici les deux URL à tester
http://fp.voyeaud.org:81/ pour le php5
http://fp.voyeaud.org/ pour le php4
Le php4 marche mais pas le php5
Teste avec 'ma' en Nom tu comprendras ce qui ne colle pas
De façon évidente, les paramètres n'arrivent pas à destination.
Je ferais une intégration de tous les fichiers en un fichier
unique et affichage des données intermédiaires pour voir où les
données se perdent.
Le 06 Apr 2009 20:14:08 GMT, Yannick écrivait dans fr.comp.lang.php:
Olivier Miakinen a écrit :
Bonjour,
Bon, je ne cite pas le reste, il y a déjà fort à faire avec ce qui précède (mais si l'une de mes remarques t'a semblé pertinente, bien sûr tu peux la reporter dans les autres fichiers).
Cordialement,
Bonjour,
Tes remarques sont pertinentes et je modifierais les fichiers en conséquences. Non je n'ai pas de message d'erreur
dans (in) fr.comp.lang.php, Denis Beauregard ecrivait (wrote)
De façon évidente, les paramètres n'arrivent pas à destination.
C'est aussi mon avis, d'autant plus après avoir testé les versions php4 et 5 des pages proposées par Yannick.
Je persiste à penser qu'il y a un problème de configuration entre php4 et php5, et que ce problème concerne register_globals.
-- Eric
Yannick
Eric Demeester a écrit :
Tout ça me fait penser à un problème de transfert de variables d'un script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5, (à vérifier dans un phpinfpo()), il est normal que plus rien ne fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui traite le formulaire :
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il m'a été affiché Nom : ma et ensuite il m'a affiché la même page ne répondant pas à ce critère
donc si je te suis c'est ce type de problème Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers ON ce qui d'ailleurs ne semble pas recommandé de faire.
La variable $nom que tu me signale en début de script est réellement crée à partir du formulaire
Amitiés
-- Yannick VOYEAUD
Eric Demeester a écrit :
Tout ça me fait penser à un problème de transfert de variables d'un
script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5,
(à vérifier dans un phpinfpo()), il est normal que plus rien ne
fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui
traite le formulaire :
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il
m'a été affiché Nom : ma
et ensuite il m'a affiché la même page ne répondant pas à ce critère
donc si je te suis c'est ce type de problème
Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers
ON ce qui d'ailleurs ne semble pas recommandé de faire.
La variable $nom que tu me signale en début de script est réellement
crée à partir du formulaire
Tout ça me fait penser à un problème de transfert de variables d'un script à l'autre. Si register_globals est à On en PHP4 et à Off en PHP5, (à vérifier dans un phpinfpo()), il est normal que plus rien ne fonctionne.
Pour voir si le problème vient de là, essaye ça en début du script qui traite le formulaire :
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il m'a été affiché Nom : ma et ensuite il m'a affiché la même page ne répondant pas à ce critère
donc si je te suis c'est ce type de problème Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers ON ce qui d'ailleurs ne semble pas recommandé de faire.
La variable $nom que tu me signale en début de script est réellement crée à partir du formulaire
Amitiés
-- Yannick VOYEAUD
Yannick
Eric Demeester a écrit :
Je persiste à penser qu'il y a un problème de configuration entre php4 et php5, et que ce problème concerne register_globals.
Re,
Je pense que tu as raison! C'est bien pour cela que j'ai mis TOUS les éléments de compréhension du problème en diffusant le code des 3 pages concernées.
L'un des modérateurs m'a suggéré une page que je suis allé voir et je ne suis pas sûr d'avoir bien compris:
À chaque fois que j'ai une ligne de type URL je dois mettre juste avant $toto=$_REQUEST['toto'] où toto est la variable utilisée dans l'adresse url après le '?' et ce quelque soit leur nombre cad si mon url contient un & pour dire de prendre une seconde variable je dois faire le même rajout pour la seconde variable
Hors apparemment ce n'est pas totalement exact selon un autre modérateur!
Que dois-je faire?
Au passage une bonne poignée de main à l'ami Denis du Québec.
Amitiés
-- Yannick VOYEAUD
Eric Demeester a écrit :
Je persiste à penser qu'il y a un problème de configuration entre php4
et php5, et que ce problème concerne register_globals.
Re,
Je pense que tu as raison!
C'est bien pour cela que j'ai mis TOUS les éléments de compréhension du
problème en diffusant le code des 3 pages concernées.
L'un des modérateurs m'a suggéré une page que je suis allé voir et je ne
suis pas sûr d'avoir bien compris:
À chaque fois que j'ai une ligne de type URL je dois mettre juste avant
$toto=$_REQUEST['toto']
où toto est la variable utilisée dans l'adresse url après le '?' et ce
quelque soit leur nombre cad si mon url contient un & pour dire de
prendre une seconde variable je dois faire le même rajout pour la
seconde variable
Hors apparemment ce n'est pas totalement exact selon un autre modérateur!
Que dois-je faire?
Au passage une bonne poignée de main à l'ami Denis du Québec.
Je persiste à penser qu'il y a un problème de configuration entre php4 et php5, et que ce problème concerne register_globals.
Re,
Je pense que tu as raison! C'est bien pour cela que j'ai mis TOUS les éléments de compréhension du problème en diffusant le code des 3 pages concernées.
L'un des modérateurs m'a suggéré une page que je suis allé voir et je ne suis pas sûr d'avoir bien compris:
À chaque fois que j'ai une ligne de type URL je dois mettre juste avant $toto=$_REQUEST['toto'] où toto est la variable utilisée dans l'adresse url après le '?' et ce quelque soit leur nombre cad si mon url contient un & pour dire de prendre une seconde variable je dois faire le même rajout pour la seconde variable
Hors apparemment ce n'est pas totalement exact selon un autre modérateur!
Que dois-je faire?
Au passage une bonne poignée de main à l'ami Denis du Québec.
Amitiés
-- Yannick VOYEAUD
Eric Demeester
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour Yannick,
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il m'a été affiché Nom : ma et ensuite il m'a affiché la même page ne répondant pas à ce critère
C'est parce qu'il faut appliquer le même traitement à toutes les variables passées à ton script. Il reste peut-être d'autres erreurs, mais il faut procéder par élimination...
donc si je te suis c'est ce type de problème Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers ON ce qui d'ailleurs ne semble pas recommandé de faire.
Mieux vaut laisser register_globals à Of pour des raisons de sécurité, effectivement.
Je vais essayer de t'expliquer le mécanisme...
Dans un formulaire, tu as :
- une script de destination (action="traitement.php") ; - une méthode de transmission des données (GET ou POST) ; - une succession de champs (nom, prenom, etc.) ; - un bouton d'envoi (submit) provoquant l'appel à la page de destination.
Pour utiliser les variables (le contenu des champs du formulaire) dans le script de destination, il faut d'abord les récupérer, car avec register_global à Off, elles ne sont pas directement disponibles, mais contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur les variables, selon la syntaxe que je t'indiquais.
// initialisation des variables (non indispensable mais // je trouve ça plus propre) $nom = ""; $prenom = "";
// récupération des variables. j'utilise $_REQUEST qui permet de // récupérer indifféremment les variables passées et GET ou en // POST, mais chacun ses goûts ;)
// Le nom // On vérifie que la variable existe et est non vide if (isset($_REQUEST['nom']) & !empty($_REQUEST['nom'])) { $nom = $_REQUEST['nom']; }
// Le prénom if (isset($_REQUEST['prenom']) & !empty($_REQUEST['prenom'])) { $prenom = $_REQUEST['prenom']; }
L'opération est à renouveler pour toutes les variables transmises, qu'elles soient contenues dans un formulaire ou passées directement dans l'URL.
S'il n'y a pas d'autres erreurs, ton script devrait s'exécuter correctement.
-- Eric
dans (in) fr.comp.lang.php, Yannick <76@voyeaud.org> ecrivait (wrote) :
Bonjour Yannick,
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il
m'a été affiché Nom : ma
et ensuite il m'a affiché la même page ne répondant pas à ce critère
C'est parce qu'il faut appliquer le même traitement à toutes les
variables passées à ton script. Il reste peut-être d'autres erreurs,
mais il faut procéder par élimination...
donc si je te suis c'est ce type de problème
Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers
ON ce qui d'ailleurs ne semble pas recommandé de faire.
Mieux vaut laisser register_globals à Of pour des raisons de sécurité,
effectivement.
Je vais essayer de t'expliquer le mécanisme...
Dans un formulaire, tu as :
- une script de destination (action="traitement.php") ;
- une méthode de transmission des données (GET ou POST) ;
- une succession de champs (nom, prenom, etc.) ;
- un bouton d'envoi (submit) provoquant l'appel à la page de
destination.
Voir par exemple :
http://www.siteduzero.com/tutoriel-3-13596-les-formulaires.html#ss_part_1
pour des explications détaillées.
Pour utiliser les variables (le contenu des champs du formulaire) dans
le script de destination, il faut d'abord les récupérer, car avec
register_global à Off, elles ne sont pas directement disponibles, mais
contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur
les variables, selon la syntaxe que je t'indiquais.
// initialisation des variables (non indispensable mais
// je trouve ça plus propre)
$nom = "";
$prenom = "";
// récupération des variables. j'utilise $_REQUEST qui permet de
// récupérer indifféremment les variables passées et GET ou en
// POST, mais chacun ses goûts ;)
// Le nom
// On vérifie que la variable existe et est non vide
if (isset($_REQUEST['nom']) & !empty($_REQUEST['nom'])) {
$nom = $_REQUEST['nom'];
}
// Le prénom
if (isset($_REQUEST['prenom']) & !empty($_REQUEST['prenom'])) {
$prenom = $_REQUEST['prenom'];
}
L'opération est à renouveler pour toutes les variables transmises,
qu'elles soient contenues dans un formulaire ou passées directement dans
l'URL.
S'il n'y a pas d'autres erreurs, ton script devrait s'exécuter
correctement.
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour Yannick,
Oui lorsque j'ai rajouté tes lignes et mis 'ma' dans le formulaire il m'a été affiché Nom : ma et ensuite il m'a affiché la même page ne répondant pas à ce critère
C'est parce qu'il faut appliquer le même traitement à toutes les variables passées à ton script. Il reste peut-être d'autres erreurs, mais il faut procéder par élimination...
donc si je te suis c'est ce type de problème Comment je le résoud dans mon script? Je n'ai pas accès à la modif vers ON ce qui d'ailleurs ne semble pas recommandé de faire.
Mieux vaut laisser register_globals à Of pour des raisons de sécurité, effectivement.
Je vais essayer de t'expliquer le mécanisme...
Dans un formulaire, tu as :
- une script de destination (action="traitement.php") ; - une méthode de transmission des données (GET ou POST) ; - une succession de champs (nom, prenom, etc.) ; - un bouton d'envoi (submit) provoquant l'appel à la page de destination.
Pour utiliser les variables (le contenu des champs du formulaire) dans le script de destination, il faut d'abord les récupérer, car avec register_global à Off, elles ne sont pas directement disponibles, mais contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur les variables, selon la syntaxe que je t'indiquais.
// initialisation des variables (non indispensable mais // je trouve ça plus propre) $nom = ""; $prenom = "";
// récupération des variables. j'utilise $_REQUEST qui permet de // récupérer indifféremment les variables passées et GET ou en // POST, mais chacun ses goûts ;)
// Le nom // On vérifie que la variable existe et est non vide if (isset($_REQUEST['nom']) & !empty($_REQUEST['nom'])) { $nom = $_REQUEST['nom']; }
// Le prénom if (isset($_REQUEST['prenom']) & !empty($_REQUEST['prenom'])) { $prenom = $_REQUEST['prenom']; }
L'opération est à renouveler pour toutes les variables transmises, qu'elles soient contenues dans un formulaire ou passées directement dans l'URL.
S'il n'y a pas d'autres erreurs, ton script devrait s'exécuter correctement.
-- Eric
Yannick
Eric Demeester a écrit :
Pour utiliser les variables (le contenu des champs du formulaire) dans le script de destination, il faut d'abord les récupérer, car avec register_global à Off, elles ne sont pas directement disponibles, mais contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur les variables, selon la syntaxe que je t'indiquais.
Bonsoir,
En ayant vraiment souffert je crois avoir trouvé! C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête SQL de la page qui va recevoir les informations.
J'ai renommé mes fichiers en index_2.php pour tester et je crois que cela marche. Il ne resterait plus que les bas de pages à traiter de la même façon.
Pour récapituler je ne touche pas à index.php mais je tritures FP_adh.php et Pop_FP_Adh.php
Où puis-je faire passer les deux copies (avant et après) pour servir à d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de passage 'forcé' de php4 à php5?
Amitiés
Eric Demeester a écrit :
Pour utiliser les variables (le contenu des champs du formulaire) dans
le script de destination, il faut d'abord les récupérer, car avec
register_global à Off, elles ne sont pas directement disponibles, mais
contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur
les variables, selon la syntaxe que je t'indiquais.
Bonsoir,
En ayant vraiment souffert je crois avoir trouvé!
C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête
SQL de la page qui va recevoir les informations.
J'ai renommé mes fichiers en index_2.php pour tester et je crois que
cela marche. Il ne resterait plus que les bas de pages à traiter de la
même façon.
Pour récapituler je ne touche pas à index.php mais je tritures
FP_adh.php et Pop_FP_Adh.php
Où puis-je faire passer les deux copies (avant et après) pour servir à
d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de
passage 'forcé' de php4 à php5?
Pour utiliser les variables (le contenu des champs du formulaire) dans le script de destination, il faut d'abord les récupérer, car avec register_global à Off, elles ne sont pas directement disponibles, mais contenues dans un tableau ($_GET ou $_POST).
On fait cela au début du script, avant d'effectuer des traitements sur les variables, selon la syntaxe que je t'indiquais.
Bonsoir,
En ayant vraiment souffert je crois avoir trouvé! C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête SQL de la page qui va recevoir les informations.
J'ai renommé mes fichiers en index_2.php pour tester et je crois que cela marche. Il ne resterait plus que les bas de pages à traiter de la même façon.
Pour récapituler je ne touche pas à index.php mais je tritures FP_adh.php et Pop_FP_Adh.php
Où puis-je faire passer les deux copies (avant et après) pour servir à d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de passage 'forcé' de php4 à php5?
Amitiés
Eric Demeester
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour,
En ayant vraiment souffert je crois avoir trouvé! C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête SQL de la page qui va recevoir les informations.
Oui.
Tu peux généraliser à tout passage de variables entre scripts en respectant cet ordre :
1. on initialise les variables 2. on les récupère via $_REQUEST en vérifiant au passage si elles existent et sont non vides) 3. on effectue les traitements associés aux variables (interrogation de la base de données ou tout autre traitement) 4. on affiche les résultats
J'ai renommé mes fichiers en index_2.php pour tester et je crois que cela marche. Il ne resterait plus que les bas de pages à traiter de la même façon.
Même principe que ci-dessus, il faut récupérer les variables et les traiter _avant_ de les afficher. Après, l'endroit et l'ordre dans lequels elles seront affichées dans la page importe peu...
Pour récapituler je ne touche pas à index.php mais je tritures FP_adh.php et Pop_FP_Adh.php
index.php envoie des informations à telle ou telle page, elles sont récupérées dans la page de destination, ensuite on applique l'ordre indiqué ci-dessus, peu importe le nom de la page (ou du script) de destination, c'est généralisable à la quasi-totalité des cas.
Où puis-je faire passer les deux copies (avant et après) pour servir à d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de passage 'forcé' de php4 à php5?
Le fait d'avoir rencontré ce problème lors du passage de php4 à php5 est un cas particulier que tu as rencontré. La plupart des hébergeurs que je connais ont imposé register_globals à Off dès php4, c'est d'ailleurs je crois sa configuration par défaut.
La vraie difficulté est de comprendre les effets de register_globals sur le comportement de PHP en terme de transmission d'informations entre pages, c'est très largement documenté dans des tutoriels disponibles en ligne. L'essentiel est que tu ais compris le mécanisme et résolu ton problème. Inutile je pense, compte tenu du grand nombre de sites traitant déjà de cela, d'écrire une documentation supplémentaire, même si cette proposition t'honore :)
Amicalement,
-- Eric
dans (in) fr.comp.lang.php, Yannick <76@voyeaud.org> ecrivait (wrote) :
Bonjour,
En ayant vraiment souffert je crois avoir trouvé!
C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête
SQL de la page qui va recevoir les informations.
Oui.
Tu peux généraliser à tout passage de variables entre scripts en
respectant cet ordre :
1. on initialise les variables
2. on les récupère via $_REQUEST en vérifiant au passage si elles
existent et sont non vides)
3. on effectue les traitements associés aux variables (interrogation
de la base de données ou tout autre traitement)
4. on affiche les résultats
J'ai renommé mes fichiers en index_2.php pour tester et je crois que
cela marche. Il ne resterait plus que les bas de pages à traiter de la
même façon.
Même principe que ci-dessus, il faut récupérer les variables et les
traiter _avant_ de les afficher. Après, l'endroit et l'ordre dans
lequels elles seront affichées dans la page importe peu...
Pour récapituler je ne touche pas à index.php mais je tritures
FP_adh.php et Pop_FP_Adh.php
index.php envoie des informations à telle ou telle page, elles sont
récupérées dans la page de destination, ensuite on applique l'ordre
indiqué ci-dessus, peu importe le nom de la page (ou du script) de
destination, c'est généralisable à la quasi-totalité des cas.
Où puis-je faire passer les deux copies (avant et après) pour servir à
d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de
passage 'forcé' de php4 à php5?
Le fait d'avoir rencontré ce problème lors du passage de php4 à php5 est
un cas particulier que tu as rencontré. La plupart des hébergeurs que je
connais ont imposé register_globals à Off dès php4, c'est d'ailleurs je
crois sa configuration par défaut.
La vraie difficulté est de comprendre les effets de register_globals sur
le comportement de PHP en terme de transmission d'informations entre
pages, c'est très largement documenté dans des tutoriels disponibles en
ligne. L'essentiel est que tu ais compris le mécanisme et résolu ton
problème. Inutile je pense, compte tenu du grand nombre de sites
traitant déjà de cela, d'écrire une documentation supplémentaire, même
si cette proposition t'honore :)
dans (in) fr.comp.lang.php, Yannick ecrivait (wrote) :
Bonjour,
En ayant vraiment souffert je crois avoir trouvé! C'est à mettre, $nom=$_REQUEST['nom'], avant le traitement de la requête SQL de la page qui va recevoir les informations.
Oui.
Tu peux généraliser à tout passage de variables entre scripts en respectant cet ordre :
1. on initialise les variables 2. on les récupère via $_REQUEST en vérifiant au passage si elles existent et sont non vides) 3. on effectue les traitements associés aux variables (interrogation de la base de données ou tout autre traitement) 4. on affiche les résultats
J'ai renommé mes fichiers en index_2.php pour tester et je crois que cela marche. Il ne resterait plus que les bas de pages à traiter de la même façon.
Même principe que ci-dessus, il faut récupérer les variables et les traiter _avant_ de les afficher. Après, l'endroit et l'ordre dans lequels elles seront affichées dans la page importe peu...
Pour récapituler je ne touche pas à index.php mais je tritures FP_adh.php et Pop_FP_Adh.php
index.php envoie des informations à telle ou telle page, elles sont récupérées dans la page de destination, ensuite on applique l'ordre indiqué ci-dessus, peu importe le nom de la page (ou du script) de destination, c'est généralisable à la quasi-totalité des cas.
Où puis-je faire passer les deux copies (avant et après) pour servir à d'autres. Je ne dois sûrement pas être le seul à avoir ce soucis de passage 'forcé' de php4 à php5?
Le fait d'avoir rencontré ce problème lors du passage de php4 à php5 est un cas particulier que tu as rencontré. La plupart des hébergeurs que je connais ont imposé register_globals à Off dès php4, c'est d'ailleurs je crois sa configuration par défaut.
La vraie difficulté est de comprendre les effets de register_globals sur le comportement de PHP en terme de transmission d'informations entre pages, c'est très largement documenté dans des tutoriels disponibles en ligne. L'essentiel est que tu ais compris le mécanisme et résolu ton problème. Inutile je pense, compte tenu du grand nombre de sites traitant déjà de cela, d'écrire une documentation supplémentaire, même si cette proposition t'honore :)