2017-08-05 3 views
-1

私は他の回答を確認してそれを私のものに複製しようとしましたが、私は未確認のrowエラーが発生しています。ユーザー名が存在しないかどうかを確認していますか?

<?php 
session_start(); 

if(isset($_SESSION['user_id'])) { 
    header("Location: index.php"); 
} 

include_once 'dbconnect.php'; 

//set validation error flag as false 
$error = false; 

//check if form is submitted 
if (isset($_POST['signup'])) { 
    $first_name = mysqli_real_escape_string($con, $_POST['first_name']); 
    $last_name = mysqli_real_escape_string($con, $_POST['last_name']); 
    $username = mysqli_real_escape_string($con, $_POST['username']); 
    $email = mysqli_real_escape_string($con, $_POST['email']); 
    $password = mysqli_real_escape_string($con, $_POST['password']); 
    $cpassword = mysqli_real_escape_string($con, $_POST['cpassword']); 
    $quote = mysqli_real_escape_string($con, $_POST['quote']); 
    $who = mysqli_real_escape_string($con, $_POST['who']); 

    //name can contain only alpha characters and space 
    if ($_POST['username'] == $row['username']){ 
     $error = true; 
     $username_error = '<div class="error-notice"> 
          <div class="oaerror danger"> 
          <strong>Uh oh!</strong> - Username is already in use. 
          </div>'; 

    } 
+0

ここで、$行を割り当てていますか? – Progrock

+0

ああ私は...私はそれに割り当てる必要がありますか? –

+1

クエリを連結する代わりに、[Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用する必要があります。 mysqli_real_escape_string()も注射攻撃に対して100%安全です。 –

答えて

0

私はそれを得ました。私は自分のコードの上でこれをしなければならなかった。

$result = mysqli_query($con, "SELECT * FROM users WHERE username = '" . $username. "'"); 
    if($row = mysqli_fetch_array($result)){ 
関連する問題