je me demandais si il était possible de faire une refresh ( a chaque fois que le curseur n'est plus sur l'input onblur ) d'une fonction php qui vérifie la validiter d'un pseudonyme d'une input voila mon code .
function verifpseudonyme()
{
$pseudonyme = htmlspecialchars($_POST['pseudonyme_ins']);
$pseudonymetaille = strlen($_POST['pseudonyme_ins']);
$reqpseudo = $bdd_espace_membre->prepare("SELECT * FROM membre WHERE pseudonyme = ?");
$reqpseudo->execute(array($pseudonyme));
$pseudoexist = $reqpseudo->rowCount();
if($pseudonymetaille => 6 AND $pseudonymetaille <= 30 AND !empty($pseudonyme) AND $pseudoexist == 0)
{
$psuedonymevalide = "valide";
}
}
j'ai cru a peux près comprendre que avec Ajax ça serais possible mais je n'ai rien trouver de concluant .
pas très utile au final comme je m'en doutais car le problème est même avec un
function verifPseudo_ins(){
var request = new XMLHttpRequest();
request.open('POST', 'VERIF_INPUT_PSEUDO.php', true);
request.send();
}
dans VERIF_INPUT_PSEUDO.php :
<?php
$pseudonyme = htmlspecialchars($_POST['pseudonyme_ins']);
$pseudonymetaille = strlen($_POST['pseudonyme_ins']);
$reqpseudo = $bdd_espace_membre->prepare("SELECT * FROM membre WHERE pseudonyme = ?");
$reqpseudo->execute(array($pseudonyme));
$pseudoexist = $reqpseudo->rowCount();
if(!empty($pseudonyme)){
if($pseudonymetaille => 6 AND $pseudonymetaille <= 30)
{
if($pseudoexist == 0){
$psuedonymevalide = "valide";
}else {
$error = 'Le pseudonyme choisie existe déjà';
}
}else {
$error = 'votre pseudonyme doit avoir au minimun 6 caractères et au maximun 30';
}
}else {
$error = 'Veuillez compléter le champ "pseudonyme" merci .';
}
?>
le probleme est qu'il ne connais pas le $pseudonyme = htmlspecialchars($_POST['pseudonyme_ins']); donc ça me renvois une erreur comme je m'en doutais et j'ai regarder quelque tutoriel de plus 1h sans resulta car auccun en parle et j'ai déjà dis dans mon premier message que j'avais déjà chercher du côter d'ajax sans resulta
function verifPseudo_ins(champ)
{
console.log(<?php verifpseudonyme(); ?>);
}
C'est que n'a pas beaucoup cherché.
Ton deuxième code est déjà un peu plus aboutit.
Maintenant de ce que je vois, tu as lu sans comprendre ou sans vouloir comprendre.
Ce que je dis n'est pas dans le but de vexé mais de t'aider à t'améliorer.
Un développeur dois rechercher sur internet, lire des tutos, faire des tests et s'il ne comprends pas quelque chose, poser la question.
Là, et c'est pour cette raison je pense qu'il n'y ait que moi qui ai répondu, on a l'impression que tu souhaites qu'on fasse le code pour toi. Ce n'est pas et n'a jamais été le but de ce site.
Il explique que pour la compatibilité navigateur, vaux mieux prévoir tout les cas possible en utilisant cette fonction JS pour avoir le bon objet XMLHttpRequest:
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
Et ensuite si tu souhaites faire un POST (ce qui est ton cas) faire un bout de code JS du genre:
var xhr = getXMLHttpRequest();
xhr.open("POST", "VERIF_INPUT_PSEUDO.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("pseudonyme_ins="+pseudonyme);
Et là encore une fois, je n'ai fait que lire le tuto (je n'ai pas fait de JS pure depuis au moins 5 ans)
<?php
$pseudonyme = htmlspecialchars($_POST['pseudonyme_ins']);
$pseudonymetaille = strlen($_POST['pseudonyme_ins']);
$reqpseudo = $bdd_espace_membre->prepare("SELECT * FROM membre WHERE pseudonyme = ?");
$reqpseudo->execute(array($pseudonyme));
$pseudoexist = $reqpseudo->rowCount();
if(!empty($pseudonyme)){
if($pseudonymetaille => 6 AND $pseudonymetaille <= 30)
{
if($pseudoexist == 0){
$psuedonymevalide = "valide";
}else {
$error = 'Le pseudonyme choisie existe déjà';
}
}else {
$error = 'votre pseudonyme doit avoir au minimun 6 caractères et au maximun 30';
}
}else {
$error = 'Veuillez compléter le champ "pseudonyme" merci .';
}
?>
toujour rien de fonctionnelle dans la console je n'ai auccune erreur mais pourtent en mettent les conditions valide rien ne marche ( ça ne devient pas vert ) et cela n'affiche pas l'erreur demander quand ce n'est pas correcte la je suis un peut pommer
- Un morceau de code qui affiche la classe $bonClass si $pseudonymeValid vaut TRUE sinon par défaut il affiche la classe $errorClass
- Tu fais un onBlur pour lancer la vérification (ca c'est OK)
- Tu envois la requête AJAX pour vérifier si le pseudo est bon (ca c'est OK)
- Et... c'est tout
Et la ça pêche!
Ce que tu fais c'est un peu comme si tu demandais à quelqu'un son prénom et que tu te barre sans attendre la réponse.
Il faut donc que tu trouve comment récupérer cette réponse (tu auras du code PHP à faire pour retourner la réponse et JS pour décoder), interpréter la réponse et changer la classe de ton input en JS pour mettre la bonne classe en fonction de s'il est valide ou non
une video de 2011 qui explique tous pour les intérésés ( j'ai pas enccore fait sur mon formulaire de connexion / inscription mais cela à marcher sur mon formulaire de contact
mince j'ai oublier de mettre la video : https://www.youtube.com/watch?v=Y8FcSMJagd0
refresh fonction php
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Call me Spaceman