Lien dans un champ de TABLE

ViPHP
ViPHP | 2291 Messages

11 juil. 2006, 23:25

Bonsoir,

Je voudrais savoir s'il est possible de créer un champs avec une adresse de redirection automatique (exemple: page1.php)
Cela pour redirigé automatiquement vers certaine page telle ou telle utilisateur ?

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 juil. 2006, 23:34

Salut,

C'est possible, pourqui pas ?

Suffit d'enregistrer la page (page1.php) comme tu l'as dis et éventuellement le chemin puis d'utiliser une fonction de redirection header()

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 2291 Messages

11 juil. 2006, 23:39

Salut,

C'est possible, pourqui pas ?

Suffit d'enregistrer la page (page1.php) comme tu l'as dis et éventuellement le chemin puis d'utiliser une fonction de redirection header()
Je me suis mal exprimer je crois.
Le liens de ma page 1 devrais être inscrit dans le champ de ma table (exemple URL) se qui aurais comme objectif que suivant le login attacher celui-ci serais automatiquement redirigé

J'aurais ne table avec "login, pass, url" et suivant le login il redirigerais sur l'url corepondant au login
Modifié en dernier par dunbar le 11 juil. 2006, 23:53, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 juil. 2006, 23:51

Et ?!
Je ne vois pas la différence :-k

Lors de l'identification du récupères les données du membre y compri le champ URL avec la page de redirection. Si l'identification est réussi alors tu rediriges vers cette page récupérée de la base.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 2291 Messages

11 juil. 2006, 23:57

Et ?!
Je ne vois pas la différence :-k

Lors de l'identification du récupères les données du membre y compri le champ URL avec la page de redirection. Si l'identification est réussi alors tu rediriges vers cette page récupérée de la base.
Ah oui ok je commence à comprendre
cela me donnerais un truc du genre ???
header('Location: $url');
C'est exact ???

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 juil. 2006, 00:03

C'est exact mais attention à ne pas inclure une variable entre apostrophes, elle ne serait pas interprétée. Sépare la variable du reste de la chaine de caractères:
header('Location:'.$url); 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 2291 Messages

12 juil. 2006, 00:10

C'est exact mais attention à ne pas inclure une variable entre apostrophes, elle ne serait pas interprétée. Sépare la variable du reste de la chaine de caractères:
header('Location:'.$url); 
Ok alors encore une question stp, j'ai créer un champ (VARCHAR) ou j'ai indiqué l'url "http://monsite.com" c'est correct ??? parce que si oui cela ne marche pas, quand je me logue mon formulaire se vide et rien ne se passe.... :oops:

Mon code
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

        $base = mysql_connect ('localhost', '', ''); 
        mysql_select_db ('', $base);
        
        // on teste si une entrée de la base contient ce couple login / pass
        $sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);
        
        mysql_free_result($req);
        mysql_close();
        
        // si on obtient une réponse, alors l'utilisateur est un membre
        if ($data[0] == 1) {
            session_start();
            $_SESSION['login'] = $_POST['login'];
            header('Location:'.$url);
            exit();
        }
        // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe
        elseif ($data[0] == 0) {
            $erreur = 'Compte non reconnu.';
        }
        // sinon, alors la, il y a un gros problème :)
        else {
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
    }
    else {
        $erreur = 'Au moins un des champs est vide.';
    }
}
?>
<html>
<head>
<title>Accueil</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>

<body background="img/grd-4px.gif">
<p align="center"><font size="6" face="Academy Engraved LET">Identification</font><font face="Algerian" size="6">
</font>:</p>
<p align="center">&nbsp;</p>
<p align="center"><br />
</p>
<form action="index.php" method="post">
  <div align="center">Login :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
    <br />
    Mot de passe : 
    <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
  </div>
	<div align="center">
    <br />
    <input type="submit" name="connexion" value="Connexion">
  </div>
</form>
<div align="center">
  <?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</div>
</body>
</html>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 juil. 2006, 00:20

Tu ne récupères pas le champ de la base de données:
$sql = 'SELECT url FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
Et remplace ces lignes:
 if ($data[0] == 1) { 
par
 if (mysql_num_rows($req) == 1) { 
header('Location:'.$url); 
par
$url = $data['url']; //avec url le nom du champ
header('Location:'.$url); 
Décale ou enlève aussi cette ligne
mysql_free_result($req);
après ce test:
 if (mysql_num_rows($req) == 1) { 

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 2291 Messages

12 juil. 2006, 00:37

Merci beaucoup ça fonctionne nickel

Merci encore :P