问题描述
我正在处理注册表的后端 (bottlesbeach.eu/signin.PHP)。我已经完成了将数据发送到数据库的所有部分(用户名、密码、电子邮件),现在 我想在另一个页面上传递我的用户名值并且我想使用 cookie(如果表单已发送) 以这种方式:
if($sub == true){
$cookie_name = "usn";
$cookie_value = $username;
setcookie($cookie_name,$cookie_value,time() + (86400 * 30),"/"); // 86400 = 1 day
?>
<?PHP
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
}
?>
问题是 cookie 从未设置过,我不知道为什么。 如何正确设置我的 cookie?
我尝试这样做,但 cookie 立即清除:
<?
if($_SERVER["REQUEST_METHOD"] == "POST"){
$cookie_name = "usn";
$cookie_value = $username;
setcookie($cookie_name,time() + (864000 * 30),"/"); // 86400 = 1 day
}
<?PHP
//Connect To Database
$hostname="";
$username="";
$password="";
$dbname="";
$name ="";
$hour =date('H:i');
$insert = "";
$cont = 0;
$dt = date("Y-m-d");
$conn = new MysqLi($hostname,$username,$password,$dbname);
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
/*
*/
if($_SERVER["REQUEST_METHOD"] == "POST"){
$username = $_POST["username"];
$email = $_POST["e-mail"];
$password = $_POST["password"];
$rtpassword = $_POST["rtpassword"];
$nook = false;
$errsameuser = false;
$sub = false;
$queryy = "SELECT username FROM users";
$result = $conn->query($queryy);
if ($result->num_rows > 0)
{
//output data of each row
while($row = $result->fetch_assoc())
{
if( $row["username"] == $username){ //username already exist
$errsameuser = true;
}
}
}
if($password == $rtpassword){ //pssw e conferma pssw enno uguali
?>
<script>
console.log("password 1 and 2 match");
</script>
<?
if(strlen($password) < 8)
$nook = true;
if(!preg_match("#[a-z]+#",$password) ) //pssw must cointain at least lower word
$nook = true;
if(!preg_match("#[A-Z]+#",$password) ) //pssw must cointain at least upper word
$nook = true;
if ( !preg_match("/[\'^£$%&*()}{@#~?><>,|=_+!-]/",$password) ) //pssw must cointain at least special character
$nook = true;
if ( !preg_match("#[0-9]+#",$password) ) //pssw must cointain at least number
$nook = true;
if($nook){
?>
<script>
console.log("but password not ok")
</script>
<?
}
if($errsameuser){
?>
<script>
Swal.fire({
title: 'Username already exist',text: "Please choose a new username to continue",icon: 'error',showCancelButton: false,confirmButtonColor: '#3085d6',confirmButtonText: 'Ok'
}).then((result) => {
})
</script>
<?
}
else{
$query = "INSERT INTO users (username,email,password) VALUES ('$username','$email','$password')";
$result = $conn->query($query);
$sub = true;
?>
<script>
Swal.fire({
title: 'Welcome to bottles beach',text: "You successfully submitted the form",icon: 'success',confirmButtonText: 'Ok'
}).then((result) => {
if (result.isConfirmed) {
location="index.PHP"
}
})
console.log("Form is correct and submitted");
</script>
<?
}
}
}
$conn->close();
?>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)