[英]isset value always returns 1
我是PHP的新手。 我正在嘗試制作一個登錄和注銷網頁。 現在,我創建了一個將添加記錄的頁面。 我的代碼始終從我構建的表單中返回1,而不考慮表單中的值。 我的代碼-
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$alpha = isset($_GET["username"]);
$beta = isset($_GET["password"]);
$gama = isset($_GET["hobby"]);
// Create connection
$conn = mysqli_connect("localhost","root" ,"","member");
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO data (username,password,hobby)
VALUES ($alpha, $beta, $gama)";
if ($conn->query($sql)=== TRUE) {
echo $alpha."Your record is added into our database ";
} else {
echo $sql.$conn->error;
}
?>
這是我的表格:
<form action="add.php">
<table>
<tr>
<td>Username :</td> <td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password :</td> <td><input type="text" name="username"></td>
</tr>
<tr>
<td>Hobbies:</td> <td><textarea name="hobby" id="hobby" cols="22" rows="7"></textarea></td>
</tr>
<tr>
<td> </td><td><input type="submit" name="submit"></td>
</tr>
</table>
</form>
發生這種情況是因為isset()
返回了布爾值。
如果要直接打印username
段,則可以:
if(isset($_GET["username"])) {
echo $_GET["username"];
}
因此,您應該了解變量$alpha
, $beta
和$gamma
並不包含您期望的實際字符串,而是一個布爾值
其原因是isset()函數檢查數組中的鍵是否已設置,因此不檢查值是否已設置。 就你而言 當您將表單發布到操作時,POST數組包含所有鍵,因此isset照常返回1。 我認為您需要看看php empty()函數。 或者,您可能要混合使用isset()和empty()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.