[HTML/PHP] redirections soumises à conditions
Fermé
owi
-
25 juil. 2007 à 11:58
david77179 Messages postés 157 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - 13 août 2010 à 12:25
david77179 Messages postés 157 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - 13 août 2010 à 12:25
A voir également:
- [HTML/PHP] redirections soumises à conditions
- Editeur html - Télécharger - HTML
- Easy php - Télécharger - Divers Web & Internet
- Votre compte a été désactivé pour violation de nos conditions d’utilisation - Guide
- Espace html ✓ - Forum HTML
- Retour a la ligne php ✓ - Forum PHP
9 réponses
Salut,
Malheureusement tu devra faire avec les headers!
header(Location:tonadresse);
fais attention de ne pas ecrire de HTML avant.
A mon tour pour la question :
pourquoi ne veux tu pas passer par un header?
Malheureusement tu devra faire avec les headers!
header(Location:tonadresse);
fais attention de ne pas ecrire de HTML avant.
A mon tour pour la question :
pourquoi ne veux tu pas passer par un header?
J appréhende les soucis pour intégrer les header dans mon code, en fait je ne vois pas comment adapter la chose pour placer un header dans mes conditions, en faisant en sorte de ne pas mettre de html devant (en fait ca me parait incompatible dans le cas précédent).
En bref, je sais pas ou placer mes header :(
En bref, je sais pas ou placer mes header :(
re,
alors en fait ton header dois etre place avant tout envoi de HTML (meme la balise <br> compte!)
pour mes identification c'est le premier truc que je fais.
Dans le cas de cette page il ne devrait pas y avoir d'erreur (sauf si tu affiches le formulaire dans la meme page que le script de verification) car tu n'ecris du HTML que s'il y a une erreur et donc tu ne fais pas de redirection.
je repetes : si ton script de verification est tout seul dans ta page tu n'aura pas de problem, tu as juste a faire le header a la place d'afficher ton lien.
alors en fait ton header dois etre place avant tout envoi de HTML (meme la balise <br> compte!)
pour mes identification c'est le premier truc que je fais.
Dans le cas de cette page il ne devrait pas y avoir d'erreur (sauf si tu affiches le formulaire dans la meme page que le script de verification) car tu n'ecris du HTML que s'il y a une erreur et donc tu ne fais pas de redirection.
je repetes : si ton script de verification est tout seul dans ta page tu n'aura pas de problem, tu as juste a faire le header a la place d'afficher ton lien.
Utilisateur anonyme
25 juil. 2007 à 15:49
25 juil. 2007 à 15:49
Remplace ça
Par ça
if($row["fonction"] == "admin")//les infos correspondent à un compte admin echo("<a href=\"admin.php\"/>page admin</a>");//on redirige vers la partie admin } else if($row["fonction"] == "utilisateur"){//les infos correspondent à un compte utilisateur echo("<a href=\"utilisateur.php\"/>page notaire</a>");//on redirige vers la partie utilisateur }
Par ça
if($row["fonction"] == "admin") //les infos correspondent à un compte admin header('Location: admin.php');//on redirige vers la partie admin else if($row["fonction"] == "utilisateur") //les infos correspondent à un compte utilisateur header('Location: utilisateur.php');//on redirige vers la partie utilisateur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'avais déjà essayé la solution des header:
<body>
<? ///!\
$message="";
$db=mysql_connect("***", "***", "***");
mysql_select_db("nombdd",$db);
$result = mysql_query("SELECT * FROM Utilisateurs WHERE nom = '". $_POST["login"] ."'");
if(!$result){
echo("Une erreur est survenue lors de la tentative de connexion");
}
else{
if(mysql_num_rows($result) == 0){
echo("Le nom d'utilisateur " . $_POST["nom"] . " n'existe pas");
}
else{
$row = mysql_fetch_array($result);
if($_POST["password"] != $row["mdp"]){
echo("Votre mot de passe est incorrect");
}
else{
mysql_close();
if($row["fonction"] == "admin"){
header('Location: admin.php');
}
else if($row["fonction"] == "utilisateur"){
header('Location: utilisateur.php');
}
}
}
}
?>
</body>
Comme je m y attendais, j obtiens l erreur:
Warning: Cannot modify header information - headers already sent by (output started at /home.3/site/www/dossier/login.php:9) in /home.3/site/www/dossier/login.php on line 31
ou la ligne 9 en cause correspond au ///!\
<body>
<? ///!\
$message="";
$db=mysql_connect("***", "***", "***");
mysql_select_db("nombdd",$db);
$result = mysql_query("SELECT * FROM Utilisateurs WHERE nom = '". $_POST["login"] ."'");
if(!$result){
echo("Une erreur est survenue lors de la tentative de connexion");
}
else{
if(mysql_num_rows($result) == 0){
echo("Le nom d'utilisateur " . $_POST["nom"] . " n'existe pas");
}
else{
$row = mysql_fetch_array($result);
if($_POST["password"] != $row["mdp"]){
echo("Votre mot de passe est incorrect");
}
else{
mysql_close();
if($row["fonction"] == "admin"){
header('Location: admin.php');
}
else if($row["fonction"] == "utilisateur"){
header('Location: utilisateur.php');
}
}
}
}
?>
</body>
Comme je m y attendais, j obtiens l erreur:
Warning: Cannot modify header information - headers already sent by (output started at /home.3/site/www/dossier/login.php:9) in /home.3/site/www/dossier/login.php on line 31
ou la ligne 9 en cause correspond au ///!\
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
25 juil. 2007 à 17:01
25 juil. 2007 à 17:01
Ben oui, tu as laissé la balise <body> devant !
Tente plutôt ça :
Tente plutôt ça :
<? ///!\ $message=""; $db=mysql_connect("***", "***", "***"); mysql_select_db("nombdd",$db); $result = mysql_query("SELECT * FROM Utilisateurs WHERE nom = '". $_POST["login"] ."'"); if(!$result){ echo("<body>Une erreur est survenue lors de la tentative de connexion</body>"); } else{ if(mysql_num_rows($result) == 0){ echo("<body>Le nom d'utilisateur " . $_POST["nom"] . " n'existe pas</body>"); } else{ $row = mysql_fetch_array($result); if($_POST["password"] != $row["mdp"]){ echo("<body>Votre mot de passe est incorrect</body>"); } else{ mysql_close(); if($row["fonction"] == "admin"){ header('Location: admin.php'); } else if($row["fonction"] == "utilisateur"){ header('Location: utilisateur.php'); } } } } ?>
Utilisateur anonyme
25 juil. 2007 à 17:06
25 juil. 2007 à 17:06
Ou alors tu modifies tes pages et tu fais des includes :/
if($row["fonction"] == "admin") //les infos correspondent à un compte admin include ('admin.php'); else if($row["fonction"] == "utilisateur") //les infos correspondent à un compte utilisateur include ('utilisateur.php');
bonjour je developpe un site dans lequel je compte integre des comptes utilisateurs avec du contenu personnel telechargeable, cest pourquoi cette méthode me semble efficace, en fonction de tel utilisateur une page lui sera affiché. voici mon code qui ne fonctionne pas, la connexion se fait sans souci mais la redirection non, Pouvez vous m'aider ? merci :)
<?
// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.
$db = mysql_connect('bruno.cenac-assurances.com', 'bruno', 'Drpd.066');
mysql_select_db('bruno',$db);
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
if($data["fonction"] == "bruno") //les infos correspondent à un compte admin
header('Location: bruno.htm');//on redirige vers la partie admin
else if($data["fonction"] == "alex") //les infos correspondent à un compte utilisateur
header('Location: alex.htm');//on redirige vers la partie utilisateur
?>
<?
// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.
$db = mysql_connect('bruno.cenac-assurances.com', 'bruno', 'Drpd.066');
mysql_select_db('bruno',$db);
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('login.htm'); // On inclut le formulaire d'identification
exit;
}
if($data["fonction"] == "bruno") //les infos correspondent à un compte admin
header('Location: bruno.htm');//on redirige vers la partie admin
else if($data["fonction"] == "alex") //les infos correspondent à un compte utilisateur
header('Location: alex.htm');//on redirige vers la partie utilisateur
?>
smile88
Messages postés
51
Date d'inscription
mardi 23 mars 2010
Statut
Membre
Dernière intervention
29 décembre 2014
3
15 mai 2010 à 19:49
15 mai 2010 à 19:49
bsr,
j'ai essayé ce code mais il ne marche pas il m'affiche une page vide meme si je saisie dé login et password fausse.
est ce je peu faire header ( 'location : Administrateur/admin_frame.html') parceque ma page de connexion se trouve dans le dossier parent et ma page de redirection dans un sous dossier
j'ai essayé ce code mais il ne marche pas il m'affiche une page vide meme si je saisie dé login et password fausse.
est ce je peu faire header ( 'location : Administrateur/admin_frame.html') parceque ma page de connexion se trouve dans le dossier parent et ma page de redirection dans un sous dossier
david77179
Messages postés
157
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
9 janvier 2019
22
13 août 2010 à 12:25
13 août 2010 à 12:25
slt,
il faut que tu mette tt dans la meme page avec
<?php // si l'utilisateur est connecté comme admin ...
c la partie admin{ // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege administrateur ?>
<tr align="center">
</tr><tr></tr>
<tr></tr>
<tr></tr>
<tr>
<?php } // fin de l'affichage conditionnel?>
et c a chaque fois que tu veut que ce soit different. Tu peux faire la meme avec user.
Bon courage
il faut que tu mette tt dans la meme page avec
<?php // si l'utilisateur est connecté comme admin ...
c la partie admin{ // Affichage conditionnel : si et seulement si l'utilisateur est connecté avec le privilege administrateur ?>
<tr align="center">
</tr><tr></tr>
<tr></tr>
<tr></tr>
<tr>
<?php } // fin de l'affichage conditionnel?>
et c a chaque fois que tu veut que ce soit different. Tu peux faire la meme avec user.
Bon courage