【问题标题】:A simple php script doesn't work with secured https protocol一个简单的 php 脚本不适用于安全的 https 协议
【发布时间】:2019-12-04 01:14:21
【问题描述】:

我的 PHP 脚本和 SSL 认证网站存在一些问题。 在我实现了一个安全的 https 协议之后,我的 PHP 会话似乎不再工作了。 我添加到 .htaccess 文件中,如下行所示

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

我的两个简单的网页和下面的脚本都不起作用。会话中的变量计数没有传递到第二页

session1.php

<?php
session_name("MySession"); // replace with whatever makes sense
session_start();


if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count']++; 
}

echo ' the site was reviewed '.$_SESSION['count'].' times during this session';
$link_address = 'https://iampretty-studio.com/session2.php';

echo "<a href='".$link_address."'>session2.php</a>";
?>

session2.php

<?php
session_name("MySession"); // replace with whatever makes sense
session_start();


if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count']++; 
}

echo 'The site was reviewed '.$_SESSION['count'].' times during this session';
$link_address = 'https://iampretty-studio.com/session1.php';

echo "<a href='".$link_address."'>session1.php</a>";
?>

它总是显示该网站被审查了 0 次。

我的问题是,有什么问题,我做错了什么? 在 SSL 认证之前,它可以正常工作。

【问题讨论】:

  • php 逻辑在我的服务器上使用 https 很好。只是想知道:如果您删除带有 session_name("MySession"); 的行会发生什么? ?
  • 您的网站没有创建 cookie。你能从你的php.inifile 中显示会话设置吗?您应该启用这些设置 session.use_cookies=Onsession.use_only_cookies=On
  • 当我用 session_name("MySession"); 删除行时一样的
  • 好的,最后使用 phpinfo 和非常复杂的脚本我完成了这项工作,并且 session.use_cookies 是 1 session.use_only_cookies i 1 会话变量计数仍然 = 0
  • 所以 cookie 也必须在 php.ini 中创建会话支持 prarameter = yes 那么我再次问的问题在哪里?

标签: php .htaccess session ssl https


【解决方案1】:

问题在于 BOM。我不知道为什么当我保存每个文件时,我的 Dreamweaver 编辑器开始为每个文件添加一个 BOM。因为我关闭了 php.ini 中的 display_errors,所以它没有显示任何可疑的东西。就是这样

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2023-03-22
    • 2017-12-03
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多