-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>';
}
ここで、$行を割り当てていますか? – Progrock
ああ私は...私はそれに割り当てる必要がありますか? –
クエリを連結する代わりに、[Prepared Statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用する必要があります。 mysqli_real_escape_string()も注射攻撃に対して100%安全です。 –