Disponibilité pseudo : problème d'intéraction php jquery
Résolu/Fermé
A voir également:
- Disponibilité pseudo : problème d'intéraction php jquery
- Pseudo facebook - Guide
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Je cherche un pseudo pour mon facebook ✓ - Forum Facebook
- Changer pseudo instagram - Guide
- Mélangeur de lettres pour pseudo - Forum Logiciels
2 réponses
Le problème est là :
Comme tu utilise $.post() tu dois récupérer ta variables avec $_POST['pseudo']
Essaye d'installer le plugin Firebug, il te permet de capter directement le résultat de tes requêtes ajax et ça t'aidera grandement pour la suite. (En l'occurrence ici tu aurai vu "undefined variable $pseudo")
Bonne chance pour la suite.
if ( isset($pseudo) && !empty($pseudo) && strlen($pseudo)>5).
Comme tu utilise $.post() tu dois récupérer ta variables avec $_POST['pseudo']
Essaye d'installer le plugin Firebug, il te permet de capter directement le résultat de tes requêtes ajax et ça t'aidera grandement pour la suite. (En l'occurrence ici tu aurai vu "undefined variable $pseudo")
Bonne chance pour la suite.
Salut Quo,
Merci pour ta réponse.
Entre temps, j'ai bien mis $_POST['pseudo'] et non plus $pseudo (à la base j'avais fait une extract $_POST['submit'] mais apparemment c'est déconseillé car facilement pourrissable par un hacker donc j'ai tout réécrit avec $_POST['']).
En résumé, ma vérification de si pseudo existe dans la bdd fonctionne.
Chez moi, FireBug s'appelle BugIgniter ! depuis que j'ai installé FireBug, plus moyen de voir mes pages sur Firefox ! lol... mais bon je règlerai ce problème après..
Saurais-tu me dire pourquoi verifpseudo.php et verifpseudo.js fonctionnent parfaitement, tandis que verif_email.php et verif_email.js qui vient à sa suite ne fonctionnent pas?
J'ai un Warning: include(1): failed to open stream: No such file or directory... alors que mes fichiers sont bien aux emplacements précisés dans mes paths....
Je ne comprends pas...
C'est clair qu'il en faut du courage et de l'obstination quand on apprend php toute seule...
Merci en tous cas de ton aide
* verifpseudo.php *
* verifpseudo.js *
et
* verif_mail.php *
* verif_email.js *
Merci pour ta réponse.
Entre temps, j'ai bien mis $_POST['pseudo'] et non plus $pseudo (à la base j'avais fait une extract $_POST['submit'] mais apparemment c'est déconseillé car facilement pourrissable par un hacker donc j'ai tout réécrit avec $_POST['']).
En résumé, ma vérification de si pseudo existe dans la bdd fonctionne.
Chez moi, FireBug s'appelle BugIgniter ! depuis que j'ai installé FireBug, plus moyen de voir mes pages sur Firefox ! lol... mais bon je règlerai ce problème après..
Saurais-tu me dire pourquoi verifpseudo.php et verifpseudo.js fonctionnent parfaitement, tandis que verif_email.php et verif_email.js qui vient à sa suite ne fonctionnent pas?
J'ai un Warning: include(1): failed to open stream: No such file or directory... alors que mes fichiers sont bien aux emplacements précisés dans mes paths....
Je ne comprends pas...
C'est clair qu'il en faut du courage et de l'obstination quand on apprend php toute seule...
Merci en tous cas de ton aide
* verifpseudo.php *
<?php ///
include('connect_pivoine.php');
if ( isset($_POST['pseudo']) && !empty($_POST['pseudo']) && strlen($_POST['pseudo'])>5)
{ $pseudo=htmlspecialchars(trim($_POST['pseudo']));
$query = $bdd->query( "SELECT * FROM users WHERE pseudo='$pseudo' ") or die('erreur sq1: '.mysql_error());
$rows = $query->rowCount();
if ($rows==1)
{ echo 'Pseudo non disponible';
}
else {echo 'Pseudo disponible'; }
}
?>
* verifpseudo.js *
$(document).ready(function () { $("#pseudo").keyup(function() {
var pseudo= $("#pseudo").val();
pseudo = $.trim(pseudo); // pour empecher les espaces d'être pris comme pseudo
if (pseudo!="" && (pseudo.length > 5))
{$.post('verifpseudo.php',{pseudo:pseudo}, function(data) {$(".error_message_pseudo").text(data); });
}
else {$(".error_message_pseudo").text('Veuillez saisir votre pseudo. Minimum 6 caractères'); }
});
});
et
* verif_mail.php *
<?php include('connect_pivoine.php') die('erreur sq1: '.mysql_error() );
if ( isset($_POST['email']) && !empty($_POST['email']) )
{ $email=htmlspecialchars(trim($_POST['email']));
$query = $bdd->query( "SELECT * FROM users WHERE email='$email' ") or die('erreur sq1: '.mysql_error() );
$rows = $query->rowCount();
if ($rows==1)
{ echo 'Cette adresse email est associée à un autre utilisateur. Identifiants oubliés ? ';
}
else {echo ''; }
}
?>
* verif_email.js *
// JavaScript Document
$(document).ready(function () { $("#email").keyup(function() {
var email= $("#email").val();
email= $.trim(email); // pour empecher les espaces d'être pris comme pseudo
if (email!="" && (email.length > 5))
{$.post('verif_email.php',{email:email}, function(data) {$(".error_message_email").text(data); });
}
else {$(".error_message_email").text('Veuillez saisir votre adresse email'); }
});
});
<label for="email" id="label_email"> Email : * </label> <br />
<input type="text" name="email" id="email" class="field" size="30" maxlength="70" tabindex="31" value="<?php if (isset($email)) echo $email; ?>" />
<span class="error_message_email"> </span>
<span class="error_message"> <?php if(isset($erreuremail)) echo $erreuremail;?> </span>
<script src="jquery.js" type="text/javascript"> </script>
<script src="js/verif_email.js" type="text/javascript"> </script>
Les $_POST et $_GET peuvent être falsifiés oui, mais ce sont les seuls moyens de transmettre des informations donnés par l'utilisateur. C'est à toi de vérifier que ces variables soient bien correctes.
Tu ne m'a pas donné le bout de code qui contient les includes (Le seul qui m'intéressait) alors pour t'aider je ne peux que te donner des conseils généraux.
Quand tu execute un fichier php via ajax les fichiers include sont relatif a son emplacement à lui.
Alors que si tu include dans ton fichier déjà includé le chemin est relatif au premier fichier.
Après vérifie accents et majusucules.
Ta question initiale étant résolu n'hésite pas à mettre également ce sujet en "Résolu" pour un meilleur référencement
Tu ne m'a pas donné le bout de code qui contient les includes (Le seul qui m'intéressait) alors pour t'aider je ne peux que te donner des conseils généraux.
Quand tu execute un fichier php via ajax les fichiers include sont relatif a son emplacement à lui.
Alors que si tu include dans ton fichier déjà includé le chemin est relatif au premier fichier.
Après vérifie accents et majusucules.
Ta question initiale étant résolu n'hésite pas à mettre également ce sujet en "Résolu" pour un meilleur référencement
Bonjour Quo,
Voici ci-dessous mon include('connect_pivoine.php'); inclu aussi bien dans verifpseudo.php que dans verif_email.php. Ca fonctionne avec verifseudo.php mais pas avec verif_email.php., et je n'ai pas bien saisi pourquoi.
Merci de ton aide précieuse :)
Bonne journée,
Voici ci-dessous mon include('connect_pivoine.php'); inclu aussi bien dans verifpseudo.php que dans verif_email.php. Ca fonctionne avec verifseudo.php mais pas avec verif_email.php., et je n'ai pas bien saisi pourquoi.
Merci de ton aide précieuse :)
Bonne journée,
<?php
try {$bdd= new PDO('mysql:host=localhost;dbname=pivoine', 'root', '' );
}
catch (Exception $e) {die ('ErreurDeConnexionAMysql:' .$e-> getMessage() ); }
?>
Autant pour moi j'avais compris que tu avais dumpé le code des fichier que tu includais, pas l'inverse
Si tu veux être sur que ton include se fasse bien utilise require() à la place, le script s'arrêtera net.
include('connect_pivoine.php') die('erreur sq1: '.mysql_error() )Est incorrecte, tu ne peux pas dier sur un include, c'est une spécificité de PDO.
Si tu veux être sur que ton include se fasse bien utilise require() à la place, le script s'arrêtera net.
19 sept. 2013 à 09:42