[英]php sessions doesn't work with form when submit button is clicked
我即將參加考試。 我陷入會議。 在大多數情況下,它對我不起作用。 不管我嘗試了什么。 它一次對我有用,但是刷新頁面后我再也看不到它了。 我的樣本:
qwer.php:
<?php
session_name('Private');
session_id('TEST');
if(isset($_POST["Submit"])){
session_start();
$_SESSION['counter']=5;
$_SESSION["lolvalue"]=isset($_POST["imie"]);
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<form name="myform" method="post" action="qwew.php" onsubmit="return validateform();">
<input type="text" name="imie"><br>
<input type="submit" name="Submit">
</form>
<a href='qwew.php'>Link to protected file</a>
</body>
</html>
<script type="text/javascript">function validateform(){
checkit=/^[A-Z]{1}[a-zA-Z0-9]{7,16}$/;
if(!(myform.imie.value.match(checkit))){alert("blabla...bla");
return false;}
}
</script>
qwew.php
<?php
session_name('Private');
session_id('TEST');
session_start();
echo "here it is: ".$_SESSION["lolvalue"]." and ".$_SESSION["counter"];
session_destroy();
?>
問題是,通過單擊提交可以完成表單並重定向到另一個頁面。 請幫助我找出我錯了。 我也忘記了我正在使用XAMPP,啟用了session.use_cookies和session.use_trans_sid
此代碼將永遠不會執行:
if(isset($_POST["Submit"])){
session_start();
$_SESSION['counter']=5;
$_SESSION["lolvalue"]=isset($_POST["imie"]);
}
這是因為您的HTML表單正在將POST
請求發送到qwew.php
文件而不是qwer.php
。
<?php
session_start();
if(isset($_POST["Submit"])) {
$_SESSION['counter']=5;
$_SESSION["lolvalue"]=isset($_POST["imie"]);
header('Location:qwew.php');
die();
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<form name="myform" method="post" action="qwer.php" onsubmit="return validateform();">
<input type="text" name="imie"><br>
<input type="submit" name="Submit">
</form>
<a href='qwew.php'>Link to protected file</a>
</body>
</html>
session_start();
if(isset($_SESSION["lolvalue"]) && isset($_SESSION["counter"]))
echo "here it is: ".$_SESSION["lolvalue"]." and ".$_SESSION["counter"];
else {
header('Location:qwer.php');
die();
}
qwew.php
<?php
session_start();
if(isset($_POST["Submit"])){
$_SESSION['counter']=5;
$_SESSION["lolvalue"]=isset($_POST["imie"]);
echo "here it is: ".$_SESSION["lolvalue"]." and ".$_SESSION["counter"];
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<form name="myform" method="post" action="qwew.php" onsubmit="return validateform();">
<input type="text" name="imie"><br>
<input type="submit" name="Submit">
</form>
<a href='qwew.php'>Link to protected file</a>
</body>
</html>
<script type="text/javascript">function validateform(){
checkit=/^[A-Z]{1}[a-zA-Z0-9]{7,16}$/;
if(!(myform.imie.value.match(checkit))){alert("blabla...bla");
return false;}
}
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.