Bonjour a tous , voilà j'essaie de mettre en place un système "se rappeler de moi" sur mon site mais étrangement j'arrive pas a faire un update dans mysql).sa fait plus de 24 heures que je vois pas ce que j'ai mal fait ou omis.Merci d'avance pour votre attention
if (isset($_POST['envoyer']))
if(isset($_POST['adresse_mail'])&& !empty($_POST['adresse_mail']) && /*ici je vérifie qu le mail et le mot de passe sont bon*/
isset($_POST['mot_de_passe'])&& !empty($_POST['mot_de_passe']))
{
$pdo= new PDO('mysql:dbname=identifiantsclients;host=localhost','root',"");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);
$adresse_mail=htmlspecialchars($_POST['adresse_mail']);
$mot_de_passe=htmlspecialchars($_POST['mot_de_passe']);
$sel=$pdo->prepare("SELECT * FROM infosdesclients WHERE (adresse_mail = ? and mot_de_passe=?) limit 1");
$sel->setFetchMode(PDO::FETCH_ASSOC);
$sel->execute (array($adresse_mail,($mot_de_passe)));
$tab=$sel->fetchAll();
if(count($tab)>0) {if (!session_id()){
session_start();
session_regenerate_id();
}
$_SESSION["authentification"]="oui";
$_SESSION["nom"]=$tab[0]["nom"];
$_SESSION ["prenoms"]=$tab[0]["prenoms"];
$_SESSION ["adresse_mail"]=$tab[0]["adresse_mail"];
$_SESSION ["numero_de_telephone"]=$tab[0]["numero_de_telephone"];
$_SESSION["pseudo"]=$tab[0]["pseudo"];
$sel=$pdo->prepare("SELECT * FROM pariduclient");
$sel->setFetchMode(PDO::FETCH_ASSOC);
$sel->execute (array());
$tab_solde=$sel->fetchAll();
$_SESSION["solde_du_compte"]=$tab_solde[0]["solde_du_compte"];
echo '<pre>';print_r($tab);echo'</pre>';echo '<pre>';print_r($_SESSION);echo'</pre>';
/*c'est ici que je fais ma requete pour insérer une valeur indéchivrable dans ma bdd que j'utiliserai pour mon système de "se rappeler de moi"*/
if ($_POST['connexion_automatique']){
require'connexion_base_de_donnees.php';
$se_souvenir= str_random(250);
$pdo->prepare('UPDATE infosdesclients SET se_souvenir = ? WHERE adresse_mail=?')->execute([$se_souvenir,$tab->adresse_mail]);
setcookie('remember',$tab->adresse_mail . '=='.$se_souvenir.sha1($tab->adresse_mail.'maison'),time()+60*60*24*10);
}
die();
header("Location: page_de_jeu.php");
}
}
else {echo 'mauvais login ou mot de passe'; die ();}
?>
tilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code)
Ce que je veux
Pouvoir faire un update dans ma bdd
Ce que j'obtiens
aucun update ne se fait et sa fait plus de 24 heures que je vois pas ce qui cloche
Hello,
A tester:
<?php
if (isset($_POST['envoyer'])) {
if (
isset($_POST['adresse_mail']) && !empty($_POST['adresse_mail']) &&
isset($_POST['mot_de_passe']) && !empty($_POST['mot_de_passe'])
) {
try {
$pdo = new PDO('mysql:dbname=identifiantsclients;host=localhost', 'root', "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$adresse_mail = htmlspecialchars($_POST['adresse_mail']);
$mot_de_passe = htmlspecialchars($_POST['mot_de_passe']);
$sel = $pdo->prepare("SELECT * FROM infosdesclients WHERE adresse_mail = ? and mot_de_passe = ? LIMIT 1");
$sel->execute([$adresse_mail, $mot_de_passe]);
$tab = $sel->fetch();
if ($tab) {
if (!session_id()) {
session_start();
session_regenerate_id();
}
$_SESSION["authentification"] = "oui";
$_SESSION["nom"] = $tab["nom"];
$_SESSION["prenoms"] = $tab["prenoms"];
$_SESSION["adresse_mail"] = $tab["adresse_mail"];
$_SESSION["numero_de_telephone"] = $tab["numero_de_telephone"];
$_SESSION["pseudo"] = $tab["pseudo"];
$sel = $pdo->prepare("SELECT solde_du_compte FROM pariduclient");
$sel->execute();
$tab_solde = $sel->fetch();
$_SESSION["solde_du_compte"] = $tab_solde["solde_du_compte"];
echo '<pre>';
print_r($tab);
echo '</pre>';
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
/* C'est ici que je fais ma requête pour insérer une valeur indéchiffrable dans ma base de données que j'utiliserai pour mon système "Se souvenir de moi". */
if (isset($_POST['connexion_automatique'])) {
require 'connexion_base_de_donnees.php';
$se_souvenir = str_random(250);
$pdo->prepare('UPDATE infosdesclients SET se_souvenir = ? WHERE adresse_mail = ?')->execute([$se_souvenir, $tab['adresse_mail']);
setcookie('remember', $tab['adresse_mail'] . '==' . $se_souvenir . sha1($tab['adresse_mail'] . 'maison'), time() + 60 * 60 * 24 * 10);
}
header("Location: page_de_jeu.php");
exit(); // Utilisez exit() pour arrêter le script après une redirection.
} else {
echo 'Mauvais login ou mot de passe';
}
} catch (PDOException $e) {
echo "Erreur : " . $e->getMessage();
}
} else {
echo 'Adresse e-mail et mot de passe sont obligatoires.';
}
}
?>
Bonsoir @Mimiclcl , j'espere que tout va bien, j'ai essayé le code mais malheuresement il n'y a toujours pas de update dans la partie se_souvenir de ma bd, par contre lorsque j'entre un mauvais login , le message mauvais login ou mot de passe s'affiche
Hello,
Au vu de tous les sujets que tu créer je commence à me dire si ça serait pas mal que je regarde plus en détails :)
J'ai l'impression que tu suis un vieux tutoriel ou une personne qui ne suit pas les bonnes pratique car il y a plusieurs problème dans le code, qui ne devrait plus être fait de nos jours. Voici une liste des problèmes :
isset($x)
et un !empty($x)
htmlspecialchars
qui n'est pas utile icifetchAll
alors que dans la requête tu fais un LIMIT 1
array()
pour créer un tableau à la place de []
Je pense qu'il y a beaucoup de chose à revoir et peut-être qu'il faudrait que l'on te guide plus. Si jamais je suis sur le discord de Grafikart sous le même pseudo
oui c'est le meme pseudo et le tuto que je suis est sur youtube, de grafikart https://www.youtube.com/watch?v=YNbPMm08jcw&t=3532s il date d'il y a 8 ans, sa date mais j'ai pas trouvé mieux, c'est sans doute pour sa que mes codes ne fonctionnent pas et que je comprends pas pourquoi, je suis aussi les tutos de jason champagne c'est lui qui a suggéré l'emploi a la fois de isset et isempty, tu comprends
Bon ba si le mec te conseil isset & !empty tu peux arrêter de regarder ses tuto :)
Envoie moi un mp sur discord
dis tu aurais un lien discord pour te contacter en mp, j'ai un peu de mal a te retrouver