2011-04-29 46 views
0

嘿! 我很久以前就买下了我的网站..我的网站是一个类似Facebook的网站,人们可以添加他们自己的网站或其他网站。 我曾考虑添加登录系统,以便用户可以使用他们的用户名进行发布,并使其更容易进行发布喜欢的比赛。 我已经有系统本身 - 使用此http://www.evolt.org/node/60384添加登录系统

我试图在进程文件中添加一个选项,当会话是'登录'代码检索用户名,在所有其他情况下,'匿名'。

问题是,它不工作:(

的代码是:

$today = date("Ymdhis"); 
    $rand = $today.mt_rand().mt_rand().mt_rand(); 
    $count = '0'; 
    $type = 'picture'; 
    $username = '<? if($session->logged_in){ echo "$session->username" } else { echo "Anonymous" } ?>'; 
    $sql = "INSERT INTO `like` (`rand`, `like`, `count`, `created`, `youtube`, `type`,`username`) VALUES ('$rand', '$like', 0, '$today', '$string', '$type', '$username')"; 

我首先定义$的用户名,然后“告诉”脚本将$的用户名进入它的领域。

的问题是,当我尝试这在实时, 字段示出了实际的代码; <? if($session->logged_in){ echo "$session->username" } else { echo "Anonymous" } ?>代替的期望输出

另外,我在过程文档的开始部分中包含了用于登录的session.php。

我与其他所有文件一起使用的session.php可在http://www.evolt.org/node/60384下载,无需下载。

PS我用$用户名密码使用主网页上输出登录后的用户名。我添加了“无名氏”的部分自己..这可能导致其无法正常工作..

+0

你给了正确的代码*和*的的网址您网站...这是有风险的,主要是因为根据你的'session'类,你可能会暴露于代码/ sql注入。 – 2011-04-29 15:04:58

+0

随着SQL查询被放在一起的方式,它看起来像用户输入直接进入它。您需要使用[绑定参数](http://bobby-tables.com/php.html)来防范SQL注入攻击。 – Schwartzie 2011-04-29 15:06:36

+0

哇......“问题不起作用:(”对于每个有代码的问题都是这么说的。 – 2011-04-29 15:07:18

回答

2

你发布的代码是PHP,但是在解析之后会被放到你的身边。所以它永远不会'运行'。

除非你使用某种类型的模板系统来解析你的代码两次,你是不是这个意思?

if($session->logged_in){ 
     $username = $session->username; 
} else { 
     $username = "Anonymous" ; 
} 
0

$的用户名是一个包含字符串的变量:

$username = '<? if($session->logged_in){ echo "$session->username" } else { echo "Anonymous" } ?>'; 

一切是在引号是一个字符串,而不是PHP代码。 它不会被执行。

你需要做这样的事情:

if($session->logged_in){ 
    $username = $session->username; 
} else { 
    $username = "Anonymous"; 
} 
0

变化

$username = '<? if($session->logged_in){ echo "$session->username" } else { echo "Anonymous" } ?>';

if($session->logged_in) $username = $session->username; else $username = "Anonymous"