Page 1 sur 1

Besoin d'aide redirection utilisateur

Posté : 06 juil. 2005, 12:57
par julia67
Bonjour,

Je debute en php et cela fait un moment que je cherche une solution a mon probleme.
Je souhaite creer une page ou les utilisateurs peuvent s'identifier afin d'etre rediriger sur une page personnalisé. dans ma base de données j'ai les champs LOGIN, PASSWORD ainsi que URL correspondant (par exemple:www.siteweb.com pout l'utilisateur toto;www.autresiteweb.com pour l'utilisateur toto2).
J'ai trouvé un code pour ma page login.php qui, si le login at password sont corrects, affiche le texte (Bienvenue). Que-est ce que je dois faire pour qu'au lieu d'afficher ce texte je puisse recuperer l'url correspondant dans ma base et rediriger le client?
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select password from admin where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);
  
if($data['password'] != $password) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('acces_clients.php'); // On inclus le formulaire d'identification
    exit;
  }
  else 
  {
    session_start();
    $_SESSION['login'] = $login;
  
    echo'<p>Bienvenue</p>';
  }    
   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('acces_clients.php'); // On inclut le formulaire d'identification
   exit;
}
J'espere avoir ete claire dans mes explications...
Merci d'avance pour votre aide, j'en ai vraiment besoin.

Posté : 06 juil. 2005, 13:51
par ouckileou
fais une petite recherche sur le forum tout d'abord, avec comme mot-clé "redirection", tu devrais trouver des infos utiles

Re: Besoin d'aide redirection utilisateur

Posté : 06 juil. 2005, 14:33
par guilt92
<?php 
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select password,URL from admin where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);
$URL=$data['URL'];
  
if($data['password'] != $password) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('acces_clients.php'); // On inclus le formulaire d'identification
    exit;
  }
  else 
  {
    session_start();
    $_SESSION['login'] = $login;
  
    //REDIRECTION JS, 1 seconde 

echo "<SCRIPT LANGUAGE='JavaScript'>\n 
function redirect() {\n 
window.location=\"$URL\"\n 
}\n 
setTimeout('redirect()',1000);\n 
</SCRIPT>\n"; 
  }    
   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('acces_clients.php'); // On inclut le formulaire d'identification
   exit;
}
Je pense que cela devrai fonctionner ou en tout cas la base est la...
Bonne chance et merci a VAN pour la fonction de redirection

Posté : 06 juil. 2005, 14:39
par ouckileou
excuse moi d'être grincheux mais si juste avant le tien y'a un message qui dit "fait une petite recherche" sachant que c'est un problème simple et déjà traité plein de fois, est-ce que tu trouves vraiment nécessaire de poster du code ? :roll:

d'autant que, si je peux me permettre, y'a peut-être plus simple que le javascript
et plus sûr, car si le Javascript est désactivé, plus de redirection...

qu'en penses-tu ? ;)

Posté : 06 juil. 2005, 14:42
par guilt92
excuse moi d'être grincheux mais si juste avant le tien y'a un message qui dit "fait une petite recherche" sachant que c'est un problème simple et déjà traité plein de fois, est-ce que tu trouves vraiment nécessaire de poster du code ?
La personne demande de l'aide je sais qu'il ya déjà des sujets traités mais là ça m'aura pris 5 minutes et donc c'est ma façon d'aider, chacun ses méthodes :wink:
d'autant que, si je peux me permettre, y'a peut-être plus simple que le javascript et plus sûr, car si le Javascript est désactivé, plus de redirection...
Personnellement quand j avais demandé de l'aide pour une fonction de redirection on m'avait donné ca ou le fameux header(location) en php qui ne marche absolument jamais (toujours des erreurs) donc je l'ai adopté aveuglemment mais si tu connais quelque chose de mieux je suis preneur

Posté : 06 juil. 2005, 14:46
par ouckileou
effectivement chacun ses méthodes... peut-être qu'un jour t'en auras marre de balancer du code à des gens qui prennent pas la peine de chercher (ça ne concerne pas julia67) :lol:

enfin bon à partir du moment où quelqu'un a pris le parti avant toi d'orienter vers des pistes, et d'aider pour des problèmes précis éventuels, je sais pas si ça vaut le coup de tout saborder
enfin c'est mon avis...
le fameux header(location) en php qui ne marche absolument jamais (toujours des erreurs)
chez moi il marche absolument toujours, si y'a des erreurs c'est peut-être que tu l'utilises mal non ? ;)

Posté : 06 juil. 2005, 14:50
par guilt92
Surement moi j ai toujours un message :

Cannot send session cache limiter - headers already sent (output started at.....)

Mais bon je crois qu on dévie un peu du sujet du post la !!

Posté : 06 juil. 2005, 14:55
par ouckileou
hum pas forcément

puisque tu as proposé une méthode en Javascript, je propose celle en PHP
avec la fonction header() effectivement
=> http://fr3.php.net/manual/fr/function.header.php

qui s'utilise comme ceci pour une redirection
header("Location: ".$url);
et qui doit précéder tout envoi vers le navigateur, sinon on a l'erreur "headers already sent by..."
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP.
et voilà
si on fait bien les choses ça marche ;)
et comme là c'est une redirection immédiate et sans texte affiché qui ets demandé, cette solution est parfaitement adaptée je pense

Posté : 06 juil. 2005, 15:02
par guilt92
ok mais alors attention quand même :

par exemple le fait de mettre un commentaire en html entre les balises <!-- --> provoquera l'erreur de la redirection, de meme que pas mal d'autre surprises dans ce genre que j ai pu avoir... Bref si jamais ce message apparait c est probablement un conflit avec le header.

Bonne chance ! :wink:

Posté : 06 juil. 2005, 15:03
par mere-teresa
Il existe un tutorial sur les Redirections sur PHPFrance va voir !

http://www.phpfrance.com/tutoriaux/inde ... edirection

Posté : 06 juil. 2005, 15:12
par julia67
:)
Merci beaucoup a tous
Je vais essayer. Je pense que avec toutes ces infos je devrais arriver.
Courage!

Posté : 06 juil. 2005, 15:15
par julia67
Ca marche! J'ai essaié les deux solution et les deux marche.
Merci encore
:P

Posté : 06 juil. 2005, 15:19
par guilt92
Il faudrait que tu cliques sur "RESOLU" en haut du message.

Merci.