为什么这不应该运行我的单独的PHP文件?

时间:2014-04-06 13:58:17

标签: php jquery mysql

我有多个页面可以根据特定的规范来整理表格。 我为每个表格排序创建了一个页面,但我希望它在一个页面上。

当我第一次登录仪表板时,我有一小段代码。

session_start();
$user = $_SESSION['user'];
if(empty($_SESSION['table'])){
    $_SESSION['table'] = "dashboard";
 }

我在底部有这个jquery函数。

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
function changeString() {
    $.get("changeString.php");
    return false;
}

我设置它,以便当我点击某个图像时,它会更改条件的字符串并相应地将其排序。

这里的条件有条件:

 if($_SESSION['table'] == "dashboard"){
      $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'");
      $sess=mysql_fetch_array($sql1);
      $newValue=$sess['email'];
      $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue'"); 
    }

      elseif($_SESSION['table'] == "Pantry"){

      $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'");
      $sess=mysql_fetch_array($sql1);
      $newValue=$sess['email'];
       $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue' AND Container='Pantry'");

这是我的img链接:

<a href="#" onClick="changeString()";><img src="iconpantry.png" class="img-responsive"></a>

这是我的单独的php文件,名为changeString.php

<?php

session_start();
$_SESSION['table'] = "Pantry";


?>:

现在发生的事情是,当我第一次登录时,由于某种原因它会自动设置$ _SESSION [&#39; table&#39;] =&#34; Pantry&#34;。

没有我甚至点击图片。

为什么会这样?

2 个答案:

答案 0 :(得分:2)

@ user3503344的答案是正确的,它修复了您的代码,以便在登录时重置会话,这是以前没有做过的。但一般来说,如果设置不一致(即每次用户登录时重置),最好使用get变量。

如果用户打开了2个网站标签并希望每个标签上有不同的设置,该怎么办?他不能通过会议这样做。

所以我说你的表格有条件改为

if(!isset($_GET['table']) || $_GET['table'] == "dashboard"){
  //this happens if ?table=X does not exits or it is set to dashboard
  $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'");
  $sess=mysql_fetch_array($sql1);
  $newValue=$sess['email'];
  $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue'"); 
}elseif($_GET['table'] == "Pantry"){
  $sql1=mysql_query("SELECT email from loggedin WHERE session_id='$user'");
  $sess=mysql_fetch_array($sql1);
  $newValue=$sess['email'];
  $sql2= mysql_query("SELECT * FROM food WHERE OwnerEmail='$newValue' AND Container='Pantry'");
}

对于您的按钮,您应该执行以下操作:

<a href="?table=Pantry"><img src="iconpantry.png" class="img-responsive"></a>

这样用户也可以使用此首选项为您的网站添加书签,这样如果他想默认查看Pantry表,他每次都不必按下按钮。

答案 1 :(得分:0)

编辑:

session_start();
$user = $_SESSION['user'];
if(empty($_SESSION['table'])){
    $_SESSION['table'] = "dashboard";
 }

要:

session_start();
unset($_SESSION['table']);
$user = $_SESSION['user'];
$_SESSION['table'] = "dashboard";

使用GET方法:

网址:url.com/index.php?page=dashboard

PHP:

<?php
    if(isset($_GET['page']) && strlen($_GET['page'])>0) {
        if($_GET['page'] == 'dashboard') {
           // Do what you want if the page is dashboard.
        }
    }
?>