2016-09-21 2 views
1

im mit Problem mit der Integration von Textfeldern mit PHP von $_post Methode und ich habe fast vollständigen Code getan, aber es mir in Zeile 84 boolean Fehler geben, dieboolean Fehler in PHP-Code in PHP mit MySQL

if(mysqli_num_rows ||($run)==0) 
ist

und mein ganzer Code ist

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<h1 align="center">Registration form</h1> 
<form action="registration.php" method="post"> 
    <table align="center" border="2"> 
     <tr> 
      <td>User name</td> <td><input type="text" placeholder="username" name="name" /></td> 
     </tr> 

     <tr> 
      <td>Password</td> <td><input type="password" placeholder="password" name="password" /></td> 
     </tr> 

     <tr> 
      <td>Email</td> <td><input type="email" placeholder="email" name="email" /></td> 
     </tr> 

     <tr> 
      <td colspan="2" align="center"><input type="submit" value="submit" name="submit" /></td> 
     </tr> 
    </table> 
</form>  
</body> 
</html> 


<?php 
//connection to database 

$servername = "localhost"; 
$db_username = "user_db_users"; 
$db_password = "123456789"; 
$db_name = "users_db"; 

$conn = new mysqli($servername, $db_username, $db_password, $db_name); 

//fatching data from form 

if(isset($_POST['submit'])){ 

    $user_name = $_POST['name']; 
    $user_pass = $_POST['password']; 
    $user_email = $_POST['email']; 


    //validatio form 


    if($user_name==''){ 
     echo "<script>alert('please enter usernmae')</script>"; 
     exit(); 
     } 

    if($user_pass==''){ 
     echo "<script>alert('please enter password')</script>"; 
     exit(); 
     } 

    if($user_email==''){ 
     echo "<script>alert('please enter email')</script>"; 
     exit(); 
     } 

    $check_email = "select * from users where user_email='$user_email'"; 
    $run = mysql_query($check_email); 

    if(mysqli_num_rows ||($run)==0){ 

     echo "<script>alert('Email $check_email is already exist')</script>"; 
     exit(); 
     } 

    //Getting values from fields of registration form 

    $query = "insert into users(user_name, user_pass, user_email) values($user_name, $user_pass, $user_email)"; 

    if(mysql_query($query)){ 
     echo "<script>alert('registration successful')</script>"; 
     } 
    } 
?> 
+1

if (mysqli_num_rows ($ run) == 0) – e4c5

Antwort

1

die Funktion mysqli_num_rows() einen MySQLi_Result Parameter benötigt, und wenn Sie die Logik wollen auch tatsächlich falsch

richtig ist der Test arbeiten

So

if(mysqli_num_rows ||($run)==0){ 

ändern Um

if(mysqli_num_rows($run) > 0) { 

Diese Abfrage auch

$query = "insert into users(user_name, user_pass, user_email) 
        values($user_name, $user_pass, $user_email)"; 

Alle Textspalte Variablen gewickelt werden sollte in Anführungszeichen wie diese

$query = "insert into users(user_name, user_pass, user_email) 
        values('$user_name', '$user_pass', '$user_email')"; 
scheitern

Aber ich habe zu erwähnen, dass Ihr Skript in Gefahr SQL Injection Attack ist Werfen Sie einen Blick auf das, was auch if you are escaping inputs, its not safe! Gebrauch zu Little Bobby Tables passiert prepared parameterized statements