我的代码有问题。我有一个调用php文件的ajax验证(数据经过验证)。
php返回类似“invalidData”的回声,并在javascript中检查if (data=="invalidData") {//something}
问题是包括。令人难以置信的事情。
<?php
include("includes/f_banco.php");
conecta ();
function get_post_var($var) {
$val = $_POST[$var];
if (get_magic_quotes_gpc())
$val = stripslashes($val);
return $val;
}
$name = get_post_var('name');
function validateName($name){
if(strlen($name) < 4 || (empty($name))) {
echo "invalidData";
return false;
}
else {
$name = mysql_real_escape_string($name);
$check = mysql_query("SELECT username FROM users WHERE username ='".$name."'")
or die(mysql_error());
$check2 = mysql_num_rows($check);
if ($check2 == 0 && $name != "") {
echo "validData";
return true;
} else {
echo "invalidData";
return false;
}
}
}
error_reporting(E_ALL);
validateName($name);
?>
在上面的代码中,我只能检查名称是否为空,如果我没有将包含在文件中。如果我把结果一次又一次地与invalidData不同。
没有进行与数据库的连接,或者如果返回不正确。重要:包含文件是正确的,我在另一个例子中测试,数据库也是正确的。
感谢
Edit: **LAST VERSION**
<?php
error_reporting(-1);
require 'includes/f_banco1.php';
$name = $_POST["carlos"];
function validateName($name){
if(strlen($name) < 4 || (empty($name))) {
echo "nomeInvalido";
return false;
}
else {
$name = mysql_real_escape_string($name);
$check = mysql_query("SELECT username FROM users WHERE username ='".$name."'")
or die(mysql_error());
$check2 = mysql_num_rows($check);
if ($check2 == 0 && $name != "") {
echo "nomeValido";
return true;
} else {
echo "nomeInvalido";
return false;
}
}
}
validateName($name);
echo "this must appear";
?>
输出:
Notice: Undefined index: carlos in C:\Users\fel\VertrigoServ\www\login\validation.php on line 8
nomeInvalidothis must appear
答案 0 :(得分:1)
可能是PHP调试101 ......只需要做一个
<?php
error_reporting(-1);
...
?>
检查错误......
答案 1 :(得分:0)
尝试将您的查询更新为以下内容:
SELECT `username` FROM users WHERE `username` ='".$name."'
另外一个问题......如果您已经知道用户名是什么,那么为什么要运行查询来查找用户名?我假设您只是检查用户名是否存在。