2009-12-20 7 views
0

Je travaille sur un formulaire d'inscription alimenté par jQuery, et je vérifie toutes les entrées avec jQuery, et il ne reste plus qu'à voir si un utilisateur choisit un nom déjà enregistré.

Voilà ma demande Ajax:

$.ajax({ 
    type: "POST", 
    url: "check_user.php", 
    data: "username="+username, 
    success: function(){ 
    errors.push('Your username is taken.'); 
    } 
}); 

Et check_user.php:

<?php 
include_once('../lib/config.php'); 

$username = $_POST['username']; 
$query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
if(mysql_num_rows($query) == 1) { 
    header("HTTP/1.1 200 OK"); 
} 

?> 

Je sais que le errors.push(); fonctionne, parce que quand j'essayais de comprendre ce qui n'allait pas avec la requête Ajax plus tôt, le message 'Nom d'utilisateur est pris' s'affichait sur ma page d'inscription chaque fois que je cliquais sur 'Enregistrer'. Maintenant, rien ne se montre du tout.

est toute ma page entière d'inscription: http://pastebin.org/66815

+0

L'erreur ou les événements complets sont-ils déclenchés si vous les connectez? – Goyuix

+0

Que voulez-vous dire? – Andrew

+2

Une fois que vous avez compris l'utilisation de $ .ajax, et basé sur l'extrait check_user.php montré ici, je suggère de regarder le codage pour empêcher une injection SQL du côté de la demande PHP. Voir les déclarations préparées http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php/60496#60496 et le filtrage http://stackoverflow.com/questions/60174/best- way-to-stop-sql-injection-in-php/60442 # 60442 Tout le meilleur. – micahwittman

Répondre

2

Le fichier (signup.php) est situé dans C: \ xampp \ htdocs \ registre \ user \ signup.php

j'utilisais .htaccess et RewriteRule ^signup user/signup.php et l'affiche au http://localhost/signup. Lorsque j'ai supprimé cette RewriteRule et que j'ai obtenu http://localhost/register/user/signup.php, tout a bien fonctionné. J'ai donc changé url: "check_user.php" en "url: user/check_user.php" et tout fonctionne très bien. Je ne savais pas. Htaccess était ce badass.

Questions connexes