如果用户输入了重复的名称,我想显示错误。但是,它没有用。它保持名称插入即使它是相同的。所以,这是我的代码:
$namaErr = "";
$error==false;
if (isset($_POST['btnSubmit'])) {
if(isset ($_POST['nama'])){
$nama = $_POST['nama'];
$query ='SELECT nama FROM daftar_pengguna WHERE nama="' . $nama . '" LIMIT
1';
$result = mysqli_query($query);
$totalNumRowResult = mysqli_num_rows($result);
if($totalNumRowResult > 0){
$error=true;
$namaErr="Nama ini telah digunakan!!";
}
}
如果没有错误,它将插入数据库中:
else{
$query="INSERT INTO daftar_pengguna(nama) VALUES
('$nama')";
$res = mysqli_query($query);
header('Location:index.php?registered=true');
}
}
我已经像我一样搜索了所有问题,但没有运气。
答案 0 :(得分:0)
支架有问题。这应该工作
$namaErr = "";
$error==false;
if (isset($_POST['btnSubmit'])) {
if(isset ($_POST['nama'])){
$nama = $_POST['nama'];
$query ='SELECT nama FROM daftar_pengguna WHERE nama="' .$nama . '" LIMIT 1';
$result = mysql_query($query);
$totalNumRowResult = mysql_num_rows($result);
if($totalNumRowResult > 0){
$error=true;
$namaErr="Nama ini telah digunakan!!";
}
else{
$query="INSERT INTO daftar_pengguna(nama) VALUES
('$nama')";
$res = mysql_query($query);
header('Location:index.php?registered=true');
}
}
}
答案 1 :(得分:0)
我建议两件事:
将if条件合并到一个区块,这将消除我在上面评论中提到的并且Sujith也注意到的大括号混乱。
另外我建议您在发送到数据库查询之前清理$ _POST变量...
请参阅以下代码并提供修改建议:
<?php
$namaErr = "";
$error = false;
# Merge condition checks in One block using && (AND)
if (isset($_POST['btnSubmit']) && isset($_POST['nama'])) {
$nama = $_POST['nama'];
# Sanitize the input before running into Database query
$nama = filter_var($nama, FILTER_SANITIZE_STRING);
$query ='SELECT nama FROM daftar_pengguna WHERE nama="' . $nama . '" LIMIT
1';
$result = mysql_query($query);
$totalNumRowResult = mysql_num_rows($result);
if($totalNumRowResult > 0){
$error=true;
$namaErr="Nama ini telah digunakan!!";
}
else{
$query="INSERT INTO daftar_pengguna(nama) VALUES ('$nama')";
$res = mysql_query($query);
header('Location:index.php?registered=true');
}
}
答案 2 :(得分:0)
尝试使用此查询:
$query ='SELECT nama FROM daftar_pengguna WHERE nama="' . $nama . '" ';