【发布时间】:2019-09-18 04:26:56
【问题描述】:
我正在尝试使用 php 创建即时消息服务,我能够启动并运行网站以将用户注册到 MySQL 数据库,但对于我来说,我无法理解为什么它不会添加用户
我已经在 phpMyAdmin 中为用户制作了表格,也重新制作了它们以防万一我搞砸了但没有任何效果
这是我注册新用户的主要网页
<!doctype html>
<html>
<head>
<style>
*{margin:0px; padding:0px;}
#main{ width:200px; margin:24px auto; }
</style>
</head>
<body>
<?Php
require_once("connection.php") ;
if(isset($_POST['Register'])){
$first_name = $_POST['first_name'] ;
$last_name = $_POST['last_name'] ;
$user_name = $_POST['user_name'] ;
$password = $_POST['password'] ;
if ($first_name !="" and $last_name !="" and $user_name !="" and $password !="" ){
$q="INSERT INTO `user` ('id','first_name','last_name','user_name', 'password')
VALUES('', '".$first_name."', '".$last_name."', '".$user_name."', '".$password."')
" ;
if(mysqli_query($con, $q )){
header("location:login.php") ;
}else{
echo $q ;
}
}else{
echo "please fill in all the boxes" ;
}
}
?>
<div id="main">
<h2 align="center">Registration</h2>
<form method="post">
First Name:<br>
<input type="text" name="first_name" placeholder="First Name" />
<br><br>
Last Name:<br>
<input type="text" name="last_name" placeholder="Last Name" /><br><br>
User Name:<br>
<input type="text" name="user_name" placeholder="User Name" /><br><br>
Password:<br>
<input type="password" name="password" placeholder="Password" /><br><br>
<input type="submit" name"register" value="Register" />
</form>
</div>
</body>
</html>
引用的是connection.php,即:
<?php
$con = mysqli_connect("localhost","pmauser","root","chat application") ;
?>
输入所有文本并单击注册后,表单会清除但没有弹出消息,之后我去 phpMyAdmin 并检查用户并显示为空,应该发生的是它需要所有文本框中的信息并将它们添加到数据库中。
【问题讨论】:
-
您是否进行过任何调试以试图缩小可能出错的地方?
-
PhpMyAdmin 不是数据库。这是一个用于管理 MySQL 数据库的 php 工具,例如 MySQL Workbench。
-
在 SQL 查询中允许使用来自客户端的原始输入是一种不好的做法。这会使您的网站遭受 SQL 注入攻击。考虑使用 PHP PDO 来清理 SQL 输入。
-
停止存储明文密码。使用密码哈希。你对 SQL 注入很开放,你应该使用参数化语句。
-
Patrick Q 我尝试制作不同的文件来尝试做同样的事情,但都失败了。
标签: php html mysql linux apache