problème liaison table

Mammouth du PHP | 985 Messages

17 mars 2010, 22:50

Il faut aussi comparer le login (ou le mail) car un même pass peut être utilisé par plusieurs personnes différentes...
Sinon pour le reste, tu devrais pouvoir t'en sortir.
C'est dans la même logique :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

17 mars 2010, 22:57

En fait je peut rajouter a la suite et faire
$sql = sprintf("SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MDP,MAILUTILISATEURS = '$mdp','$MAILUTILISATEURS'");

Eléphant du PHP | 388 Messages

17 mars 2010, 23:02

En fait je peut rajouter a la suite et faire
$sql = sprintf("SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MDP,MAILUTILISATEURS = '$mdp','$MAILUTILISATEURS'");
Sinon je viens d'essayer cela
$sql = sprintf("SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MDP = '$mdp',MAILUTILISATEURS = '$MAILUTILISATEURS'");
:oops:

Mammouth du PHP | 985 Messages

17 mars 2010, 23:06

Il faut lui parler dans son langage: Où MAILUTILISATEURS = '$MAILUTILISATEURS' Et MDP = '$mdp'"
Sinon SQL ne comprend rien :wink:

Donc:
WHERE MAILUTILISATEURS = '$MAILUTILISATEURS' AND MDP = '$mdp'"
[EDIT]
Regarde ici:
http://www.phpdebutant.org/article62.php
Modifié en dernier par Dr@ke le 17 mars 2010, 23:09, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

17 mars 2010, 23:09

donc le controle se fait bien sur le mail et le mot de passe
<?php

$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];


include '../php/connect.php';



$sql = sprintf("SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS' AND MDP = '$mdp'");
$req = mysql_query($sql) or exit('<pre>' .  $sql . PHP_EOL . mysql_error() . '</pre>');



if($req)
{
    session_start();
    $user = mysql_fetch_assoc($req);

    $_SESSION['MAILUTILISATEURS'] = $user['MAILUTILISATEURS'];
    $_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
 
    header('Location: ../moncomptepart.php');
}

?>
Mais j'arrive toujours a me connecter avec des user non enregistré :?

Mammouth du PHP | 985 Messages

17 mars 2010, 23:11

Regarde tous les articles SQL ici:
http://www.phpdebutant.org/article62.php

Ainsi que les articles formulaires...
Tu vas voir c'est encore mieux expliqué :wink:

[EDIT]
Ne te complique pas la vie, enlève le sprinf:
(car c'est encore une syntaxe différente qui ici tu n'utilises pas)

Donc simplement:
$sql = "SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS' AND MDP = '$mdp'";
Modifié en dernier par Dr@ke le 17 mars 2010, 23:17, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

17 mars 2010, 23:17

je te remercie pour le liens je vais étudier cela de pret mais :oops: comment se fait til que le controle ne se fait plus pourtant les champs contrôle sont bien mentionner non ?

ou sinon doit faire une nouvelle requete incluant cela
<?php

$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];


include '../php/connect.php';



$sql = "SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS' AND MDP = '$mdp'";
$req = mysql_query($sql) or exit('<pre>' .  $sql . PHP_EOL . mysql_error() . '</pre>');

$crypt=md5($MDP);
$sql2 = "select MDP from utilisateurs where MAILUTILISATEURS=' ".$MAILUTILISATEURS." ' "; // on recupère le password de la table qui correspond au login du visiteur
$req = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());


if($req)
{
    session_start();
    $user = mysql_fetch_assoc($req);

    $_SESSION['MAILUTILISATEURS'] = $user['MAILUTILISATEURS'];
    $_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
 
    header('Location: ../moncomptepart.php');
}
else
{
    echo 'Mauvais identifiant';
}
?>

Mammouth du PHP | 985 Messages

17 mars 2010, 23:32

<?php
$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];

include '../php/connect.php';

$crypt=md5($mdp);
$sql = "SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$mail' AND MDP = '$crypt'";
$req = mysql_query($sql) or exit('<pre>' .  $sql . PHP_EOL . mysql_error() . '</pre>');

//$crypt=md5($MDP);
//$sql2 = "select MDP from utilisateurs where //NUMUTILISATEURS,MAILUTILISATEURS='".$NUMUTILISATEURS.",".$MAILUTILISATEURS."'"; // on recupère le password de //la table qui correspond au login du visiteur
//$req = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());

if($req)
{
    session_start();
    $user = mysql_fetch_assoc($req);

    $_SESSION['MAILUTILISATEURS'] = $user['MAILUTILISATEURS'];
    $_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
 
    header('Location: ../moncomptepart.php');
}
else
{
    echo 'Mauvais identifiant';
}
?>
Modifié en dernier par Dr@ke le 17 mars 2010, 23:39, modifié 2 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

17 mars 2010, 23:37

8-| ton code c'est se que je viens de faire non

Mammouth du PHP | 985 Messages

17 mars 2010, 23:39

essaye
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

17 mars 2010, 23:41

non sa passe toujours pas de control

Mammouth du PHP | 985 Messages

17 mars 2010, 23:50

<?php
$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];

include '../php/connect.php';

$crypt=md5($mdp);
$sql = "SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$mail' AND MDP = '$crypt'";
$req = mysql_query($sql) or exit('<pre>' .  $sql . PHP_EOL . mysql_error() . '</pre>');

//$crypt=md5($MDP);
//$sql2 = "select MDP from utilisateurs where //NUMUTILISATEURS,MAILUTILISATEURS='".$NUMUTILISATEURS.",".$MAILUTILISATEURS."'"; // on recupère le password de //la table qui correspond au login du visiteur
//$req = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());

$user = mysql_fetch_assoc($req);

if (isset($user['NUMUTILISATEURS']))
{
    session_start();

    $_SESSION['MAILUTILISATEURS'] = $user['MAILUTILISATEURS'];
    $_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
 
    header('Location: ../moncomptepart.php');
}
else
{
    echo 'Mauvais identifiant';
}
?>
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Mammouth du PHP | 985 Messages

18 mars 2010, 07:23

Le plus simple serait encore:
<?php
$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];

$mdp = md5($mdp);

include '../php/connect.php';

$sql = "SELECT NUMUTILISATEURS, MAILUTILISATEURS FROM utilisateurs WHERE MAILUTILISATEURS = '$mail' AND MDP = '$mdp'";

$req = mysql_query($sql) or exit('<pre>' .  $sql . PHP_EOL . mysql_error() . '</pre>');

$user = mysql_fetch_assoc($req) or exit('Mauvais identifiant');

session_start();

$_SESSION['MAILUTILISATEURS'] = $user['MAILUTILISATEURS'];
$_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
 
header('Location: ../moncomptepart.php');
?>
Ensuite tu peux regarder la fonction mysql_real_escape_string().
http://php.net/manual/fr/function.mysql ... string.php

Et isset() aussi:
http://php.net/manual/fr/function.isset.php

Puis ici:
http://www.phpdebutant.org/article118.php

Sinon un retour sera le bienvenue et si c'est résolut, cocher résolut aussi :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 388 Messages

18 mars 2010, 08:22

donc sa y'est sa marche encore merci par contre mon probléme de départ est toujours là l'ID (NUMUTILISATEURS) qui est dans la table annonces qui doit reprendre L'ID de l'utilisateurs qui a posté l'annonce s'incremente tous seul et de plus il ne prend pas l'ID de l'utilisateur

je viens de supprimmé $NUMUTILISATEURS=mysql_insert_id(); de la page ajout annonce maintenant sa ne s'incremente plus cela reste pour l'utilisateur numéro 13 dans annnonces cela me donne ID ( numutilisateurs 4 ) au lieu de num utilisateur 13

Eléphant du PHP | 388 Messages

18 mars 2010, 13:54

autant pour moi cela marche j'ai vider mes tables et sa tourne nickel encore merci c'etait laborieux :D je te remercie pour ta patience merci