Php MSQL插入引导表单
我一直在寻找搜索的答案,但没有找到。以下是事实Php MSQL插入引导表单,php,mysql,twitter-bootstrap,Php,Mysql,Twitter Bootstrap,我一直在寻找搜索的答案,但没有找到。以下是事实 我可以连接到数据库 我的数据库已正确设置为可接收 我的表格如下所示,似乎一切正常 我的所有位置都是正确的,例如注册后将用户发送到哪里等 $link是另一个文件上的连接 问题1:我无法将数据插入数据库 问题2:如果可能的话,我想知道如何设置密码 而且数据的插入更加安全,因为我被告知这是不安全的 这样做的正确方法。问题出在哪里?我不知道从哪里开始 为了学习正确的安全技术,如果可能的话,我愿意 支付服务费用只是为了确保连接安全 我希望我没有违反规则,如果
$link
是另一个文件上的连接插入
更加安全,因为我被告知这是不安全的
这样做的正确方法。问题出在哪里?我不知道从哪里开始
为了学习正确的安全技术,如果可能的话,我愿意
支付服务费用只是为了确保连接安全
我希望我没有违反规则,如果我违反了规则,我只要求你给我指出正确的方向。我已经试着编写代码一段时间了,但在夏威夷很难,因为只有非常有限的编码人员来指导我,这是一种轻描淡写的说法。我目前在Treehouse和Udemy上,但到目前为止没有运气。下面的代码来自Udemy,我只是通过尝试和错误添加了验证。多谢各位
引导形式,仅因长度而开始和结束:
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<button type="submit" class="btn btn-primary" value="register">Register</button>
<?php
session_start();
if(isset($_GET['logout'], $_SESSION['id']) && $_GET['logout'] == 1) {
// if both get logout and session id does exists and logout is equal to 1
session_destroy();
header('Location: ../logout.php');
}
include 'core/connection.php';
$error = "";
if (isset($_POST['submit']) && ($_POST['submit']==="register")) {
if (!$_POST['first_name']) $error.="<br />Please enter your first name";
else {
if (!preg_match("/^[- '\p{L}]+$/u", $_POST['first_name'])) $error.="<br />First name may only contain letters";
}
if (!$_POST['last_name']) $error.="<br />Please enter your last name";
else {
if (!preg_match("/^[- '\p{L}]+$/u", $_POST['last_name'])) $error.="<br />Last name may only contain letters";
}
if (!$_POST['email']) $error.="<br />Please enter your email";
else if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $error.="<br />Please enter a valid email address";
if ($_POST['email'] !== $_POST['confirm_email']) $error.="<br />Your email addresses do not match.";
if (!$_POST['password']) $error.="<br />Please enter your password";
else {
if (strlen($_POST['password'])<8) $error.="<br />Please enter a password with at least 8 characters";
if (!preg_match('`[A-Z]`', $_POST['password'])) $error.="<br />Please enter at least 1 capital letter";
}
if ($_POST['password'] !== $_POST['confirmPassword']) $error.="<br />Your passwords do not match.";
if (!$_POST['dob_month']) $error.="<br />Invalid date of birth (month)";
if (!$_POST['dob_day']) $error.="<br />Invalid date of birth (day)";
if (!$_POST['dob_year']) $error.="<br />Invalid date of birth (year)";
if (!$_POST['gender']) $error.="<br />Please select your gender";
if (!$_POST['state']) $error.="<br />Please select your country and state";
if ($error) $error = "<strong>There were error(s) in your registration:</strong><br />".$error;
else {
$query = "SELECT * FROM `registered_users` WHERE email='".mysqli_real_escape_string($link, $_POST['email'])."'";
$result = mysqli_query($link, $query);
$results = mysqli_num_rows($result);
if ($results) $error = "That email address is already registered";
else {
$query = "INSERT INTO `registered_users` (`first_name`, `last_name`,`email`, `password`, `dob_month`, `dob_day`, `dob_year`, `gender`, `country`, `state`)"
. " VALUES('".mysqli_real_escape_string($link, $_POST['first_name'])."','".mysqli_real_escape_string($link, $_POST['last_name'])."','".mysqli_real_escape_string($link, $_POST['email'])."', '".md5(md5($_POST['email']).$_POST['password'])."','".mysqli_real_escape_string($link, $_POST['dob_month'])."','".mysqli_real_escape_string($link, $_POST['dob_day'])."','".mysqli_real_escape_string($link, $_POST['dob_year'])."', '".mysqli_real_escape_string($link, $_POST['gender'])."', '".mysqli_real_escape_string($link, $_POST['country'])."','".mysqli_real_escape_string($link, $_POST['state'])."')";
mysqli_query($link, $query);
$_SESSION['id'] = mysqli_insert_id($link);
header("Location: user_dashboard.php");
}
}
}
$loginerror = "";
if (isset($_POST['submit']) && ($_POST['submit']==="Sign In")) {
$query="SELECT * FROM `registered_users` WHERE email='".mysqli_real_escape_string($link, $_POST['loginemail'])."' AND password='".md5(md5($_POST['loginemail']).$_POST['loginpassword'])."' LIMIT 1";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_array($result);
if ($row) {
$_SESSION['id']=$row['id'];
header("Location:user_dashboard.php");
} else {
$loginerror = "We could not find a user with that email and password. Please try again.";
}
}
?>
在注册表中添加name='submit'
应该是这样的
<button type="submit" name='submit' class="btn btn-primary" value="register">Register</button>
寄存器
Addname=“submit”
在Register
中使用准备好的语句以及PASSWORD\u HASH()函数加密密码。如果你愿意,我可以为你重写一个示例代码,请做。请同时查看下面的评论,注册按钮是相同的,但单击后它会重新加载。我可以给你发一些文件。让我知道你想要什么作为回报。我做到了。我第一次试着把它贴出来,但没有成功。当我按下注册按钮时,页面就会刷新。