[PHP] PROBLEME AVEC LES VARIABLES

Fermé
Profil bloqué - Modifié par jordane45 le 23/07/2015 à 22:23
 Profil bloqué - 24 juil. 2015 à 07:51
Bonjour, s'il vous plait. Aidez-moi. Voila mon objectif:
Je tente de passer deux variables en GET, tel sorte que quand on sera sur la page connexion et que le code d'erreur sera egale a différentes valeurs, que les messages d'erreurs appropriés s'affichent.
Jai deja fait un truc du genre:
if(isset($_GET['page'])){
Switch($_GET['page']){
Case 'connexion':
if($_GET['err']==='iden'){
$msg='identifiant mauvai';
$formulaire=true;
} else {
$msg='Bienvenue sur notre page de connexion';
$formulaire=true;
}
//code qui affiche la page de connexion au site et qui traite aussitôt les informations recu de l'utilisateur. 
break;
................
default;
//code qui affiche la page index du site
}
?>

Aidez moi a avoir automatiquement des adresses du type
www.monsite.com/index.php?page=connexion&err=iden
A voir également:

3 réponses

Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
23 juil. 2015 à 21:26
N'oublie pas de mettre les balises prévues par le forum pour la compréhension du code.

<?php 
if(isset($_GET['page']) && $_GET['page']=='connexion'))
{ 
	$msg="Bonjour !";

	if(isset($_GET['err']) && $_GET['err']=='iden' )
		$msg="Erreur";
	
	echo $msg;
}?>


Si tu tiens a ton switch case il faudra enlever la majuscule au "Switch" !
0
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704
Modifié par jordane45 le 23/07/2015 à 22:49
Bonjour,

Tout d'abord... il est préférable de récupérer les variables PROPREMENT avant de les utiliser... via ISSET ou EMPTY et l'écriture ternaire
Par la suite.. cela simplifie l'écriture du code :

$page = !empty($_GET['page']) ? $_GET['page'] : NULL;
$err = !empty($_GET['err']) ? $_GET['err'] : NULL;

if($page){
 switch($page){
  case "connexion":
   $formulaire=true;
   if($err ==='iden'){
    $msg='identifiant mauvai';
   } else {
    $msg='Bienvenue sur notre page de connexion';
   }
   //code qui affiche la page de connexion au site et qui traite aussitôt les informations recu de l'utilisateur. 
   break;
  
   default:
    //code qui affiche la page index du site
    header("location:index.php");
    break;
  }
}



Ensuite... pour ce qui est de ta question... c'est très confus;...

Tu veux quoi ?
- savoir comment rediriger vers une page ? (header location sera là pour ça)
- Comment Inclure une page ? dans ce cas... include ou require .....
- Comment transmettre ta variable $msg à d'autres page ? ... là tu pourrais utiliser les variables de session par exemple..


Bref... c'est quoi la question exactement ??


Cordialement,
Jordane
0
Profil bloqué
23 juil. 2015 à 22:46
je cherche a faire apparaître dans la barre d'adresse juste quand la premiere erreur apparaitra une url de type www.monsite.com/index.php?page=connexion&erreur1
0
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704 > Profil bloqué
23 juil. 2015 à 22:48
Et cette erreur.... elle apparait à cause de quoi ??
Sûrement pas le code que tu nous as montré....

Vu qu'il semble s'agir d'un Problème d'indentifiants.... cela résulte donc d'un formulaire de connexion... et du code php qui va avec.
Il aurait été bien de nous le montrer !

Quoi qu'il en soit.. je pense t'avoir donné la solution... HEADER LOCATION.
header("location:tapage.php?page=titi&err=toto");

https://forums.commentcamarche.net/forum/affich-37622003-redirection-php-redirect-header
0
Profil bloqué
23 juil. 2015 à 23:48
Merci tres sincèrement. Donc pour faire apparaître des variables dans l'url apres que l'utilisateur ai saisi par exemple un mauvais identifiant, la solution est juste une redirection? .
0
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704
24 juil. 2015 à 00:24
pour faire apparaître des variables dans l'ur [...] la solution est juste une redirection? .

Oui.

Mais, et cela rejoint ton autre discussion..., il existe d'autres méthodes.
Et dans le cas que tu nous présentes ici.... l'utilisation des variables de SESSION me semble la plus appropriée. (tu pourrais, par exemple, directement passer ta variable $msg )

Par exemple :
<?php
//page1.php

// Démarrage "propre" des Sessions
if(session_id()==""){
 session_start();
}

//récupération des variables
$login = !empty($_POST['login']) ? $_POST['login'] : NULL;
$pwd = !empty($_POST['pwd']) ? $_POST['pwd'] : NULL;

$msg = array();
//Traitement du formulaire
if(isset($_POST)){
 if($login && $pwd){
   $msg[] = "Vous avez bien saisie les informations login :"$login ."  et password :".$pwd;
 }else{
  $msg[] = "Erreur. Merci de renseigner le login et le password";
 }
 //On stocke la variable msg dans une variable session
 $_SESSION['msg'] = $msg;

 //redirection vers la page2
 header("location:page2.php");
}

?>
<html>
<head>
<title>Formulaire d'identification</title>
</head>

<body>
<!-- action="" signifie que tu recharges la page actuelle -->
<form action="" method="post">
 Votre login : <input type="text" name="login">
 <br />
  Votre mot de passe : <input type="password" name="pwd"><br />
  <input type="submit" value="Connexion">
</form>

</body>
</html>



Et dans la page2 :
<?php
//page2.php
// Démarrage "propre" des Sessions
if(session_id()==""){
 session_start();
}

//On regardes si la variable session msg existe.
// si oui... on affiche les messages.

$arr_msg = !empty($_SESSION['msg']) ? $_SESSION['msg'] : array();

foreach($arr_msg as $message){
 echo "<br>".$message;
}
?>






0
Profil bloqué
24 juil. 2015 à 00:44
voila . cest bien ce que j'ai l'habitude de faire. mais obtient toujours des urls de types www.monsite.com/index.php

hors je constate que le faite de passer des variables par lurl, z bien un avantage. ou que me suggerez vous?
0
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704
24 juil. 2015 à 00:57
Personnellement je limite énormément l'utilisation des variables GET dans mes DEV.
Le fait que les variables soient visibles dans l'URL a tendance à inciter les internautes à les modifier manuellement...histoire de voir ce que ça fera.... ^^

Comme miramaze te l'a indiqué dans ton autre discussion...(la dessus je suis d'accord avec lui....) ... l'utilisation des variables GET devraient principalement se limiter au passage d'infos telles qu'un ID par exemple.

Pour ce qui est des formulaires... j'utilise essentiellement du POST.
Et pour le reste.. des SESSIONS ou des COOKIES
0
Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
24 juil. 2015 à 01:23
Le GET est quand même très utile pour que les utilisateurs d'un site puissent, en partageant l'URL d'une page à quelqu'un, tomber précisément sur ce qu'ils cherchent (en tout cas cela m'a beaucoup servi pour ce genre de cas).

Après il est possible de coder des restrictions pour que l'utilisateur soit renvoyé sur un 404 quand il essaye de faire "le petit malin" en tapant autres choses que ce qui est prévu ! Mais cela demande un peu de travail de "protection" supplémentaire.
0
jordane45 Messages postés 38299 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 novembre 2024 4 704 > Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017
24 juil. 2015 à 01:34

Le GET est quand même très utile pour que les utilisateurs d'un site puissent, en partageant l'URL d'une page à quelqu'un, tomber précisément sur ce qu'ils cherchent (en tout cas cela m'a beaucoup servi pour ce genre de cas).

Oui.... et les "infos" présentes dans l'url... ne sont rien d'autre que le nom d'une page , éventuellement la variable de langue (si on fait un site multilingue par exemple) et/(ou) des ID (en très grande majorité des cas)...
Pour les autres données... les autres méthodes sont préférées.... (et ainsi on évite de créer des URL de 10 km de long avec 50 variables dedans... ^^ )
0
Yuh12 Messages postés 184 Date d'inscription mercredi 7 mai 2014 Statut Membre Dernière intervention 28 septembre 2017 24
Modifié par Yuh12 le 24/07/2015 à 04:01
Je pense que cela peut-être un peu plus varié, page et id, certes sont les principaux...

Mais on peut aussi mettre le numéro de la page, un système d'onglet, de tri des éléments (date, ordre..), un pseudo (si le site possède une page de même template pour chaque utilisateur), enfin pleins de petites spécificités qui peuvent :
- soit faciliter l'organisation du site de la même manière qu'avec les page=...
- soit lors de partages d'URL, sur les réseaux sociaux par exemple, ajouter de la précision !

Je peux me tromper ! Mais sans parler de 10km on peut s'y retrouver :D

EDIT : Je parle du GET en général, pour le post je suis d'accord que d'autres solutions sont préférables pour la gestion d'erreurs.
0