Php 注册表未重定向
我用HTML、PHP、MYSQL制作了这个注册表 因此,配置如下所示。当我填写表格并提交时,页面只需重新加载。我不知道我是否在PHP或HTML中遗漏了一些东西 我不知道发生了什么事 也许您可以发现错误…Php 注册表未重定向,php,html,mysql,Php,Html,Mysql,我用HTML、PHP、MYSQL制作了这个注册表 因此,配置如下所示。当我填写表格并提交时,页面只需重新加载。我不知道我是否在PHP或HTML中遗漏了一些东西 我不知道发生了什么事 也许您可以发现错误… 在页面底部使用此代码 <?php session_status(); include('includes/config.php'); if (isset($_POST['submit'])) { $firstname = $_POST['firstname']; $lastnam
在页面底部使用此代码
<?php
session_status();
include('includes/config.php');
if (isset($_POST['submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$username = $_POST['username'];
$password = md5($_POST['password']);
$sql = "INSERT INTO users(firstname,lastname, email, mobile, username,
password) VALUES(:firstname, :lastname, :email, :mobile, :username,
:password, 1)";
$query = $dbh->prepare($sql);
$query->bindParam(':firstname', $firstname, PDO::PARAM_STR);
$query->bindParam(':lastname', $lastname, PDO::PARAM_STR);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':mobile', $mobile, PDO::PARAM_STR);
$query->bindParam(':username', $username, PDO::PARAM_STR);
$query->bindParam(':password', $password, PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if ($lastInsertId) {
$_SESSION['msg'] = 'Registration Sucessfull';
} else {
$_SESSION['msg'] = 'Something went wrong. Please try again';
}
}
header('Location:profile.php');
在继续之前,您应该检查POST数组中的所有必填字段是否可用,并且需要修改SQL以删除输入值末尾的随机数1
。在准备SQL语句时,您应该使用prepare
方法的返回值,以确保语句创建成功,而不是盲目依赖它-调用execute
方法时的类似方法将进一步帮助分叉程序逻辑
if( $_SERVER['REQUEST_METHOD']=='POST'){
include('includes/config.php');
if( isset(
$_POST['submit'],
$_POST['firstname'],
$_POST['lastname'],
$_POST['email'],
$_POST['mobile'],
$_POST['username'],
$_POST['password']
) ){
$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$email=$_POST['email'];
$mobile=$_POST['mobile'];
$username=$_POST['username'];
$password=md5($_POST['password']);
$sql ='insert into `users`
( `firstname`, `lastname`, `email`, `mobile`, `username`, `password` )
values
( :firstname, :lastname, :email, :mobile, :username, :password )';
$query=$dbh->prepare( $sql );
if( $query ){
$query->bindParam(':firstname', $firstname, PDO::PARAM_STR);
$query->bindParam(':lastname', $lastname, PDO::PARAM_STR);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':mobile', $mobile, PDO::PARAM_STR);
$query->bindParam(':username', $username, PDO::PARAM_STR);
$query->bindParam(':password', $password, PDO::PARAM_STR);
$res=$query->execute();
if( $res ){
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId){
echo "<script>
alert('Registration Sucessfull!');
location.href='profile.php';
</script>";
}else{
$error="Something went wrong. Please try again";
}
}
}else{
exit('Error: Failed to prepare SQL statement');
}
}
}
if($\u服务器['REQUEST\u METHOD']=='POST'){
include('includes/config.php');
如果(isset(
$\u POST['submit'],
$\u POST['firstname'],
$\u POST['lastname'],
$\u POST[“电子邮件”],
$\u POST['mobile'],
$\u POST['username'],
$\u POST['password']
) ){
$firstname=$_POST['firstname'];
$lastname=$\u POST['lastname'];
$email=$_POST['email'];
$mobile=$_POST['mobile'];
$username=$_POST['username'];
$password=md5($_POST['password']);
$sql='insert到'users'中'
(`firstname`、`lastname`、`email`、`mobile`、`username`、`password`)
价值观
(:firstname,:lastname,:email,:mobile,:username,:password);
$query=$dbh->prepare($sql);
如果($query){
$query->bindParam(':firstname',$firstname,PDO::PARAM_STR);
$query->bindParam(':lastname',$lastname,PDO::PARAM_STR);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->bindParam(':mobile',$mobile,PDO::PARAM_STR);
$query->bindParam(':username',$username,PDO::PARAM_STR);
$query->bindParam(':password',$password,PDO::PARAM_STR);
$res=$query->execute();
如果($res){
$lastInsertId=$dbh->lastInsertId();
如果($lastInsertId){
回声“
警报(“注册成功!”);
location.href='profile.php';
";
}否则{
$error=“出现问题,请重试”;
}
}
}否则{
退出('错误:准备SQL语句失败');
}
}
}
我在这行找到了错误
$sql ="INSERT INTO users(firstname,lastname, email, mobile, username, password)
VALUES(:firstname, :lastname, :email, :mobile, :username, :password, 1)";
为什么最后是1??
我刚刚重新生活,从一开始它就起作用了
$sql ="INSERT INTO users(firstname,lastname, email, mobile, username, password)
VALUES(:firstname, :lastname, :email, :mobile, :username, :password)";
当你有一个绑定到表单的事件处理程序时,你能发布这个函数吗?另外-看起来你的SQL在值的末尾有一个虚假的1
,所以你的语句会失败对不起,我是一个完全的新手,当涉及到PHP/MySQL时,我该如何添加事件处理程序?还有一点:不要使用md5
散列用户的密码,它根本不够安全,因为md5
被认为已经坏了好几年了。改为使用password\u hash
,另一方面,使用password\u verify
无法解决OP需要如何识别错误的问题。他说,提交数据后,页面将变为白色。如果有错误,为什么会变成白色。需要显示一些错误。我删除了一个并更新了上面的代码。仍然只是重新加载注册页面,数据库中没有条目。@CullenCarstens如果在同一页面中有php代码,请从起始表单中删除此操作=“register.php”。tagI更正了上面的代码,这是针对状态;)还有一个问题。。为什么页面重定向到index.php而不是profile.php?与其使用javascript
弹出一条消息,然后重定向,不如简单地使用php,并在profile.php
上显示一条临时消息。为什么它会重定向到index.php
——我不确定。它会弹出警告消息吗?是的,在我单击“注册”后,它会弹出一条消息,说“注册成功!”然后带我去index.php。