ajax获取后,Php变量不起作用

时间:2017-06-02 09:17:18

标签: php mysql session

我有PHP变量的问题。我正在显示用{id}}登录用户ID的用户名。

$_SESSION['uid'];

我必须使用

获取用户名
$uid = $_SESSION['uid'];

因此,在索引页面中显示$data = $Details->UserDetails($uid); $data_username = $data['username']; ,但当我在以下代码中使用<?php echo $data_username;?>时,它会给我错误。

$data_username

我正在注意:未定义的变量:data_username 我在这里缺少什么人都可以告诉我?

3 个答案:

答案 0 :(得分:2)

$data_username传递给函数,即

if ($_GET['action'] == "get_all_posts") { get_all_posts($db,$config, $data_username); }

答案 1 :(得分:0)

要在函数内部获取变量,您需要对函数说使用此变量。在你的`函数get_all_posts($ db,$ config){``

下添加global $data_username

所以正确的代码是:  

include_once ("includes/datas.php"); 
//session_start(); and $data_username will be come within datas.php
if ($_GET['action'] == "get_all_posts") { get_all_posts($db,$config); }
function get_all_posts($db,$config) {
 global $data_username; // Try to add this line
 $sql = "select * from `posts` where ((
 to_uname = '".mysqli_real_escape_string($db, $data_username)."' AND 

 from_uname = '".mysqli_real_escape_string($db,$_GET['client'])."' ) OR (

 to_uname = '".mysqli_real_escape_string($db,$_GET['client'])."' AND 

 from_uname = '".mysqli_real_escape_string($db,$data_username)."' )) order by post_id DESC ";
}

答案 2 :(得分:0)

也许你应该弄清楚全局变量和局部变量的概念。 这意味着你不能在ur函数中使用尚未定义的变量,除了变量是全局的。

您可以通过参数发送变量,如下所示:

function get_all_posts($db,$config,$data_username)

或使用关键字&#39; global&#39;在你的函数中声明变量如下:

global $data_username;

但在处理复杂数据时总是使用对象。