Je suis pas trop fan de PDO, perso, mais je dirait peutêtre que le problème vient de ta requête
Faut mettre :Monpseudo et non pas Monpseudo
bonjour,
je debute en php et tente de faire un espace admin pour mon site j'aimerais biensur avoir quelques commandes en plus que les autres admins
<?php
session_start();
if(isset($_SESSION['pseudo']) AND isset($_SESSION['id']))
{
$_SESSION['pseudo'] = $pseudo;
$_SESSION['id'] = $id;
$requser = $bdd->prepare("SELECT * FROM connexionadmin WHERE pseudo = Monpseudo and id = 1 ");
$requser->execute(array($pseudo, $id));
$useradmin1 = $requser->rowCount();
if($useadmin1 == 1)
{
echo "commande admin 1";
}
else
{
echo " commande autres admin";
}
}
else
{
echo "erreur !!!";
}
?>
j'aimerais que : si ma session est connectée alors afficher .... sinon afficher .
pour le moment j'ai juste le message "erreur !!!" qui s'affiche
Je suis pas trop fan de PDO, perso, mais je dirait peutêtre que le problème vient de ta requête
Faut mettre :Monpseudo et non pas Monpseudo
je viens d'essayer pas de changements .... toujours le message erreur
Salut logique tu as inversé...
devient
merci je viens d'inverser mais toujours pareil le message d'erreur ....
En même temps le code complet est faut ta requête devrait être :
Pourquoi tu dis que le code complet est faut.
Il est possible de faire une requete préparée.
Par contre oui tu a raison rowCount ne permet pas de faire un count sur un select. Rowconut va permetre de compter le nombre de ligne DELETE, UPDATE, INSERT.
Ce que tu peux faire :
Bonjour.
Tu as plusieurs erreurs dans ton code, je vais donc les expliquer en les énumérant :
pseudoet id sont mal ordonnées, tu dois d'abord déclarer la variable, puis ensuite lui définir sa valeur, tu dois donc faire comme te l'a suggéré shinix :
$bdd ou l'inclusion du fichier afin de pouvoir l'utiliser.Par :
? à la place de celle qui nécessite la forme :variable, il te faut donc remplacer :
Par :
useradmin1 mais tu utilises ensuite la variable useadmin1 qui n'est pas définie et qui ne correspond donc pas à la variable useradmin1.if(isset($_SESSION['pseudo']) && isset($_SESSION['id']))
{
$pseudo = $_SESSION['pseudo'];
$id = $_SESSION['id'];
// Inclusion ici de ton fichier qui instancie la connexion à la base de données en PDO et qui définie bien l'objet dans la variable $bdd
$requser = $bdd->prepare("SELECT * FROM connexionadmin WHERE pseudo = :pseudo and id = :id");
$requser->execute(array('pseudo' => $pseudo, 'id' => $id));
$useradmin1 = $requser->rowCount();
if($useradmin1 == 1)
{
echo "commande admin 1";
}
else
{
echo " commande autres admin";
}
}
else
{
echo "erreur !!!";
}
merci beaucoup mais par contre je ne comprend pas bien l'erreur sur id et pseudo voici le code pour la connexion peut être que l'erreur est finalement dedans :
<?php
$bdd = new PDO('mysql:host=localhost;dbname=bddsti','root','');
if(isset($_POST['connexion']))
{
$pseudoconnect = htmlspecialchars($_POST['pseudo']);
$mdpconnect = sha1($_POST['mdp']);
if(!empty($pseudoconnect) AND !empty($mdpconnect))
{
$requser = $bdd->prepare("SELECT * FROM connexionadmin WHERE pseudo = ? and mdp = ? ");
$requser->execute(array($pseudoconnect, $mdpconnect));
$userexist = $requser->rowCount();
if($userexist == 1)
{
header("location: tblcontrole.php");
}
else
{
$erreur = "mdp ou pseudo incorrect";
}
}
else
{
$erreur = "Tout les champs doivent etre remplis";
}
}
?>
<?php
if(isset($erreur))
{
echo $erreur;
}
?>
Je crois qu'une petite edition du post s'impose (^_^)
je ne comprend pas bien l'erreur sur id et pseudo
Ton problème, c'est que d'après le code que tu nous montre, tu ne définies pas les clés pour la session, du coup elles ne peuvent pas être utilisables par la suite.
Je te recommande de visionner le tutoriel Tutoriel Vidéo PHP » Gestion d'un espace membre, bien qu'il serait préférable que tu utilises la structure MVC : Tutoriel Vidéo PHP » Gestion d'un espace membre (refactorisation).
Juste comme ça, ne serait il pas plus simple de solutionner le problème si on connaissait le message d'erreur que php retourne ?
le message d'erreur est celui que j'ai crée dans ma fonction
Captainfier, comme déja dit le rowcoun ne permet pas de retourner le nombre de ligne d'un select.
Donc $userexist == 1 => False donc on passe dans le else