会话可在Local主机上使用,但在服务器(iPage等)上不起作用



这是一个代码:

 <?php
    require_once('./includes/connection.inc.php');
    session_start();
    // create database connection
    $connread = dbConnect('read', 'pdo');
    $connwrite = dbConnect('write', 'pdo');
    $komentari = 'SELECT * FROM komentariodobreni ORDER by komentarodobren_id DESC';
    $kontakt = 'SELECT poruka_id, ime, prezime, email, predmet, ordinacija, poruka,      DATE_FORMAT(datum, "%H:%i:%s %d. %b. %Y") 
     AS datum  FROM kontakt ORDER by poruka_id DESC';

    if (isset($_POST['slanje'])) {
    $potvrdiquery = "SELECT * FROM kontrola WHERE adminname='" . $_POST["adminname"] . "' and adminpassword = '". $_POST["adminpassword"]."'";
     $stmt = $connwrite->prepare($potvrdiquery )
    ;
      // bind the parameters and execute the statement  
      // execute and get number of affected rows
      $stmt->execute();
      $OK = $stmt->rowCount();

    foreach ($connread->query($potvrdiquery) as $row) {
    $_SESSION['adminid'] = $row['adminid'];
    $_SESSION["adminname"] = $row["adminname"];
    $_SESSION["adminpassword"] = $row["adminpassword"];
    } 
     header('Location: index.php');
    } 
?>

它在我的本地上完美工作,但是当我将其上传到iPage或其他服务器时,它不会注册会话变量。

尝试重新安排 session_start()像这样:

<?php
  session_start();
  require_once('./includes/connection.inc.php');
  ...

尝试一下。connectoin.inc.php中可能会发生某些事情(错误或输出)。

帮助调试问题添加错误输出:

<?php
  session_start();
  error_reporting(E_ALL);
  ini_set('display_errors', '1');
  require_once('./includes/connection.inc.php');
  ...

页面没有给您默认的保存路径,您需要创建一个:或使用root路径保存任何文件或session_save_path

喜欢这个:在您的代码顶部

session_save_path("/home/users/xxx/xxx/ipg.website/"); 
NOT :
session_save_path("/home/users/xxx/xxx/ipg.website/cgi-bin/tmp"); 

此路径不存在您需要创建它。

转到您的服务器并打开您的php.ini文件,然后在您的php.ini

上找到 session.save_path Word

您有3个搜索结果,例如

session.save_path = "4;/hermes/phpsessions"

前两个结果注释(只需添加; 首先)和最后一个更改路径

session_save_path("/home/users/xxx/xxx/ipg.website/cgi-bin/tmp");

您已经设置了自己的服务器根路径

我的服务器是iPage,所以我将服务器会话示例放在服务器上,但要设置您自己的根路径,但要设置自己的最后一个路径。

最新更新