проблема в форме проверки - php - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть проблема в моем коде.У меня есть проверка ajax, которая вызывает файл php (где данные проверены).

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 ]

1 голос
/ 11 апреля 2011

Возможно PHP отладка 101 ... просто сделайте

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

и проверьте ошибку ...

0 голосов
/ 11 апреля 2011

Попробуйте обновить свой запрос, чтобы он был следующим:

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

И еще один вопрос ... Если вы уже знаете, что такое имя пользователя, то почему вы запускаете запрос, чтобы найти имя пользователя?Я полагаю, вы просто проверяете, существует ли имя пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...