我是新手,$_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>
等等.
解决了+经验教训:-)
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)
希望这可以帮助 ;)