在不同的php文件之间使用SESSIONS变量

Nom*_*mis 7 php session

我是新手,$_SESSIONS但需要它在不同的php文件之间重用变量.在下面的代码中我想$word在另一个php文件中使用该变量,但我不确定如何执行此操作.

我的php文件看起来像这样:

<?php
  if (isset($_POST["search"])) {    

    //include database connection

 $word = mysql_real_escape_string($_POST["search"]);
 $word = htmlentities($word);

 $sql = ("SELECT task_id, task_date FROM customer JOIN task ON customer.id = task.customer_id WHERE mobil = $word ORDER BY task_date DESC LIMIT 0, 10");

$results = mysql_query($sql);
 if (mysql_num_rows($results)==0) {
  echo $word, " text bla";
}else {
  echo $word, " text bla bla";
   while ($row = mysql_fetch_assoc($results)) {
    echo '<pre>', print_r($row), '<pre>';
   }
  } 
}?>
Run Code Online (Sandbox Code Playgroud)

期待您的建议.


--- UPDATE会话仍然无法在page2.php上运行?---

我不明白为什么$_SESSION不工作.一个page1.php我可以echo($_SESSION['word'])得到正确的值,但我得到一个page2.php('$'."_SESSION['word'] isn't set because you had never been at file one");

我测试了以下所有解决方案,但没有一个在page2.php上工作=相同的结果.

我的page1.php文件.

<?php
session_start();

//if we got something through $_POST
    if (isset($_POST["search"])) {  

    // include database connection
        $connect = mysql_connect('localhost', 'root', 'NomiS123') or die(mysql_error());
        mysql_select_db('workcard');

    // sanitize user input
        $word = mysql_real_escape_string($_POST["search"]);
        $word = htmlentities($word);

    // build search query to the database
        $sql = ("SELECT task_id, task_date FROM customer JOIN task ON customer.id = task.customer_id WHERE mobil = $word ORDER BY task_date DESC LIMIT 0, 10");

        // get results
        $_SESSION['word'] = $word;
        $results = mysql_query($sql);
        if (mysql_num_rows($results)==0) {
            $_SESSION['word'] = $word;
            echo($_SESSION['word']. "<br>");
            var_dump($_SESSION);
            echo "<br>";
            echo "link link <br>";
            echo "<a href=\"../page2.php/\">new card</a> <br>";
            echo "<a href=\"//cykelc/\">New Search</a>";
        }   else {
                echo $word, " bla bla text <br> Create card <br>";
                echo "Edit info on: ", $word, "<br>";
                echo "<a href=\"//cykelc/\">New Search</a> <br>";

                while ($row = mysql_fetch_assoc($results)) {
                    echo '<pre>', print_r($row), '<pre>';
                    }
                    //$results->free();
            }   
        }
// mysql_close($connect);
?>
Run Code Online (Sandbox Code Playgroud)

我的PAGE2.php文件.

<?php 
session_start();
if(isset($_SESSION['word'])) {
    $word = $_SESSION['word'];
    echo($word);
} else {
    die('$'."_SESSION['word'] isn't set because you had never been at file one");
}
?>
Run Code Online (Sandbox Code Playgroud)

我对此感到疯狂.


更新 - 已解决
我测试了以下所有建议,但没有一个工作,这是奇怪的,因为我可以设置和回显sesson_id()在page1.php和page2.php,但在page2.php我有一个不同sesson_id().我开始研究我的MAMP会话设置,但一切都是正确的设置.解决方案"简单地" session_start();放在page2.php的最顶层.而在最顶端,我的意思是在所有事情之前甚至<!DOCTYPE html>等等.
解决了+经验教训:-)

jan*_*kal 5

session_start();首先,您必须在打开 PHP 'tag' ( <?php session_start();... ?>)之后直接启动 seesion

然后您必须将变量保存到会话中。您可以用于$_SESSION['word'] = $word;此目的。

在另一个文件中,您还必须session_start();在“标签”之后的第一个文件中使用<?php

然后你可以通过访问旧变量$word = $_SESSION['word'];

$word您现在还可以在第二个文件中使用。但只有在设置后才可以使用它(并且您之前位于第一个文件的位置)。

文件一:

<?php
session_start();
    if (isset($_POST["search"])) {    

    //include database connection

 $word = mysql_real_escape_string($_POST["search"]);
 $word = htmlentities($word);
 $_SESSION['word'] = $word;

 $sql = ("SELECT task_id, task_date FROM customer JOIN task ON customer.id = task.customer_id WHERE mobil = $word ORDER BY task_date DESC LIMIT 0, 10");

$results = mysql_query($sql);
 if (mysql_num_rows($results)==0) {
  echo $word, " text bla";
}else {
  echo $word, " text bla bla";
   while ($row = mysql_fetch_assoc($results)) {
    echo '<pre>', print_r($row), '<pre>';
   }
  } 
}?>
Run Code Online (Sandbox Code Playgroud)

文件二:

<?php
session_start();
if(isset($_SESSION['word'])) {
    $word = $_SESSION['word'];
} else {
    die('$'."_SESSION['word'] isn't set because you had never been at file one");
}
echo $word;
?>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 ;)