Problème base de données MySql
Résolu
IIwayII
Messages postés
27
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 -
Bonjour,
Tout à l'heure, j'étais dans phpmyadmin , quand j'ai eu un problème de connexion, alors que je modifiais une des tables de mes bases de données : je ne peux désormais plus y accéder, ou la supprimer pour en créer une ayant le même nom... ce n'est pas la raison de ma venue ici :
La table qui a "bugué" s'appelait "membres" (elle contenanit les infos des membres de mon site, vous inquiéter pas le site est pas encore publié donc elle était vide :D), et je l'ai renommé "utilisateur", donc j'ai du changer mes codes de connexion et d'inscription pour que php demande à mysql de chercher dans la nouvelle table et pas l'ancienne... j'ai juste à chaque fois changé le nom de la table, pour mon code de connexion, sa marche nickel, pour mon code d'inscription, c'est pas trop sa... Ma page indique "inscription réussi", mais quand je vais voir dans ma base de donnée, rien ne s'est ajouté. Voici mon code :
Sa ne m'affiche aucun message d'erreur si ce n'est :
Notice: Trying to access array offset on value of type bool in C:\MAMP\htdocs\Therzord\inscription_post.php on line 61
ce qui ne devrait pourtant pas altérer, la connexion, j'avais enlevé la ligne de code n°61 ($_SESSION['id'] = $resultat['id'];) , ainsi il ne m'envoyait plus de message d'erreur mais ça ne marchait toujours pas... s'il vous plait aidez moi, je comprend pas ce qui va pas...
J'ai joins une photo de la structure de ma base de donnée au cas où, mais je pense pas que ça soit ça, si ?
Merci d'avance pour vos réponse :)

Tout à l'heure, j'étais dans phpmyadmin , quand j'ai eu un problème de connexion, alors que je modifiais une des tables de mes bases de données : je ne peux désormais plus y accéder, ou la supprimer pour en créer une ayant le même nom... ce n'est pas la raison de ma venue ici :
La table qui a "bugué" s'appelait "membres" (elle contenanit les infos des membres de mon site, vous inquiéter pas le site est pas encore publié donc elle était vide :D), et je l'ai renommé "utilisateur", donc j'ai du changer mes codes de connexion et d'inscription pour que php demande à mysql de chercher dans la nouvelle table et pas l'ancienne... j'ai juste à chaque fois changé le nom de la table, pour mon code de connexion, sa marche nickel, pour mon code d'inscription, c'est pas trop sa... Ma page indique "inscription réussi", mais quand je vais voir dans ma base de donnée, rien ne s'est ajouté. Voici mon code :
<?php
if (preg_match("#^[a-zA-Z0-9._-]{2,16}$#", $_POST['pseudo']))
{
if (isset($_POST['mail']))
{
$_POST['mail'] = htmlspecialchars($_POST['mail']);
if (preg_match("#^[a-zA-Z0-9àáâãäåçèéêëìíîïðòóôõöùúûüýÿ._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))//#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#
{
if (($_POST['mdp']) == ($_POST['mdp2']))
{
if (preg_match("#^[a-zA-Z0-9._-]{6,16}$#", $_POST['mdp']))
{
$pass_hache = password_hash($_POST['mdp'], PASSWORD_DEFAULT);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=wayblog;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$req = $bdd->prepare('SELECT * FROM utilisateurs WHERE pseudo = :pseudo ');
$req->execute(array('pseudo' => $_POST['pseudo']));
$resultat = $req->fetch();
if ($resultat)
{
echo 'Cet identifiant n\'est pas libre !';
header('Location: inscription.php?pseudo=deja_utilisé');
}
else
{
$pseudo = $_POST['pseudo'];
$req = $bdd->prepare('SELECT * FROM utilisateurs WHERE mail = :mail ');
$req->execute(array('mail' => $_POST['mail']));
$resultat2 = $req->fetch();
if ($resultat2)
{
echo 'Cet identifiant n\'est pas libre !';
header('Location: wayblog-inscription.php?email=deja_utilisé');
}
else
{
$email = $_POST['mail'];
$type = "membre";
$req = $bdd->prepare('INSERT INTO utilisateurs(pseudo, pass, mail, date_inscription, type) VALUES(:pseudo, :pass, :email, CURDATE()), :type');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => $pass_hache,
'email' => $email,
'type' => $type));
echo 'Félicitations, vous êtes désormais inscrit sur notre site !';
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['pseudo'] = $pseudo;
}
}
}
else
{
header('Location: inscription.php?longueurcode=incorrect');
}
}
else
{
header('Location: inscription.php?codes=non-identiques');
}
}
else
{
header('Location: inscription.php?mail=invalide');
}
}
else
{
header('Location: inscription.php?mail=invalide');
}
}
else
{
header('Location: inscription.php?longueur=incorrect');
}
?>
Sa ne m'affiche aucun message d'erreur si ce n'est :
Notice: Trying to access array offset on value of type bool in C:\MAMP\htdocs\Therzord\inscription_post.php on line 61
ce qui ne devrait pourtant pas altérer, la connexion, j'avais enlevé la ligne de code n°61 ($_SESSION['id'] = $resultat['id'];) , ainsi il ne m'envoyait plus de message d'erreur mais ça ne marchait toujours pas... s'il vous plait aidez moi, je comprend pas ce qui va pas...
J'ai joins une photo de la structure de ma base de donnée au cas où, mais je pense pas que ça soit ça, si ?
Merci d'avance pour vos réponse :)

Configuration: Windows / Chrome 88.0.4324.190
A voir également:
- Problème base de données MySql
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Formules mathématiques de base - Télécharger - Études & Formations
2 réponses
Bonjour
Commence par ça
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Commence par ça
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ok merci j'obtiens cela :
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''membre'' at line 1 in C:\MAMP\htdocs\Therzord\inscription_post.php:61 Stack trace: #0 C:\MAMP\htdocs\Therzord\inscription_post.php(61): PDOStatement->execute(Array) #1 {main} thrown in C:\MAMP\htdocs\Therzord\inscription_post.php on line 61
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''membre'' at line 1 in C:\MAMP\htdocs\Therzord\inscription_post.php:61 Stack trace: #0 C:\MAMP\htdocs\Therzord\inscription_post.php(61): PDOStatement->execute(Array) #1 {main} thrown in C:\MAMP\htdocs\Therzord\inscription_post.php on line 61