Использование переменных сеансов между различными файлами php

я новичок в $_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>';
   }
  } 
}?>

ждем ваших предложений.


- - -сеансы обновления все еще не работают на странице 2.РНР?---

я не понимаю, почему $_SESSION не работа. Один страница1.php я могу echo($_SESSION['word']) и получите правильное значение, но одну страницу 2.php я получаю ('$'."_SESSION['word'] isn't set because you had never been at file one");

я протестировал все приведенные ниже решения, но ни один из них не работал = тот же результат на странице 2.РНР.

Моя страница 1.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);
?>

моя СТРАНИЦА2.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");
}
?>

я схожу с ума от этого.


ОБНОВЛЕНИЕ-РЕШЕНО
Я проверил все приведенные ниже предложения, но нет из них работал, что было странно, потому что я мог установить и эхо из sesson_id() на page1.php и page2.php, но на странице 2.php у меня другой sesson_id(). Я начал просматривать настройки сеансов MAMP, но все было правильно установлено. Решение было "просто" разместить session_start(); на самом верху на странице 2.РНР. И под самой вершиной я подразумеваю до все даже <!DOCTYPE html> etc.
решено + урок усвоен : -)

6 ответов


сначала вы должны запустить seesion через session_start(); сразу после открытия PHP 'tag' (<?php session_start();... ?>)

затем вы должны сохранить переменную в сессии. Вы можете использовать $_SESSION['word'] = $word; для этой цели.

и в другом файле вы также должны использовать session_start(); в самом первом после <?php 'tag'.

затем вы можете получить доступ к старой переменной через $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>';
   }
  } 
}?>
второй:
<?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;
?>

надеюсь, что это помогает ;)


чтобы использовать PHP-сессии, вы должны сделать следующее:

начать сеанс, session_start();

Примечание: session_start(); должна быть первая строка PHP в файл.

создать сессию, $_SESSION['word'] = $word;

для доступа к нему на другую страницу:

начать сеанс, session_start();

доступ к сессии,$word = $_SESSION['word'];


session_start() означает, что вы используете переменные сеанса, убедитесь, что он находится в верхней части страницы. Чтобы сделать сеанс, вы делаете:$_SESSION['word'] = [some value]. Это можно использовать между страницами, пока у вас есть session_start() в верхней части. Убедитесь, что он установлен первым, если он не установлен initialize.

<?php session_start(); ?>

...

<?php 
    if ( isset($_SESSION['word']) ) {
      $_SESSION['word'] = /* change existing session value */;
    } else {
      $_SESSION['word'] = /* new session value */;
    }
?>

вы в первую очередь должны запустить сеанс, используя функцию 'session_start()'. Поместите это в свой индекс.php / bootstrap.на php (файл всегда загружается при загрузке вашего сайта).

после этого вы можете использовать глобальный "$_SESSION " для установки данных.

//In your index.php/boostrap.php
session_start();

в файле, который вы хотите сохранить $word:

$_SESSION['myword'] = $word;

и с этого момента вы можете использовать эту переменную на другую страницу.

//On another page, after the variable is being set
echo $_SESSION['myword']; 

имейте в виду, что при использовании shared веб-хостинг, ваши данные сеанса часто хранятся в глобальной папке на веб-сервере и могут использоваться каждым веб-сайтом на этом сервере. Чтобы предотвратить это, вы должны изменить путь сохранения сеанса, используя функцию "session_save_path ()" или создав собственный обработчик сеанса.


вызов session_start(); в начале файла PHP, и если что-то установлено в $_SESSION супер глобальный массив, вы можете повторно получить к нему доступ.

если он не установлен, вы можете установить его с:
$_SESSION['a name']= 'some thing';

вот пример:
В PHP ФАЙЛ1

<?php
session_start();
$_SESSION['word'] = $_POST['word']
?>

PHP FILE2

<?php
session_start();
echo $_SESSION['word'];
?>

есть много способов это сделать все зависит от того как вы хотите использовать его. Вы можете включить свой файл в этот файл, вы можете использовать require или require_once, или Да, вы можете использовать сеанс super global.

$ _SESSION super global будет доступен для всех файлов в вашем приложении. Единственное, что вам нужно сделать, это использовать session_start() на странице в качестве первого на этой странице. Если вы используете session_start () после того, как любой вывод ушел в teh браузер не будет работать. Обычно вы хотите запустить session_start () в качестве первой строки вашего индекса.PHP-файл. Тогда вы можете использовать ...

<?php
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>';
   }
  } 
}?>

затем на любой странице, которую вы хотите получить доступ к нему, просто позвоните...

<?php
    echo $_SESSION['word'];

надеюсь, что это поможет