验证表格中的问题 - php

时间:2011-04-10 23:07:54

标签: php javascript validation

我的代码有问题。我有一个调用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

2 个答案:

答案 0 :(得分:1)

可能是PHP调试101 ......只需要做一个

<?php
error_reporting(-1);
...
?>

检查错误......

答案 1 :(得分:0)

尝试将您的查询更新为以下内容:

SELECT `username` FROM users WHERE `username` ='".$name."'

另外一个问题......如果您已经知道用户名是什么,那么为什么要运行查询来查找用户名?我假设您只是检查用户名是否存在。