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