3

首先让我说我对 php 真的很陌生。我只是在学习用它编码。因此,如果有人对设置此代码的更有效方法有任何建议,我将很乐意接受。

好,进入正题:

对于这个站点,我们有一个脚本来检查会话、cookie 和数据库中的名称。如果在这些位置中的任何一个找到该名称,则将其分配给一个变量。如果不是,则名称取自 URL 或用户提交,然后添加到数据库和 cookie。这一切都是通过 if-then-elseif 语句完成的,并且在除注册页面之外的所有页面上似乎一切正常。注册页面是唯一实际使用从该脚本中提取的信息的页面。所有其他页面只需检查 cookie 和 db 记录,如果找不到则创建它们。

注册页面应该从前面的脚本中获取名称变量,检查数据库中名称等于名称变量的记录。此脚本首先检查名称提交(来自此页面上的单独表单)。如果找到一个,它将设置名称变量等于名称提交。接下来,它检查会话,然后从会话变量中提取名称变量。第三,它检查前一个脚本中的名称变量。它要么来自 cookie、数据库,要么来自创建这两个条目时设置的变量。

这就是问题所在:从会话中提取的变量或从 cookie 中提取的变量总是提取正确的信息。但是,对于提交名称、数据库中的名称或创建 cookie/db 时设置的变量,这些信息根本不会被提取出来。我设置了一个回显语句来在数据库查询中运行之前显示名称变量,并且名称总是正确显示。但是,似乎没有从数据库中提取任何内容。这是数据库查询:

echo $name_variable."<br>";
    $query=mysql_query("SELECT * FROM db WHERE name='$name_variable' OR email='$name_variable'");

有什么想法可以解决这个问题吗?我希望这只是我忽略的一些简单的事情。如果需要,我可以发布代码,但它相当长。

4

3 回答 3

1

$query=mysql_query("SE......

你在做 mysql_fetch_assoc

然后 mysql_array

使用索引访问变量..请在事情不工作的地方提供更多代码。

于 2012-08-29T05:23:23.850 回答
0

哇...我不想承认,但这只是一个新手错误。

使用包含文件打开数据库。此页面有多个包含,其中一个还包含数据库文件(带有 require_once 函数)。此页面还打开了数据库(使用 require_once)来比较数据。

无论如何,我将此页面上的 required_once 更改为 just required 并且一切正常。

感谢大家的回应!

于 2012-09-05T18:11:01.597 回答
0

尝试这个

 mysql_query("SELECT * FROM db WHERE name='".$name_variable."' OR email='".$name_variable."'");
于 2012-08-29T05:22:25.330 回答