简体   繁体   English

单击提交按钮时,php会话无法与表单一起使用

[英]php sessions doesn't work with form when submit button is clicked

I'm having an exam soon. 我即将参加考试。 I'm stuck with sessions. 我陷入会议。 At most cases it does not work to me. 在大多数情况下,它对我不起作用。 No matter what I have tried. 不管我尝试了什么。 It worked for me once, but after refreshing a page I never saw it worked. 它一次对我有用,但是刷新页面后我再也看不到它了。 My samples: 我的样本:

qwer.php: 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 qwew.php

<?php
session_name('Private');
session_id('TEST');
session_start();

echo "here it is: ".$_SESSION["lolvalue"]." and ".$_SESSION["counter"];

session_destroy();

?>

The thing is that form and redirecting to another page should be done by clicking on submit. 问题是,通过单击提交可以完成表单并重定向到另一个页面。 Please help me to figure out where I am wrong. 请帮助我找出我错了。 Also I forgot to mension I'm using XAMPP, session.use_cookies and session.use_trans_sid are enabled 我也忘记了我正在使用XAMPP,启用了session.use_cookies和session.use_trans_sid

This code will never be executed: 此代码将永远不会执行:

if(isset($_POST["Submit"])){
    session_start();
    $_SESSION['counter']=5;
    $_SESSION["lolvalue"]=isset($_POST["imie"]);
}

That's because your HTML form is sending POST request to qwew.php file not to qwer.php . 这是因为您的HTML表单正在将POST请求发送到qwew.php文件而不是qwer.php

qwer.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>

qwew.php qwew.php

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 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM