php - 没有 isset 的 $_POST[] 工作正常但是......

标签 php mysql

您好,我是 php 和 mysql 的新手。但我有一个问题这是我的问题:

我正在尝试使用表单将数据插入数据库。
但是当我这样做时,它会在用户名密码列中返回 1。

这是我的 Index.php:

<?php

$host = 'localhost';
$dbname= 'akar';
$user = 'akar';
$pass = 'raparen';

$dsn = "mysql:host=$host;dbname=$dbname";
$pdo = new PDO($dsn,$user,$pass);

$username = isset($_POST['username']);
$password = isset($_POST['password']);



    $query = "INSERT INTO users (username,password)  VALUES(:username,:password)";
    $statement = $pdo->prepare($query);
    $statement->execute(array(
        ':username'=> $username,
        ':password'=> $password
    ));

?>

这是我的表格:

<form action='index.php' method='post'>

<input type='text' placeholder='Enter Username here!' name='username' />
<input type='password' placeholder='Enter Password here!' name='password' />
<input type='submit' value='Submit' />

当我这样做时:

$username = $_POST['username'];

它工作正常但是当我这样做时:

$username = isset($_POST['username']);

它在数据库中插入 1,而不是输入中的文本。

对不起,如果我组织任何东西,我是新手。

最佳答案

isset() 返回一个 bool 值,该值是正在检查的变量是否设置的结果。它不用于从变量中获取值。

$username = isset($_POST['username']);
$password = isset($_POST['password']);

应该是:

$username = $_POST['username'];
$password = $_POST['password'];

或者,如果您想要在未设置这些变量的情况下分配默认值,您可以这样做:

$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

关于php - 没有 isset 的 $_POST[] 工作正常但是......,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936708/

相关文章:

php - 是否可以在 php 站点上进行 Windows 身份验证?

php - 语法错误或访问冲突 : 1064

mysql - 按公司表中的多个发票日期排序,但仅显示公司列表

php - 当通过 PHP 查询时 mysql 数据库中没有结果时,是否可以排除 HTML 输出

php - 在 PHP 中搜索数据库 从单列到所有

php - 使用字符串访问(可能很大)多维数组

php - substr 计数返回错误结果

php - 在 PHP 中使用日期函数输出用户友好的日期

mysql - 为什么有 'where'的时候有 'having'

php - mysql_affected_rows 不工作