Affichage de champs

cs_chris tuckers Messages postés 137 Date d'inscription jeudi 8 septembre 2005 Statut Membre Dernière intervention 7 mars 2008 - 15 sept. 2005 à 14:21
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 15 sept. 2005 à 22:44
Bonjour, alors, c'est une question top urgente et je bloque dessus depuis ce matin. Dans une page, je désirais voir renseigner deux tables. Voici lapremière manipulation que j'ai fait et qui fonctionne :

<? include "_connexion.php" ?>
<?php
// On démarre la session
session_start();
$loginOK = false; // cf Astuce


// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {


extract($_POST); // je vous renvoie à la doc de cette fonction


// On va chercher le mot de passe afférent à ce login $sql "SELECT * FROM clients WHERE cli_id '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL :
'.$sql);


// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if ($password == $data['cli_pass']) {
$loginOK = true;
}
}
}


// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['cli_id'] = $data['cli_id'];
$_SESSION['cli_pass'] = $data['cli_pass'];
$_SESSION['cli_ste'] = $data['cli_ste'];
$_SESSION['cli_adresse'] = $data['cli_adresse'];
$_SESSION['cli_adresse2'] = $data['cli_adresse2'];
$_SESSION['cli_ville'] = $data['cli_ville'];
$_SESSION['cli_cp'] = $data['cli_cp'];
$_SESSION['cli_contact'] = $data['cli_contact'];
$_SESSION['cli_tel'] = $data['cli_tel'];
$_SESSION['cli_email'] = $data['cli_email'];
$_SESSION['cli_banque'] = $data['cli_banque'];
$_SESSION['cli_guichet'] = $data['cli_guichet'];
$_SESSION['cli_code'] = $data['cli_code'];
$_SESSION['cli_compte'] = $data['cli_compte'];
$_SESSION['cli_cle'] = $data['cli_cle'];

Maintenant, j'aimerais faire afficher des champs provenant de la table contrats. Je peux vous dire que la table clients est reliée à la table contrat par le cli_id. Quelle modification dois-je effectuer sur ma requete pour pouvoir faire afficher ces deux tables. Merci !!!!!


chris tuckers, l'as de coeur

2 réponses

xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
15 sept. 2005 à 16:02
"Voici lapremière manipulation que j'ai fait "
bizard ce code me dit vaguement quelque chose es tu sur que TU la fait ;)
c sur que c'est pas evident de trifouiller les code des autres
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 sept. 2005 à 22:44
Mais non ! Mais non ! Mais non !

Combien de fois je vais devoir vous le répéter !!!! :D



extract($_POST); // je vous renvoie à la doc de cette fonction

On ne fait JAMAIS un extract d'une variable superglobal avec les
risques de sécurités qui s'y collent ! C'est pourtant compréhensible,
si on vire ca dans le php.ini, c'est certainement pas pour le voir dans
le script PHP !



// On va chercher le mot de passe afférent à ce login

$sql "SELECT * FROM clients WHERE cli_id '".addslashes($login)."'";



Double faux ! On recherche si le login ET le mot de passe existe pour 1
SEUL enregistrement ! De plus, on n'utilise pas SELECT * mais on nomme
ses champs !



Je te le refait ...

<?php

//je nomme pas les champs, débrouille toi pour ca :p

$sql "SELECT * FROM clients WHERE cli_id '".addslashes($login)."'" AND cli_pass = $password";

$query = mysql_query($sql);

if ( mysql_num_rows($sql) === 1 ) {

$data = mysql_fetch_array($sql);

foreach ($data as $key=>$val) {

$_SESSION[$key] = $val;

}

} else {

$error = true;

}

?>

C'est pas dur et c'est plus propre pourtant !



Pour ta question :

SELECT clients.cequetuveux, contrats.cequetuveux FROM clients, contrats WHERE clients.cli_id = contrats.cli_id
0
Rejoignez-nous