Lien dans un champ de TABLE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lien dans un champ de TABLE

par dunbar » 12 juil. 2006, 00:37

Merci beaucoup ça fonctionne nickel

Merci encore :P

par Truc » 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) { 

par dunbar » 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>

par Truc » 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); 

par dunbar » 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 ???

par Truc » 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.

par dunbar » 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

par Truc » 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()

Lien dans un champ de TABLE

par dunbar » 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