Récupérer un nombre stocker dans une basse de donnée
Résolu/Fermé
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
-
Modifié par crapoulou le 1/01/2016 à 22:24
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 8 janv. 2016 à 16:07
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 8 janv. 2016 à 16:07
A voir également:
- Récupérer un nombre stocker dans une basse de donnée
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer photo instagram - Guide
7 réponses
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
1 janv. 2016 à 23:02
1 janv. 2016 à 23:02
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...)
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 00:28
3 janv. 2016 à 00:28
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.
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
Modifié par colten11100 le 3/01/2016 à 11:32
Modifié par colten11100 le 3/01/2016 à 11:32
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 :)
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 12:43
3 janv. 2016 à 12:43
Pardon, je suis allez tros vite, le résulta de cette variable me donne 1 alors qu'il y a pas "1" dans la base de donnée, Merci de votre aide.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
3 janv. 2016 à 13:18
3 janv. 2016 à 13:18
Peux tu faire ce que je t'ai demandé et nous coller le résultat ?
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 13:29
3 janv. 2016 à 13:29
Le résultat c'est a dire ??, jais remplacer sa:
Par sa:
Et se que sa me donne c'est "1" mais c'est pas se qui est dans la base de donnée.
<?php echo htmlentities(trim($_SESSION['token'])); ?>
Par sa:
<?php echo htmlentities(print_r($_SESSION['token'])); ?>
Et se que sa me donne c'est "1" mais c'est pas se qui est dans la base de donnée.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
>
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
3 janv. 2016 à 13:39
3 janv. 2016 à 13:39
Non !
Fais juste :
en début de ta page .... et colles nous le résultat !
Fais juste :
print_r($_SESSION);
en début de ta page .... et colles nous le résultat !
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 14:12
3 janv. 2016 à 14:12
Dsl javais pas compris comme sa O_o
Et sa ne change absolument rien.
Et sa ne change absolument rien.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
Modifié par jordane45 le 3/01/2016 à 15:55
Modifié par jordane45 le 3/01/2016 à 15:55
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
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 14:25
3 janv. 2016 à 14:25
A se moment la, vous allez péter un plomb avec mon fichier d’inscription et tout le reste ^^
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
>
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
3 janv. 2016 à 15:58
3 janv. 2016 à 15:58
Non.... puisque maintenant que je t'ai donné la marche à suivre et inculqué quelques bonnes pratiques... tu vas tout bien refaire au propre tout seul comme un grand.....
^^
^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
Modifié par colten11100 le 3/01/2016 à 14:41
Modifié par colten11100 le 3/01/2016 à 14:41
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.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
3 janv. 2016 à 15:56
3 janv. 2016 à 15:56
.... as tu fais le PRINT que je te demande depuis le début..... il te donne quoi ???????
( à faire sur la page qui contient ton problème bien entendu ! )
( à faire sur la page qui contient ton problème bien entendu ! )
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 17:32
3 janv. 2016 à 17:32
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.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
3 janv. 2016 à 18:08
3 janv. 2016 à 18:08
Bon..deja.. Il n'y a que le cas numero 3 qui peut fonctionner. ... mais encore faudrait il désactiver la redirection qui se trouve dans ton if... sinon comment espères tu pouvoir voir quoi que ce soit ??
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
3 janv. 2016 à 18:34
3 janv. 2016 à 18:34
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);
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
3 janv. 2016 à 18:59
3 janv. 2016 à 18:59
J'ai sa qui se mais:
La variable SESSION contient :
Array
(
[login] => YopHack
)
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
8 janv. 2016 à 15:33
8 janv. 2016 à 15:33
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 ;-)
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
8 janv. 2016 à 15:45
8 janv. 2016 à 15:45
je navire pas a récupérer la variable "token" dans mon formulaire de login.php
Heu.. à moins que je sois devenu miro ... je ne vois pas le code de récupération du token ....
où l'as tu mis ??
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
8 janv. 2016 à 15:49
8 janv. 2016 à 15:49
Oui, je l'ai enlevez, je sais pas comment faire, vous pouvez m'aidez ?
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
Modifié par jordane45 le 8/01/2016 à 15:49
Modifié par jordane45 le 8/01/2016 à 15:49
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(); }
colten11100
Messages postés
94
Date d'inscription
vendredi 23 janvier 2015
Statut
Membre
Dernière intervention
12 décembre 2018
2
Modifié par colten11100 le 8/01/2016 à 16:08
Modifié par colten11100 le 8/01/2016 à 16:08
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
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
8 janv. 2016 à 16:06
8 janv. 2016 à 16:06
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.
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
>
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
8 janv. 2016 à 16:07
8 janv. 2016 à 16:07
Au passage, tu me feras plaisir en appliquant... dans ce "nouveau" code... les recommandations que je t'ai fait pour ton code précédent...
Ne serait-ce que pour la récupération "propre" des variable (via les ISSET et l'écriture Ternaire)
Ne serait-ce que pour la récupération "propre" des variable (via les ISSET et l'écriture Ternaire)