bastante atascado tratando de evitar que el usuario se registre si el usuario existe. Aquí está mi código:

include('../connection.php');
//get all the names and values that have been posted.
    $username = $_POST['username'];   
    //check if username exists
    $sql = "SELECT * FROM tbl_Freelancers WHERE User_Username = '".$username."'";
    $result = mysqli_query($con,$query);
    if(mysql_num_rows($result)>=1)
       {
        echo"name already exists";
       }
     else
        {  //excecute insert query 

He intentado un montón de otras cosas para que funcione, pero por alguna razón mi código no me gusta……

  • Lo que no es exactamente de trabajo? ¿Qué error te llegar?
  • Por favor explique ¿cuál es el problema?
  • También, se debe educar a ti mismo con las inyecciones de SQL. Con una construcción en la que alguien puede desechar o eliminar cada tabla en su base de datos. en.wikipedia.org/wiki/SQL_injection
InformationsquelleAutor MattClaff | 2014-10-14

6 Comentarios

  1. 4

    cambio mysql_num_rows a mysqli_num_rows

    if(mysqli_num_rows($result)>=1)//You are mixing the mysql and mysqli, change this line of code
               {
                echo"name already exists";
               }
             else
                {  //

    usar bind param o proplerly escapar de su valor, antes de usarla en la consulta.

    • Gracias a su curioso lo que un nuevo par de ojos puede hacer.
    • usted debe escapar de $nombre de usuario para evitar inyecciones sql, ya que proviene de una entrada de usuario echar un vistazo a real-escape-string
    • No me importa, es importante destacar que, dado que se trata todavía de una lista de errores comunes que se pueden evitar con una buena práctica. Tanto en la línea de hacer un pointm DOP es una buena herramienta, tomar una mirada en ella, puede ser agradable, pero por el momento creo que real-escape-string es un buen compromiso. Usted debe también punto de la $sql y $consulta de intercambio que Jayakarthik Appasamy tiene punto en su respuesta
  2. 2

    cambio..

    $sql = "SELECT * FROM tbl_Freelancers WHERE User_Username = '".$username."'";
        $result = mysqli_query($con,$query);

    a

    $sql = "SELECT * FROM tbl_Freelancers WHERE User_Username = '".$username."'";
        $result = mysqli_query($con,$sql);

    usted consulta especificada en $sql y ejecutar en $consulta…
    también obtener la entrada como..

     $username = mysqli_real_escape_string($con, $_POST['username']);   

    por razones de seguridad…

  3. 0

    alterar su consulta a:

     $sql= "SELECT * FROM tbl_Freelancers WHERE User_Username = '$username'";
    
    $result=mysql_query($sql);
    
    if(mysql_num_rows($result)!=0)
           {
            echo"name already exists";
           }
         else
            {  
            //excecute insert query 
            }
  4. 0

    mysql_num_rows está en desuso como de PHP 5.5.0, y será eliminado en el futuro

    Manera alternativa de uso de la mysqli_num_rows

    • gracias. voy a mantener en mi mente 🙂
  5. 0
    try this
    
    include('../connection.php');
     $username = $_POST['username'];   
      $sql = "SELECT * FROM tbl_Freelancers WHERE User_Username = '".$username."'";
        $result = mysql_query($sql);
        if(mysql_num_rows($result)!=0)
           {
            echo"name already exists";
           }
         else
            {
            echo ".........";
    }   
  6. -1

    su $query variable tiene que ser un segundo argumento en mysqli_query , en lugar de utilizar $sql . por lo tanto, reemplace $sql con $consulta en mysqli_query() función y uso mysqli en lugar de mysql_num_rows()

Dejar respuesta

Please enter your comment!
Please enter your name here