Problème base de données MySql

Résolu/Fermé
IIwayII Messages postés 28 Date d'inscription vendredi 12 mars 2021 Statut Membre Dernière intervention 23 juin 2021 - 12 mars 2021 à 19:17
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 - 12 mars 2021 à 22:44
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 :
<?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

2 réponses

jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
12 mars 2021 à 19:20
0
IIwayII Messages postés 28 Date d'inscription vendredi 12 mars 2021 Statut Membre Dernière intervention 23 juin 2021
12 mars 2021 à 19:30
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
0
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651
12 mars 2021 à 19:47
Et à quelle ligne de code corrspond la ligne 61 du fichier C:\MAMP\htdocs\Therzord\inscription_post.php

De plus,. Montre nous le code modifié.
0
Val987 > jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024
12 mars 2021 à 22:33
Bonjour, j'ai trouvé comment régler le problème, il s'agissait d'un problème avec la fonction fetch(),

Merci
0
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 4 651 > Val987
12 mars 2021 à 22:44
Tu penseras alors à marquer le sujet en résolu.
0