Verifié des données dans une bdd avec javascript php mysql

Résolu/Fermé
manoxiah Messages postés 3 Date d'inscription samedi 11 janvier 2014 Statut Membre Dernière intervention 15 janvier 2014 - 11 janv. 2014 à 14:28
manoxiah Messages postés 3 Date d'inscription samedi 11 janvier 2014 Statut Membre Dernière intervention 15 janvier 2014 - 15 janv. 2014 à 23:06
bonjour a tous, je débute complètement en javascript et je n'arrive pas a finir mon script, je souhaite créer un formulaire de connexion, avec une vérification de email et de mot de passe ( si les identifiants sont valide on rentre dans le site sinon alert problème d'identifiants), voila mes code

code html avec formulaire

<div id="formulaire_connexion">
<!-- TRAITEMENT --><form action="traitement/traitement_page_accueil.php?connexion" method="post" name="form_connexion" onSubmit="return verification_formulaire_connection()">
<!----> <input id="input_mail_connexion" type="text" name="email" title="Entré votre email"
placeholder="<?php if ((isset($_POST['email'])) and $_POST['email'] != false){ echo $_POST['email'];}else { echo 'Email';}?>" ><strong> @youdname.fr</strong><br /><br />
<!----> <input id="input_mot_de_passe_connexion" type="password" name="mot_de_passe" title="Entré votre mot de passe"
placeholder="<?php if ((isset($_POST['mot_de_passe'])) and $_POST['mot_de_passe'] != false){ echo $_POST['mot_de_passe'];}else { echo 'Mot de passe';}?>" ><br /><br />
<!----> <input id="bouton_formulaire" type="submit" value="Validé" />
</form>
</div>

<script language="JavaScript">

function verification_formulaire_connection()
{
var email = document.getElementById('input_mail_connexion').value;
if(email == "")
{
alert("Veuillez entrer une adresse mail!");
document.form_connexion.email.focus();
return false;
}
else if (/^[a-zA-Z]{1,100}$/.test(email))
{
var mot_de_passe = document.getElementById('input_mot_de_passe_connexion').value;
if(mot_de_passe == "")
{
alert("Veuillez entrer votre mot de passe");
document.form_connexion.mot_de_passe.focus();
return false;
}
else if (/^[a-zA-Z]{1,100}$/.test(mot_de_passe))
{
var email = document.getElementById('input_mail_connexion').value,
mot_de_passe = document.getElementById('input_mot_de_passe_connexion').value;

var email = encodeURIComponent(email),
mot_de_passe = encodeURIComponent(mot_de_passe);
/////////////////on envoi
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http//www.youdname.fr/traitement/traitement_page_accueil.php',true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('email=' + email + '&mot_de_passe=' + mot_de_passe);
////////////////on recupere
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
/////////////////on affiche
alert("caaaaaaaaaaaaaaa marcheeeeeeeeeeee");
}
};
}
else if (/^[a-zA-Z]{100,}$/.test(mot_de_passe))
{
alert("vous avez entré un mot de passe trop long");
document.form_connexion.mot_de_passe.focus();
return false;
}
}
else if (/^[a-zA-Z]{100,}$/.test(email))
{
alert("vous avez une adresse trop longue");
document.form_connexion.email.focus();
return false;
}
}

</script>



code de la page appelé (php)

<?php

include("traitement_infos_mes_pages.php");

/************************************************************ connexion ****************************************/
if ((isset($_POST["email"])) and (isset($_POST["mot_de_passe"])))
{
$_POST["email"] = htmlspecialchars($_POST["email"]);
$_POST["mot_de_passe"] = htmlspecialchars($_POST["mot_de_passe"]);

try
{
$req_connexion = $bdd_youdname_utilisateurs->prepare('SELECT * FROM compte WHERE email=:a AND mot_de_passe=:b');
$req_connexion->execute(array('a'=>$_POST['email'], 'b'=>$_POST['mot_de_passe'] ));

$verification_identifiant = $req_connexion->rowCount();

if ($verification_identifiant == 0 ){ echo 'false';} ////ici il faudrais que je renvois la réponce la 1ere page mais je ne sais pas et je ne comprend pas quel code faut il utilisé
else if ($verification_identifiant >= 1 ){ echo 'true';}

}
catch(Exception $e){ die('Erreur : '.$e->getMessage());}

}
?>


pourriez vous me dire et m'expliqué les points manquents, merci d'avance, ca fait des jours que je patauge, et j'ai lu et relu des cours et je n'arrive toujours pas a finaliser mon code
A voir également:

4 réponses

Bonjour,

Vous dites débuter en javascript, ça tombe bien javascript ne servira pas à vérifier un identifiant sur une base de données, son utilisation est limité à l'utilisation qu'il y a dans le script(vérifier si le formulaire est correctement rempli avant de l'envoyer).
De plus pourquoi utiliser Ajax? Si vous êtes débutant Ajax n'est pas accessible pour vous puisqu'il demande la connaissance de plusieurs langages (AJAX=Asynchronous Javascript And XML, requiert javascript, XML et PHP)
Bref ça ne sert à rien de reprendre un morceau de programme que vous ne comprenez pas et qui n'est pas de vous.

Avant de faire un formulaire de vérification pour vous connecter je ferais d'abord un formulaire pour que les utilisateurs puissent s'inscrire.
Quoiqu'il en soit un formulaire HTML permet d'envoyer des informations à PHP.
Et PHP peut communiquer des requêtes avec une base de données(SQL).

Voici un exemple qui vous sera utile.

http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/transmettre-des-donnees-avec-les-formulaires


Dans le cas d'une inscription le formulaire envoi les identifiants et mot de passe à PHP qui va envoyer la requête SQL pour enregistrer/ajouter une ligne dans la base de données correspondant au nouvel inscrit.
Il est nécessaire de vérifier que l'identifiant n'existe pas déjà avant de l'ajouter. Par exemple il ne peut pas exister 2 personnes qui s'appelle Jean Dupont(si c'est l'identifiant) mais dans la réalité les homonymes existent, de même plusieurs personnes peuvent vouloir le même pseudonyme.

Pour un formulaire d'identification:
Lors de l'envoi des données à PHP le programme doit envoyer une requête(SQL) pour rechercher l'identifiant et vérifier le mot de passe.
Si ceux ci sont bons vous devez créer une variable de SESSION qui sera présente(et vérifié) sur chaque page que vous voulez rendre privé.
Pour chaque page il y a le test suivant: si la variable de SESSION existe on autorise la page sinon on affiche une page différente avec le message"vous devez être connecté pour afficher ce site"

Commencez donc par le début: Maîtriser les formulaires HTML pour récupérer les informations en PHP, apprendre les requêtes SQL qui sont le langage des bases de données.

http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/transmettre-des-donnees-avec-les-formulaires
1
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 janv. 2014 à 21:23
P'tite note: "AJAX=Asynchronous Javascript And XML, requiert javascript, XML et PHP", AJAX à la base c'était pour le XML, mais tu peux faire passer n'importe quel format texte, je fait très bien passer du JSON ou du texte brut dans un XMLHttpRequest.
0
ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 13/01/2014 à 12:18
Hello,

en fait je crois que ton try / catch dans php empêchera une erreur de revenir vers ajax. Alors soit tu gères l'erreur au niveau du javascript (et tu pars du principe que si erreur il y a dans php elle n'est pas bloquante, ou alors tu la catch ailleurs ...), soit tu gères au niveau du php et ajax ne verra pas l'erreur facilement.

Sinon tu te prendrais moins la tête en jQuery ...

Un tuto abordable sur le sujet : http://tuts.syrinxoon.net/tuts/utilisation-de-jquery-ajax

You may stop me but you can't stop us all ;-)
1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 janv. 2014 à 18:14
déja premier pb dans ton affichage suite à réponse du script php

il faut:
////////////////on recupere
		xhr.onreadystatechange = function() 
		{
			if (xhr.readyState == 4 && xhr.status == 200)
				{
	/////////////////on affiche en fonction de la réponse reçue
				var reponse=xhr.responseText;
				if(reponse=="false"){
						
 window.location.href="ta page du site";//mais ça recharge quand même la page donc aucun intérêt à passer par de l'ajax
				}else if(reponse=="true"){
					alert ("codes non trouvés");
				}
			}
        }


deuxième erreur:
dans ton formulaire tu mets <input type="submit" donc le formulaire va quand même être envoyé (donc rechargement de la page) si le script ajax ok

a mon avis il faut pour la connexion faire un formulaire pour saisir les codes qui va appeler "normalement" php pour vérif et si codes trouvés autoriser le chargement de la page d'accueil de ton site
ajax n'apporte rien d'autre à ce niveau là
1
manoxiah Messages postés 3 Date d'inscription samedi 11 janvier 2014 Statut Membre Dernière intervention 15 janvier 2014
15 janv. 2014 à 23:06
merci à tous, je laisse un lien qui m'a bien aidé
https://www.tutorielsenfolie.com/tutoriels-66-ajax-php-envoi-donnees.html
0
manoxiah Messages postés 3 Date d'inscription samedi 11 janvier 2014 Statut Membre Dernière intervention 15 janvier 2014
Modifié par manoxiah le 11/01/2014 à 17:39
ben en fait pour tout expliquer, les script inscription et connexion sont créer, et ils communique avec des regex php qui vont ensuite vérifié ou enregistré ou autre dans les bdd, mais comme on m'a conseillé maintenant d'apprendre le javascript pour dynamisé mes pages, je mets en place les script JS qui vont remplacé des anciens code php (qui eux demande de rafraîchir les pages entière et ralentisse le site) et celui de la vérification des identifient en fais partie. les codes que j'ai posté plus haut sont de moi, je ne les ai pas pris sur des forums, donc je repose ma question, j'ai un problème dans le code JS au niveau

else if (/^[a-zA-Z]{1,100}$/.test(mot_de_passe))
{
var email = document.getElementById('input_mail_connexion').value,
mot_de_passe = document.getElementById('input_mot_de_passe_connexion').value;

var email = encodeURIComponent(email),
mot_de_passe = encodeURIComponent(mot_de_passe);
/////////////////on envoi
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http//www.youdname.fr/traitement/traitement_page_accueil.php',true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('email=' + email + '&mot_de_passe=' + mot_de_passe);
////////////////on recupere
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
/////////////////on affiche
alert("caaaaaaaaaaaaaaa marcheeeeeeeeeeee");
}
};
}

et dans le code php, je ne c'est pas comment renvoyé false ou true au script JS, si quelqu'un peut m'aidé merci, en attendent je vais continué les recherche
0