Problème if else if et connexion [PHP] - PHP - Programmation
Marsh Posté le 16-02-2007 à 18:41:25
Tu pourrais expliquer ton probleme un peu mieux et en français s'il te plait
"le message d'erreur n'apparait que quand je tape un mauvai mot de passe, que le login est mauvais il me met directement la page d'entrer... j'ai beau cherché je ne trouve pas. "
Marsh Posté le 16-02-2007 à 19:06:46
oui désolé c'est pas très facile a exprimer donc :
Quand l'utilisateur tape son login et son mot de passe, si il est faux il devrait apparaître un message d'erreur " Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon " (j'ai prévu une condition pour ça)
Cependant ça marche, mais qu'en partie, en fait
si je tape juste un mot de passe (faux), sans login, le message apparait
Si je tape ke un login sans mot de passe rien n'apparait ça me renvoi vers ma sans message.
Par contre si je rentre les 2 kil son faux ça marche (logique puisque un mot de passe est rentré)
Donc ma question comment se fait il que ça marche pr mot de passe mai pas pour login
Marsh Posté le 16-02-2007 à 23:12:28
C'est normal car tu as mis :
Code :
|
Cela veut dire si le champ login à été saisi ET mot de passe aussi alors
$login = login saisi
$mot de passe = mot de passe saisi
sinon $login=$mot_de_passe = '';
Or quand tu ne rentres que le mot de passe ou que le login tu as seulement $_POST['login'] ou $_POST['mot_de_passe'] qui existe et donc tu ne rentres pas dans la condition "if (isset($_POST['login']) AND ($_POST['mot_de_passe'])) " et du coup tu as $login=$mot_de_passe = ''.
Donc par la suite tu entres dans le if ($login == "" AND $mot_de_passe == "" ) et donc tu raffiches ton formulaire sans message d'erreur.
Par contre en mettant ça la place de du code du dessus , tu resouds ton probleme:
Code :
|
Marsh Posté le 16-02-2007 à 23:37:14
ah merci bcp effectivement j'ai fait une erreur je débute donc c pas facile mais bon tt s'apprend...
Je testerai tt ça ken je my remettrai pui si j'ai besoin d'aide je reposterai ici
Marsh Posté le 17-02-2007 à 02:02:12
Très bon début.
Pour vous faciliter la chose, je ne pourais que vous conseiller d'aller regarder du coté des sessions.
Un petit lien
Sans oublier le manuel en ligne, une aide précieuse pour nous tous.
Marsh Posté le 17-02-2007 à 02:29:07
Alisteroid a écrit :
|
Petite erreur : Le "else" sera exécuté ici, si et seulement si, le mot de passe n'a pas été défini. Il ne sera pas exécuté si le login n'a pas été entré.
Code :
|
Serait plus correct étant donné ton indication
Marsh Posté le 17-02-2007 à 05:07:49
Bon début, mais c'est vraiment vraiment le début...
Va falloir plancher sérieusement sur PHP, MySQL, HTML & CSS, HTTP(S), définir les différentes fonctionnalités, concevoir la base de données, implémenter la couche d'accès aux données, l'interface, la sécurité, et j'en passe... Autant dire que malgré l'ampleur du projet ça va prendre du temps, beaucoup de temps...
Si tu postes dans le fofo Emploi je te répondrai très certainement, avec des résultats concrets très rapides et robustes
Marsh Posté le 17-02-2007 à 12:01:17
lol heu je c qu'il va falloir plancher, ce qui est bien c'est que ce que mon site est déja opérationnel actuellement donc j'ai tout le temps qu'il faut pour le faire et etant passionné d'informatique, j'apprend et ça me plait. J'aimerai d'abord réaliser une interface simple, le HTML et CSS c'est pas un souci ça je sait faire...mais je k'ai pa intégré au code ici pour pa alourdir le sujet.
Je suis content d'avoir a commencé a comprendre le fonctionnement de php.
Apparement donc ensuite une fois cela fais il va falloir que je mette ds mes page d'administration des fonction de session pour les securisé je me trompe?
Marsh Posté le 17-02-2007 à 22:13:00
Hehe, j'aurais tenté...
Pour les sessions c'est ici => http://fr.php.net/manual/fr/ref.session.php, ta nouvelle bible.
Mais avant de parler des sessions il faut améliorer ton script d'identification et donc parler des utilisateurs de ta partie admin... A qui sera-t-elle destinée ?
Marsh Posté le 18-02-2007 à 09:04:06
Dit, on peut acheter des trucs en ligne sur ton site?
Parce que j'aimerais bien profité du site que tu as fait du haut de tes connaissances si c'est le cas..
Marsh Posté le 18-02-2007 à 22:38:37
non aucun achat en ligne...je suis pas concerné par ça, quand à la partie admin elle est toute petite y aura certainement 2 ou 3 personnes qui pourront acceder a cette partie...
Merci pr le lien, je vai etudier ma nouvelle bible a fond... puis on verra bien
Marsh Posté le 18-02-2007 à 22:41:35
Je vien s de lire la correction si je compren bien, il me manquait un "if" car il ne prenait en compte que le mot de passe (et pas le 1er "if) donc au final ça donne :
Si lutilisateur entre login ( on definit login)
Si utilisateur entre mot de passe (on défénit mot de passe)
Si utilisateur entre login et mot de (passe et que c'est vide)
La j'affiche ma page avec erreur
et ensuite sinon blablabla...
?
Marsh Posté le 19-02-2007 à 11:29:20
lilougirl8 a écrit :
|
Olalala... Y'a aucune sécurité là... Et pis depuis quand on fait des redirections en javascript comme ça ? Va en falloir des heures pour un truc correct, j'espère que tu es vraiment passionnée
Marsh Posté le 19-02-2007 à 14:52:44
oui je sais qu'y a aucune connexion j'y travail la justement... et c'est galère lol
Marsh Posté le 19-02-2007 à 15:09:03
Code :
|
Voila quen pensez vous, j'ai pofiner puis essayer de donnée plus de possiblité (notament avec la BDD pour ajouter des utilisateur)...
Je prescice que j'ai jamais fais ça de ma vie et que je me sui mis y'a une semaine au php...
Alor bon...les conseils sont les bienvenue et vous voyer que j'y met bcp de bonne volonté
Marsh Posté le 19-02-2007 à 15:47:51
Mets ton code entre des balises :
Code : |
Ca sera plus lisible.
Pour apprendre le PHP, tu peux te diriger vers http://www.siteduzero.com/tuto-3-4 [...] c-php.html
Marsh Posté le 19-02-2007 à 19:12:21
voila j'ai travaillé toute l'aprem dessus alor j'ai reusse donc a créer la page de connexion avec session, j'ai créer un BDD avec login mot de passe,
et j'ai reussi à "proteger" le panneau d'administration et les autres page et j'ai aussi créer un bouton de deconnexion pour quitter la session dès qu'on a fini....
Et merci pr le lien c'est sympa je connai deja j'ai commencer a apprendre gràce a ce site
Marsh Posté le 19-02-2007 à 23:03:51
Bon... après vérification y'a une erreur, il semble que la connexion se fait avec n'importz quelle login et mot de passe... je vais chercher d'ou viens le probleme...:s
Marsh Posté le 19-02-2007 à 23:56:36
Le code de connexion à l'air correcte même si il faudrait penser à la possibilité d'avoir plus d'un utilisateur (il faut un where sur le login dans ton select et si il y a un résultat => verif du password).
Derrière, tu ne t'en sortira pas sans creer de session.
Redirige vers une autre page avec la fonction php 'header'.
Toutes tes pages doivent vérifier l'existence d'une session valide.
Ceci est le début de la base de la base, tu n'as pas le choix.
Tu dis avoir fait des progrès cet aprem, t'en es où du coup ?
Marsh Posté le 20-02-2007 à 09:13:56
alors la sur le script je comprend pas.. il me connecte avec n'importe quelle login et mot de passe...
j'ai beau creusé je voi pa ou j'ai fait l'erreur...
Marsh Posté le 20-02-2007 à 09:48:46
Arf, je viens de le voir.
Code :
|
== c'est mieux.
Ca m'arrive encore, t'inquiètes
Marsh Posté le 20-02-2007 à 09:57:02
Ui, sauf que comme tu le dis toi-même :
Bob2024 a écrit : (...) il faudrait penser à la possibilité d'avoir plus d'un utilisateur (il faut un where sur le login dans ton select et si il y a un résultat => verif du password |
Marsh Posté le 20-02-2007 à 11:17:41
le probleme c'est que quand je met "==" il me renvoi directement a ma redirection sans passer par la case formulaire, j'avais deja essayer
Marsh Posté le 20-02-2007 à 11:27:21
j'ai tjr le meme probleme en changeant j'ai rajouter le where...je bloc fais !ù!$mùùlùl !!!
Code :
|
Marsh Posté le 20-02-2007 à 11:40:07
Code :
|
Sinon, il ne sait ce qu'il cherche.
Marsh Posté le 20-02-2007 à 11:40:19
http://nte-socio.univ-lyon2.fr/Marc_Grange/SQL.htm
Avec exemples
Marsh Posté le 20-02-2007 à 11:43:50
merci pour le site c'est vrai que j'ai du mal avec la syntaxe...par contre tjr ce probleme de merdre.. il me renvoi directement a ma page alor qu'il devrai mafficher ma page de connexion... on dirait qu'il ya un probleme dans la partie ou je verifie si le login et mdp existe
Marsh Posté le 20-02-2007 à 11:49:09
Il faudrait un else qui recharge ta page à ton
Code :
|
Marsh Posté le 20-02-2007 à 11:55:54
Code :
|
C'est ça que tu voulais dire parce si c'est ça ça marche pas :s
Marsh Posté le 20-02-2007 à 12:26:52
Si tu débute php, je te conseil de jeter un coup d'oeil sur ce site : http://www.phpdebutant.org/
Tout est expliqué pas à pas. Avec les choses à faire et à ne pas faire.
Marsh Posté le 20-02-2007 à 13:18:18
Tiens essaye ça :
Code :
|
Marsh Posté le 20-02-2007 à 13:23:32
En vrai, c'est pas beau ce que je te donne et ce n'est même pas sûr que ça marche.
Le problème ici c'est que si il manque le mot de passe ou le login, la variable $donnee['password'] n'est pas initialisée.
Donne lui une valeur "" avant le test et test ensuite :
Code :
|
Marsh Posté le 20-02-2007 à 13:32:04
Voila j'ai tout repris du début, je ne savais pas qu'on pouvais imbriquer des "SI" enfin je le savais mais j'avais oublier carrement, je pense que mes conditions étaient mauvaises c'etait tout mélanger
Code :
|
Quelqu'un pourrais t'il me dire si c'est OK?
Marsh Posté le 20-02-2007 à 13:43:22
C'est beaucoup mieux.
Mais le début n'est pas logique :
Tu mets à blanc les deux champs seulement si le mot de passe n'est pas set.
Fais un seul test pour les deux champs et agit sur les deux en conséquence.
Marsh Posté le 20-02-2007 à 14:26:57
Code :
|
Bon j'ai fait tt bete
Marsh Posté le 16-02-2007 à 18:26:03
Bonjour
Je débute ne php, je fait un travail de fourmis très long puisque j'y connai rien, mon but, créer un partie administration pout mon site d'agence immobilière...
En gros j'aimerai donc pouvoir :
créer des annonces
Gérer les annonces
et gerer d'autres services assez simpliste (une barre de coup de coeur avec villa...)
Le site existe deja, mai il n'est pa en php enfin ma parti a moi on va dire que aujourdhui je n'ai aucun controle de la partie annonces car ce nest pas moi qui la gere, c'est pour cela que j'aimerai le faire moi , pour avoir une totale liberté d'action sur mes pages.
Donc j'ai commencer un ptit script pour me connecter a la parti administration :
<html>
<head></head>
<body>
<?php
if (isset($_POST['login']) AND ($_POST['mot_de_passe'])) //Si le visiteur entre le login et le mot de passe
{
$login = $_POST['login']; //On definit login
$mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
}
else //champs vide
{
$login = "";
$mot_de_passe = "";
}
if ($login == "" AND $mot_de_passe == "" ) // Si login et mot de passe vide , on affiche la page de connexion
{
?>
<form action="testphp.php" method="post">
Login : <input type="text" name="login" size="10" maxlength="256">
Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
<input type="submit" value="connexion">
</form>
<?php
}
elseif ($login == "Daniel" AND $mot_de_passe == "mechant" ) // Sinon si Login et mot de passe OK on affiche la page
{
?>
<script type="text/javascript">
document.location.replace("http://localhost/panneau-admin.php" );
</script>
<?php
}
else // Sinon on affiche la page avec une erreur
{
?>
<form action="testphp.php" method="post">
Login : <input type="text" name="login" size="10" maxlength="256">
Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
<input type="submit" value="connexion"><br><br>
Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon
</form>
<?php
}
?>
</body>
</html>
Voila ça c'est l'ebauche (tout simple) que j'ai inclus dans ma vrai page, je n'ai pas pompé de script, j'ai fais ça a partir d'exemple...
Le script fonctionne bien mai j'ai un petit "bug"
le message d'erreur n'apparait que quand je tape un mauvai mot de passe, que le login est mauvais il me met directement la page d'entrer... j'ai beau cherché je ne trouve pas.
Pourriez vous m'aider?
Je mettrai a jour ce topic au fur et a mesure de la création pour eviter de faire 50 post.
Jespere que vous saurez m'aider...