Erreur 500
Résolu
sam587
Messages postés
315
Statut
Membre
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
Salut, je suis novice dans le php et je coince ici:
J'ai ce code, qui me semble bon.
Il s'agît de la partie traitement serveur pour se connecter à une session en vérifiant les informations dans la BDD, rien de très complexe.
Mais mon code me génère une erreur 500 lors de l'envoie du formulaire de connexion.
Voyez-vous des erreurs de syntaxes ou autre là dedans? Car de mon côté je ne trouve rien. Merci d'avance.
J'ai ce code, qui me semble bon.
Il s'agît de la partie traitement serveur pour se connecter à une session en vérifiant les informations dans la BDD, rien de très complexe.
Mais mon code me génère une erreur 500 lors de l'envoie du formulaire de connexion.
<?php
if (isset($_POST['connexion']))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$mdp = htmlspecialchars($_POST['mdp']);
$req = $bdd->prepare("SELECT id FROM membres WHERE login=':pseudo' AND pass=':mdp'");
$requete->execute(array($pseudo, $mdp));
$resultat = $req->fetch();
if (!$resultat)
{
echo 'Mauvais identifiant ou mot de passe !';
}
else
{
session_start();
$_SESSION['id'] = $resultat['id'];
$_SESSION['pseudo'] = $pseudo;
header ('Location: index.php');
}
}
?>
Voyez-vous des erreurs de syntaxes ou autre là dedans? Car de mon côté je ne trouve rien. Merci d'avance.
A voir également:
- Erreur 500
- Erreur 500 - Guide
- Formate pour taxer client 500€ ✓ - Forum Consommation & Internet
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
1 réponse
Bonjour,
Tu as des quotes en trop dans ta requête.
Pour trouver les erreurs... il faut ajouter un "error_reporting" en début de ton script et jouer avec des TRY / CATCH pour intercepter les erreurs.
Voici ton code corrigé et remis en forme correctement :
Tu as des quotes en trop dans ta requête.
Pour trouver les erreurs... il faut ajouter un "error_reporting" en début de ton script et jouer avec des TRY / CATCH pour intercepter les erreurs.
Voici ton code corrigé et remis en forme correctement :
<?php
//Pour afficher les erreurs php
error_reporting(E_ALL);
//Démarrage des SESSION (avant TOUTE autre chose )
session_start();
//récupération "propre" des variables :
$pseudo = isset($_POST['pseudo']) ? htmlspecialchars($_POST['pseudo']): NULL;
$mdp = isset($_POST['mdp']) ? htmlspecialchars($_POST['mdp']): NULL;
if ($pseudo && $mdp) {
try{
$sql = "SELECT id FROM membres WHERE login=:pseudo AND pass=:mdp";
$params = array(":pseudo"=>$pseudo,":mdp"=> $mdp);
$req = $bdd->prepare($sql);
$requete->execute($params);
$resultat = $req->fetch();
}catch(Exception $e) {
//en cas de problème dans la requête
echo "<pre><br>".$e->getMessage()."<br>";
echo "<u>Requete :</u>".$sql;
echo "Params :<br>";
print_r($params);
echo "</pre>";
}
if (!$resultat) {
echo 'Mauvais identifiant ou mot de passe !';
} else {
$_SESSION['id'] = $resultat['id'];
$_SESSION['pseudo'] = $pseudo;
header ('Location: index.php');
}
}
?>
je pense que ça vient de là.
Commence par ça:
<?php //Pour afficher les erreurs php error_reporting(E_ALL); //Démarrage des SESSION (avant TOUTE autre chose ) session_start(); //récupération "propre" des variables : $pseudo = isset($_POST['pseudo']) ? htmlspecialchars($_POST['pseudo']): NULL; $mdp = isset($_POST['mdp']) ? htmlspecialchars($_POST['mdp']): NULL; if ($pseudo && $mdp) { try{ $sql = "SELECT id FROM membres WHERE login=:pseudo AND pass=:mdp"; $params = array(":pseudo"=>$pseudo,":mdp"=> $mdp); $req = $bdd->prepare($sql); $requete->execute($params); $resultat = $req->fetch(); }catch(Exception $e) { //en cas de problème dans la requête echo "<pre><br>".$e->getMessage()."<br>"; echo "<u>Requete :</u>".$sql; echo "Params :<br>"; print_r($params); echo "</pre>"; } if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { $_SESSION['id'] = $resultat['id']; $_SESSION['pseudo'] = $pseudo; //header ('Location: index.php'); } } ?>n'aurais tu pas oublié d'inclure ton fichier te connexion ?
un truc du genre :
Pour la connexion à la BDD j'utilise ça: include('config.php') et (je pense) que ça fonctionne jusqu'ici.
Sinon j'ai tenté de trouver la partie qui génère l'erreur, en retirant ce bout du code :
try{
$sql = "SELECT * FROM membres WHERE login=:pseudo AND pass=:mdp";
$params = array(":pseudo"=>$pseudo,":mdp"=> $mdp);
$req = $bdd->prepare($sql);
$requete->execute($params);
$resultat = $req->fetch();
}
catch(Exception $e) {
//en cas de problème dans la requête
echo "<pre><br>".$e->getMessage()."<br>";
echo "<u>Requete :</u>".$sql;
echo "Params :<br>";
print_r($params);
echo "</pre>";
}
Ça "fonctionne" dans le sens où je n'ai pas l'erreur, par contre je n'arrive pas à trouver la ligne source de l'erreur.
$req d'un côté .... $requete de l'autre. .. erreur non ?