Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有cookie的PHP会话_Php_Html_Session_Cookieless - Fatal编程技术网

没有cookie的PHP会话

没有cookie的PHP会话,php,html,session,cookieless,Php,Html,Session,Cookieless,没有饼干我工作有点不知所措。 我想创建一个通过url传递SID的会话,但我不知道如何从另一个页面传递和获取数据。 我在谷歌上搜索了很多,但90%的例子都是关于饼干的 这是我的 index.php <?php ini_set("session.use_cookies",0); ini_set("session.use_only_cookies",0); ini_set("session.use_trans_sid",1); session_start(); ?

没有饼干我工作有点不知所措。 我想创建一个通过url传递SID的会话,但我不知道如何从另一个页面传递和获取数据。 我在谷歌上搜索了很多,但90%的例子都是关于饼干的

这是我的

index.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
?>

<html>
<head>
    <title>Index</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />        
    <link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<body>  
    <a href="index.php?" class="navactive">Index</a>
    <a href="second.php?">Second</a>        

    <form action="access.php" method="POST">
        User: <input type="text" name="user" size="15"/><br>
        Pass: <input type="password" name="pass" size="15"/><br>
        <button type="submit"/>Ok</button>
        <button type="reset"/>Reset</button>
    </form>     

    Logged as: <?php print $_SESSION["name"]; ?>                

</body>
</html>
second.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
?>

<html>
<head>
    <title>Second</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />        
    <link rel="STYLESHEET" type="text/css" href="style.css">
</head>
<body>
    <a href="index.php?">Index</a>
    <a href="second.php?" class="navactive">Second</a><br>              

    <a href="logout.php">Logout</a><br>         

    Logged as: <?php print $_SESSION["name"]; ?>                    

</body>
</html>

第二


记录为:
logout.php

<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
    session_unset();    
    session_destroy();
    header('Location: index.php');
    exit;
?>

-我必须在“登录为:”中输入什么?。“打印$_会话[“名称”];”不显示任何内容

-当我登录时,我被重定向到second.php,然后我单击任何链接,实际记录的会话将终止,SID将更改


谢谢

要通过URL传递任何内容,必须使用正确的语法:

your.url.com/?key=value&key2=value2…等等

然后,要检索此数据,请执行以下操作:


echo$\u GET['key']
echo$\u GET['key2']

我刚刚复制了你的代码,自己测试了一下。一切正常,但不要在access.php文件中使用session_name(“test”)。我不太清楚它是干什么的,但当我把它包括进去的时候,它就坏了。相反,我使用了$\u SESSION['name'],而没有调用SESSION\u name()函数,一切正常。

Cookies是传递会话令牌的明智方法。你为什么要避开它们?使用“session.use_trans_sid”会让谷歌把你的网站排名靠后。如果可能的话,你不应该使用这个。此外,$\u SESSION[“name”]”应为“$\u SESSION['name']”。。。单引号's@Quentin我知道,但这是一个大学练习,我不能使用cookies:(很高兴看到你的大学对现实世界一无所知,根据:“你需要为每个请求调用会话名称()(在调用会话开始()或会话注册()之前)”,因此需要在所有页面上调用它,而不仅仅是在access上。phpI相信这意味着,如果您使用会话名称,则需要在所有页面上调用它。不仅仅是在access.php上。我建议根本不要使用它。不要使用您的应用程序,只要删除它,一切都会正常。@JamesLee耶!session_name()问题就在这里!现在它开始工作了!谢谢
<?php
    ini_set("session.use_cookies",0);
    ini_set("session.use_only_cookies",0);
    ini_set("session.use_trans_sid",1);
    session_start();
    session_unset();    
    session_destroy();
    header('Location: index.php');
    exit;
?>