Ошибка используя mysql_num_rows [закрывшая]

Они могли бы помогать мне с этим маленьким кодом?

    <?php
    include("../app/database.php");
    if (isset($_POST['registrar'])){
        if (($_POST['nombre']!='') && ($_POST['email']!='') && ($_POST['clave']!='') && ($_POST['rclave']!='')){
            if ($_POST['clave'] != $_POST['rclave']){
                echo "Las contraseñas no coinciden.";
            }else{
                $name = proteger($_POST['nombre']);
                $mail = proteger($_POST['email']);
                $pass = md5(proteger($_POST['nombre']));
                $u_ip = $_SERVER['REMOTE_ADDR'];
                //VERIFICACION DE EXISTENCIA
                $q = mysql_query("SELECT email FROM usuarios WHERE email = '$mail");
                if(mysql_num_rows($q)>0){
                  echo "Dirección de Correo ya en uso.";
                }else{
                    $registrado = mysql_query("INSERT INTO usuarios (nombre,email,clave,ip) VALUES ('$name','$mail','$pass','$u_ip')");
                    echo "registrado con éxito!";
                }
            }
        }
    }

?>

меня производит следующая ошибка:

 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\page\registro.php on line 14
registrado con éxito!

Но мне нужно, чтобы он сказал мне, что уже этот почтовый адрес в использовании.

0
задан 20.01.2017, 15:12
0 ответов

Проблема находится в query. Нет одной 'после изменчивая $email, а следовательно, сделав query, он дает ошибку и функцию mysql_query возвращает false вместо разыскиваемого ресурса и сделав mysql_num_rows на booleano, возвращает этот warning.

Изменись

$q = mysql_query("SELECT email FROM usuarios WHERE email = '$mail");

из-за

$q = mysql_query("SELECT email FROM usuarios WHERE email = '$mail'");

Ссылка в учебник php функции mysql_query, где он объясняет стоимость возврата.

1
ответ дан 03.12.2019, 17:36
  • 1
    Jajaja, если ты имеешь razó n, ошибки té cnicos, Спасибо! –  20.01.2017, 15:21
  • 2
    Не за что. Я радуюсь, что оно ты функционировало :) –  20.01.2017, 15:23

Ответ @Lithorell правилен, хотя есть другая проблема с твоим рукописным шрифтом и состоит в том, что ты используешь поле, назовите вместо ключа, чтобы сохранять MD5 пароля.

изменись

$pass = md5(proteger($_POST['nombre']));

Из-за

$pass = md5(proteger($_POST['clave']));
0
ответ дан 03.12.2019, 17:36
  • 1
    Это podrí чтобы быть комментарием не? –  20.01.2017, 15:55
  • 2
    Если верно, действительно не я habí в обращенный внимание на эту достаточно важную деталь кроме того, спасибо! –  20.01.2017, 16:35

Теги

Похожие вопросы