Intereting Posts
Недостатки PHP продолжают добавлять Каков наилучший способ защиты паролем папки / страницы с использованием php без db или имени пользователя Проверить токен доступа к API Facebook и идентификатор пользователя через PHP SDK? Использовать OR внутри, если условие else по обратному порядку порядка в php отправлять приглашения на facebook с помощью openinviter Лучше передать полный объект или только требуемое значение в PHP (Symfony 2)? как передать переменные var php в форму в скрытых полях? Как отредактировать мой код, чтобы он печатал все блоки строки JSON, а не только первый? Нужен совет по изменению дизайна моей базы данных Загрузите файл CSV прямо в папку загрузки пользователей Переменные PHP, объявленные внутри цикла foreach, уничтожены и воссозданы на каждой итерации? Как заставить строку заголовка пропустить в моем цикле while, используя fgetcsv? MySQL: группа по двум столбцам и сумма Является ли ip2long () в PHP равным функции INET_ATON () в MySQL? Добавьте 30 секунд к времени с помощью PHP

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

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


UPDATE Сессии по-прежнему не работают на page2.php?

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

Я тестировал все приведенные ниже решения, но ни один из них не работал = тот же результат на стр. 2.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); ?> конечные <?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); ?> 

Мой файл 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"); } ?> 

Я схожу с ума по этому поводу.


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

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

Затем вы должны сохранить переменную в сеансе. Вы можете использовать $_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>'; } } }?> 

Файл два:

 <?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() вверху. Убедитесь, что он установлен первым, если он не установлен в качестве инициализации.

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

Прежде всего вы должны начать сеанс, используя функцию session_start (). Поместите это в свой index.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']; 

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

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

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

Итак, для вашего примера:
PHP FILE1

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

PHP FILE2

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

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

Суперкомпьютер $ _SESSION будет доступен для всех файлов вашего приложения. Единственное, что вам нужно, чтобы убедиться, что вы это делаете, это использовать session_start () на странице, как первое, что на этой странице. Если вы используете session_start () после выхода любого выхода в браузер, это не сработает. Обычно вам нужно запустить session_start () как первую строку в файле index.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']; 

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