Récupérer un nombre stocker dans une basse de donnée
Résolu
colten11100
Messages postés
94
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir,
J'ai un site ou je dois récupérer le nombre de token que j'ai dans ma table "membre", j'ai tester de faire comme sa:
mais sa me mais un "!" a la place de se que je dois récupérer.
Merci de votre aide :)
J'ai un site ou je dois récupérer le nombre de token que j'ai dans ma table "membre", j'ai tester de faire comme sa:
vous avez <?php echo htmlentities(trim($_SESSION['token'])); ?> token.<br />
mais sa me mais un "!" a la place de se que je dois récupérer.
Merci de votre aide :)
A voir également:
- Récupérer un nombre stocker dans une basse de donnée
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment recuperer une video sur youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Nombre de jours entre deux dates excel - Guide
7 réponses
Bonjour,
Peut tu nous coller le résultat de cette commande :
Et aussi ... nous montrer à quel moment tu initialises cette variable (le code php...)
Peut tu nous coller le résultat de cette commande :
print_r($_SESSION);
Et aussi ... nous montrer à quel moment tu initialises cette variable (le code php...)
Bonsoir,
dsl javais pas vue le poste, la je vais me coucher, demain a la première heure je vous mains sa, Merci de ta réponse jordane45.
dsl javais pas vue le poste, la je vais me coucher, demain a la première heure je vous mains sa, Merci de ta réponse jordane45.
Le code de la page login.php:
et le code de la page index.php:
Et avec se que tu ma passe, sa marche l'argent mieux:
Sa me mais bien le monbre de token qu'il y a dans la basse, Merci a toi.
Les erreurs les plus simple font les plus gros problème :)
<?php if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('host', 'user', 'mdp'); mysql_select_db ('basse_de_donnée', $base); $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_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(); if ($data[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: index.php'); exit(); } elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } 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.'; } } ?>
et le code de la page index.php:
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); } ?>
Et avec se que tu ma passe, sa marche l'argent mieux:
<?php echo htmlentities(print_r($_SESSION['token'])); ?>
Sa me mais bien le monbre de token qu'il y a dans la basse, Merci a toi.
Les erreurs les plus simple font les plus gros problème :)
Sachant que... je pense que ton erreur vient du fait que tu as légèrement oublié de démarrer tes sessions dans ta page login.php.....
De plus, prends l'habitude d'initialiser tes variables AVANT de le utiliser....
pour ce faire, tu peux utiliser l'écriture ternaire et la fonction ISSET ( ou !EMPTY ).
Penses aussi à créer un fichier de connexion à ta BDD que tu n'auras plus qu'à inclure dans les pages où tu en as besoin
(plutôt que de copier/coller le code dans chacune de tes pages.... )
Voici ce que devrait être ton code :
NB: isset permet de vérifier qu'une variable existe ...... !empty .. qu'elle existe et n'est pas vide. Donc pas besoin de faire les deux !!!
NB²: l'extension mysql est obsolète. Je t'invite à passer à la PDO.
Merci de lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
De plus, prends l'habitude d'initialiser tes variables AVANT de le utiliser....
pour ce faire, tu peux utiliser l'écriture ternaire et la fonction ISSET ( ou !EMPTY ).
Penses aussi à créer un fichier de connexion à ta BDD que tu n'auras plus qu'à inclure dans les pages où tu en as besoin
(plutôt que de copier/coller le code dans chacune de tes pages.... )
Voici ce que devrait être ton code :
<?php // Fichier de connexion à la BDD : cnxBdd.php $base = mysql_connect ('host', 'user', 'mdp'); mysql_select_db ('basse_de_donnée', $base); ?>
<?php //Fichier : Login.php //démarrage des sessions session_start(); //connexion à la bdd require_once "cnxBdd.php"; //récupération propre des variables $connexion = isset($_POST['connexion']) ? $_POST['connexion']: NULL; $login = !empty($_POST['login']) ? $_POST['login']: NULL; $pass = !empty($_POST['pass']) ? $_POST['pass']: NULL; if ($connexion && $connexion == 'Connexion') { if ($login && $pass ) { $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($login).'" AND pass_md5="'.mysql_escape_string(md5($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(); if ($data[0] == 1) { $_SESSION['login'] = $login; header('Location: index.php'); exit(); } elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } 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.'; } } ?>
NB: isset permet de vérifier qu'une variable existe ...... !empty .. qu'elle existe et n'est pas vide. Donc pas besoin de faire les deux !!!
NB²: l'extension mysql est obsolète. Je t'invite à passer à la PDO.
Merci de lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai fais la modification sur le fichier login.php et créer le fichier cnxBdd.php avec la connexion a la BDD et sa na rien changer a mon problème.
OUI JE L'AIS FAIS, je vous l'ai déjà dit, sa ne change rien, dut tout, j'ai fais quatre fois différament, 1er:
2eme:
3eme:
4eme:
il y a rien qui change a chaque une des fois.
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); print_r($_SESSION); } ?>
2eme:
<?php print_r($_SESSION); session_start(); if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); } ?>
3eme:
<?php session_start(); print_r($_SESSION); if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); } ?>
4eme:
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: login.php'); print_r($_SESSION); exit(); } ?>
il y a rien qui change a chaque une des fois.
Autrement dit .... fais ceci et COLLES nous le résultat sur le forum :
Au passage... ajoutes la ligne suivante au début de CHACUNE de tes pages PHP (le temps des tests pour vérifier qu'il n'y ai pas d'erreur)
<?php //Afficahge des erreurs PHP au cas où (le temps des tests) error_reporting(E_ALL); //démarrage des sessions session_start(); //----------------------------------------------------------// // LE temps des tests : //----------------------------------------------------------// echo "<br> La variable SESSION contient :<br><pre>"; print_r($_SESSION); echo "</pre>"; exit(); //----------------------------------------------------------// //Si l'utilisateur n'est pas connecté ...; retour à la page login if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); } ?>
Au passage... ajoutes la ligne suivante au début de CHACUNE de tes pages PHP (le temps des tests pour vérifier qu'il n'y ai pas d'erreur)
//Afficahge des erreurs PHP au cas où (le temps des tests) error_reporting(E_ALL);
Bonjour,
J'ai finie par garder "mysql_" J'ai réaliser que sa prend trop de tant que je n'ai pas.Le site dois ouvrir très rapidement mais je comprend rien a mysqli_ ou PDO.Des que le site sera ouvert le tant que c'est encore valide je me remétrer au doc mais pour le moment je navire pas a récupérer la variable "token" dans mon formulaire de login.php et le faire passez par la session pour que je la prenne dans mon index.php avec
Je vous repasse le code des deux page
login.php:
index.php:
Merci de votre aide , comme toujours ;-)
J'ai finie par garder "mysql_" J'ai réaliser que sa prend trop de tant que je n'ai pas.Le site dois ouvrir très rapidement mais je comprend rien a mysqli_ ou PDO.Des que le site sera ouvert le tant que c'est encore valide je me remétrer au doc mais pour le moment je navire pas a récupérer la variable "token" dans mon formulaire de login.php et le faire passez par la session pour que je la prenne dans mon index.php avec
<?php echo htmlentities(trim($_SESSION['token'])); ?>
Je vous repasse le code des deux page
login.php:
<?php //démarrage des sessions session_start(); //connexion à la bdd require_once "cnxBdd.php"; //récupération propre des variables $connexion = isset($_POST['connexion']) ? $_POST['connexion']: NULL; $login = !empty($_POST['login']) ? $_POST['login']: NULL; $pass = !empty($_POST['pass']) ? $_POST['pass']: NULL; if ($connexion && $connexion == 'Connexion') { if ($login && $pass) { $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($login).'" AND pass_md5="'.mysql_escape_string(md5($pass)).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_close(); if ($data[0] == 1) { session_start(); $_SESSION['login'] = $login; header('Location: index.php'); exit(); } elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } 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.'; } } ?>
index.php:
<?php //Afficahge des erreurs PHP au cas où (le temps des tests) //error_reporting(E_ALL); //démarrage des sessions session_start(); /* //----------------------------------------------------------// // LE temps des tests : //----------------------------------------------------------// echo "<br> La variable SESSION contient :<br><pre>"; print_r($_SESSION); echo "</pre>"; exit(); //----------------------------------------------------------// */ if (!isset($_SESSION['login'])) { header ('Location: login.php'); exit(); } ?>
Merci de votre aide , comme toujours ;-)
N'aurais tu pas oublié de modifier ta requête pour récupérer le token (qui je suppose est dans ta table...)
Et dans ton code PHP ensuite :
$sql = 'SELECT count(*) ,token FROM membre WHERE login="'.mysql_escape_string($login).'" AND pass_md5="'.mysql_escape_string(md5($pass)).'"';
Et dans ton code PHP ensuite :
if ($data[0] == 1) { $_SESSION['login'] = $login; $_SESSION['token'] = $data['token']; header('Location: index.php'); exit(); }
Et bien merci !!, Je vais te parétre lourd mais ..
j'ai un autre soucie dans mon code et un truque que je sais pas faire:
Il y a pour le fichier inscription.php, j'ai un soucie avec le nom de caractère minimum:
Et le truque que je sais pas faire, c'est de faire une case pour ajouter des token dans la page index.php.
Se que je veux c'est si mon mon et = a seluit que je veux, je peux ajouter des token au pseudo de la personne que je veux
sinon erreur
j'ai un autre soucie dans mon code et un truque que je sais pas faire:
Il y a pour le fichier inscription.php, j'ai un soucie avec le nom de caractère minimum:
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste Ègalement si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = '<h2>Les 2 mots de passe sont diffÈrents.</h2>'; } if ($_POST['pass'] && $_POST['pass_confirm'] >=6) { $erreur = '<h2>Le mot de passe et tros court.</h2>'; } if ($_POST['login'] >=6) { $erreur = '<h2>Le speudo et tros court.</h2>'; } else { // Connexion a la base de donnÈe require_once "cnxBdd.php"; // on recherche si ce login est dÈj‡ utilisÈ par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); $_POST['token'] = 0; if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['token']).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); $_POST['token'] = 0; session_start(); $_SESSION['login'] = $_POST['login']; $_SESSION['token'] = $_POST['token']; header('Location: index.php'); exit(); } else { $erreur = '<h2>Un membre possËde dÈj‡ ce login.</h2>'; } } } else { $erreur = '<h2>Au moins un des champs est vide.</h2>'; } } ?>
Et le truque que je sais pas faire, c'est de faire une case pour ajouter des token dans la page index.php.
Se que je veux c'est si mon mon et = a seluit que je veux, je peux ajouter des token au pseudo de la personne que je veux
sinon erreur
j'ai un autre soucie dans mon code
Qui dit "autre souci" .. dit ..... Nouvelle QUESTION.
Pour faciliter la gestion du site et la recherche à l'interieur pas d'autres internaut, il est conseillé de ne poser Qu'une question par discussion.
Merci de bien vouloir clôturer celle-ci ... et d'en ouvrir une autre propre à cette nouvelle question.