所以我正在创建一个注册表单,我收到一个“Undefined variable”错误,完整的错误是这样的:
注意:未定义的变量:用户名在 第8行的C:\ xampp \ htdocs \ phpacademy \ cms \ admin \ signup.php
注意:未定义的变量:密码在 第9行的C:\ xampp \ htdocs \ phpacademy \ cms \ admin \ signup.php
现在首先我的注册表格数据库是这样的:
Schema Name:cms
Tables:users,articles
Users table:user_id,user_name,user_password
现在代码我有index.php
,connection.php
和signup.php
以下是代码:
的index.php:
<?php
echo "<form action='signup.php' method='POST'>
<input type='text' name='username' placeholder='Username'><br>
<input type='password' name='password' placeholder='Password'><br>
<button type='submit'>SIGN UP</button>
</form>";
?>
signup.php:
<?php
require 'connection.php';
$statement = $pdo->prepare("INSERT INTO users (username, password)
VALUES(:username, :password)");
$result = $statement->execute(array(
"username" => $username,
"password" => $password
));
$statement = null;
?>
和connection.php:
<?php
try{
$pdo = new PDO('mysql:host=localhost;dbname=cms', 'root', '');
} catch (PDOException $e) {
exit('Database error.');
}
if(empty($pdo)) die("pdo variable is empty!");
?>
现在只是让你们知道这是index.php
是一个更大的代码的一部分,也因为这是一个更大的文件的一部分当我把connection.php放在另一个文件夹中我得到一个错误找不到connection.php
,如果你们还有其他问题我会回答,谢谢!
答案 0 :(得分:0)
signup.php没有$ username或$ password的值。您需要为密码
添加import hashlib
import codecs
import base64
m = hashlib.md5()
m.update("abc123".encode('utf-8'))
print (base64.b64encode(codecs.decode(m.hexdigest(), 'hex')).decode())
和相同的内容
答案 1 :(得分:0)
定义变量。
在signup.php中
$username = $_POST['username'];
$password = $_POST['password'];
将此修改置于
下方require('connection.php');
也不要以纯文本格式存储密码。这非常不安全。 使用:
password_hash
和
password_verify
EDIT 您没有正确绑定占位符。您也正在访问错误的列。修改后的版本低于
$statement = $pdo->prepare("INSERT INTO users (user_name, user_password)
VALUES(:username, :password)");
$result = $statement->execute(array(
":username" => $username, //bind placeholders properly
":password" => $password // bind placeholders properly
));
$statement = null;