Bonjour j'ai récupéré un site en php qu'une ancienne personne avait créé car je dois amélioré un truc mais mon problème c'est que cette ancienne personne avait créer des boutons de nom différent mais de valeur identique qui faisait que des que vous cliquez sur un de ses bouton et selon le nom qu'il a, des valeurs differentes s'affichent mais son systéme ne marche plus chez moi c'est à dire que la variable qui gére cette valeur reste vide je sais pas si j'ai pas oublié un truc qui permet de remettre en marche ce systeme voici un exemple:
<?php if ($status == "") { ?>
<? }
elseif ($status == "Chercher un dossier") {
if ($totalRows_chercherdossier > 0){
echo $row_chercherdossier['id_do'];
....
{?>
<?php }
elseif ($status == "Consulter") { ?>
j'ai remarqué que si je mettais le nom entre guillemet dans la variable j'ai la page qui affiche les donnés selon le nom que j'ai rentré.
j'espére avoir été assez claire merci pour toute personne qui peuvent m'aider.
# register_global
Posté par Uld (site web personnel) . Évalué à 2.
Si le site est vieux et mal codé, je suppose qu'à l'époque le register_globals était à ON et toi maintenant tu fonctionne avec ce paramètre à OFF. Tu as raison c'est plus sécure mais du coup ca marche plus.
Essaye de recuperer tes variables $status par $_REQUEST['status'], ca devrait être bcp mieux...
# ameliorer le code
Posté par nanard . Évalué à 2.
C'est juste une recommandation en fait, utilise la fonction adéquate pour vérifier que la variable est n'est pas null :
pareille pour içi, strcmp semble plus indiqué, quoi que c'est pas obligé:
par:
enfin je sais pas si c'est une erreur de retranscription de ton code mais :
le passage mis en gras cad les indicateurs de fin de code php, mis içi moi je trouve ça bizarre.
Désolé de ne pas répondre à ta question mais le commentaire précèdant semble être pertinent.
Allez tous vous faire spéculer.
[^] # Re: ameliorer le code
Posté par Sebastian . Évalué à 1.
Si on se lance dans les discussions concernant la sécurité lors du passage de valeur, on en aura jamais fini :D
On peut aussi vérifier le type des variables, ... etc etc
La sécurité, un vaste sujet. Je dirais même plus, très très vaste.
Pour le problème du sujet initial, je crois bien que cela provient de la directive "register_globals = off".
Donc utiliser $_GET[], $_POST[], ...
Effectivement Elie, comme tu le disais, ne pas oublier de vérifier l'affectation de la variable via "isset" pour éviter d'avoir des problèmes de notice.
Surtout si on travail en error_reporting level E_ALL.
# registre global
Posté par tese . Évalué à 1.
je vous avoue être moyen en php mais voila ça ne marche pas dans le sens que mes donné n'apparaisse pas mais quand je fais un $_REQUEST['status']; et quand ensuite j'exécute ce code echo $_REQUEST['status']; pour voir ce qu'il affiche lorsque je clique sur le bouton il y a bien le mot 'Chercher un dossier' qui apparaît mais l'exécution ne s'effectue pas je comprends pas.
le $_REQUEST['status']; je le met avant le premier " if ($status == "")".
je sais pas s'il faut que je le répète plusieurs fois avant chaque if($status==....) ou bien elseif($status=....) je vois bien que mon problème ne vient pas de ma base de donné car du moment que je fais $status="Chercher un dossier"; mes donné s'affiche dessuite
Voici les donnés que possède mes boutons
<input name="status" type="submit" id="status" value="Chercher un dossier">
<input type="submit" name="Submit2" value="Ajouter">
Ps pour répondre a élie lors du passage en gras de { ?> c'est qu'enfet l'ancienne personne exécute les donné après
exemple :
<?php }elseif ($status == "Consulter") { ?>
<?php echo $row_consulterdossier['nom']; ?>
<?php echo $row_consulterdossier['prenom']; ?>
.....
<?php }elseif ($status == "Modifier") { ?>
j'espère avoir été clair
Merci d'avance pour l'aide que vous m'apportez
[^] # Re: registre global reparait en partie
Posté par tese . Évalué à 1.
et ensuite j'ai fais " if ($test == "")". mais à ce que je vois par la suite lorsque je veux consulter une personne les donner de cette personne ne s'affiche plus les case reste vide alors que avant ça marcher n'y a t'il pas un moyen de réactiver la feuille comme quand elle marche sur le net.
merci d'avance
[^] # Re: registre global reparait en partie
Posté par nanard . Évalué à 1.
<form method="post" action="script.php">
<input type="text" name="nom" />
le champ interessant içi c'est l'option method, celon qu'elle soit a post ou get tu vas recuperer la valeur du input nom avec avec:
$_POST["nom"]
si method = get alors:
$_GET["nom"]
et oui pour repondre si tu veux tester ta vlaleur ca donne
if($_GET["nom] == "") {...}
ou comme je le preconnise
if(isset($_POST["nom"])) {...}
isset : renvoie vrai si la variable est definie et à une valeur, faux sinon.
Allez tous vous faire spéculer.
[^] # Re: registre global reparait en partie
Posté par tese . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.