par
VaN » 23 nov. 2007, 17:04
Bonjour,
Un problème incompréhensible m'ammène, mais je ne sais pas si il est du à mon utilisation d'AJAX, de PHP ou autre.
J'essaie de mettre au point une petite appli AJAX de vérification d'existence de pseudo dans une base de données, comme on commence à en voir un peu partout.
J'ai récupérer un script sur un site, pour me servir de base, mais je rencontre un bug.
Voici les 2 fichiers liés :
Fichier test.php :
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
<script type="text/javascript">
function writediv(texte)
{
document.getElementById('pseudobox').innerHTML = texte;
}
function verifPseudo(pseudo)
{
if(pseudo != '')
{
if(pseudo.length<2)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
else if(pseudo.length>30)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
else if(texte = file('verifpseudo.php?pseudo='+escape(pseudo)))
{
if(texte == 1)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
else if(texte == 2)
writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
else
writediv(texte);
}
}
}
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>
</head>
<body>
<form action="">
<input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" />
<div id="pseudobox"></div>
</form>
</body>
</html>
fichier verifpseudo.php :
<?
/*
LE SCRIPT DOIT RETOURNER :
1 : SI LE SPEUDO EST DEJA PRIS
2 : SI LE PSEUDO EST LIBRE
*/
// CONNECION SQL
mysql_connect("localhost", "root", "");
mysql_select_db("ma_bdd");
// VERIFICATION
$sql = "SELECT user_login
FROM users
WHERE user_login ='".$_GET["pseudo"]."'";
$query = mysql_query($sql) OR die('Erreur : '.mysql_error());
$num = mysql_num_rows($query);
echo $num;
// $result = mysql_fetch_assoc($query);
if($num > 0)
echo '1';
else
echo '2';
?>
Lorsque je commence a écrire dans le champs de saisi, à partir de la deuxième lettre, l'appli m'affiche la fin du code php de verifpseudo.php :
et deuxième chose que je trouve étrange, lorsque je browse verifpseudo.php et que je demande a firefox de m'afficher la source, il m'affiche le code PHP du fichier :
Est ce normal ? Est ce des bugs ? comment corriger ça ?
Merci.
Bonjour,
Un problème incompréhensible m'ammène, mais je ne sais pas si il est du à mon utilisation d'AJAX, de PHP ou autre.
J'essaie de mettre au point une petite appli AJAX de vérification d'existence de pseudo dans une base de données, comme on commence à en voir un peu partout.
J'ai récupérer un script sur un site, pour me servir de base, mais je rencontre un bug.
Voici les 2 fichiers liés :
Fichier test.php :
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
<script type="text/javascript">
function writediv(texte)
{
document.getElementById('pseudobox').innerHTML = texte;
}
function verifPseudo(pseudo)
{
if(pseudo != '')
{
if(pseudo.length<2)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
else if(pseudo.length>30)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
else if(texte = file('verifpseudo.php?pseudo='+escape(pseudo)))
{
if(texte == 1)
writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
else if(texte == 2)
writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
else
writediv(texte);
}
}
}
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>
</head>
<body>
<form action="">
<input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" />
<div id="pseudobox"></div>
</form>
</body>
</html>
[/code]
fichier verifpseudo.php :
[php]<?
/*
LE SCRIPT DOIT RETOURNER :
1 : SI LE SPEUDO EST DEJA PRIS
2 : SI LE PSEUDO EST LIBRE
*/
// CONNECION SQL
mysql_connect("localhost", "root", "");
mysql_select_db("ma_bdd");
// VERIFICATION
$sql = "SELECT user_login
FROM users
WHERE user_login ='".$_GET["pseudo"]."'";
$query = mysql_query($sql) OR die('Erreur : '.mysql_error());
$num = mysql_num_rows($query);
echo $num;
// $result = mysql_fetch_assoc($query);
if($num > 0)
echo '1';
else
echo '2';
?>[/php]
Lorsque je commence a écrire dans le champs de saisi, à partir de la deuxième lettre, l'appli m'affiche la fin du code php de verifpseudo.php :
[img]http://www.wir3d.net/bordel/Sans%20titre-1.jpg[/img]
et deuxième chose que je trouve étrange, lorsque je browse verifpseudo.php et que je demande a firefox de m'afficher la source, il m'affiche le code PHP du fichier :
[img]http://www.wir3d.net/bordel/Sans%20titre-2.jpg[/img]
Est ce normal ? Est ce des bugs ? comment corriger ça ?
Merci.