请记住这里的初学者模式。 我正在建立一个从数据库中搜索产品的电子商务网站。 我使用的登录基于数据库中的0和1。 以管理员身份登录并使用admin.php页面上的搜索功能时,我会被注销或重定向到frontPage。相同的搜索功能在frontPage上正常工作。
这是我在admin.php上提交表单的部分。
<div id="mainArea">
<form id="searchBox" action="<?=$_SERVER['PHP_SELF']?>" method="post"><input id="search" name="title" type="text" placeholder="Search Products" /><input name="submit" type="submit" value="Search" style="width:75px;height:36px"/></form>
</div>
<div id="show">
<?php
include("searchAdmin.php");
?>
</div>
admin.php页面的顶部如下所示:
<?php
session_start();
$name = $_SESSION['myusername'];
?>
在adminSearch.php中搜索:
<?php
if ($_POST['submit']){
include ("connection.php");
$title = (trim($_POST['title'])=="")?
die ("You did not enter any search criteria"):
mysql_real_escape_string($_POST['title']);
$query = "select * from beer where upper(beer_name) like '%".strtoupper($title) ."%' OR upper(beer_descr) like '%". strtoupper($title) ."%' OR upper(beer_categ) like '%". strtoupper($title) ."%'";
if(! ($result = mysql_query($query)))
die ("No matches found. Please search again.</body></html>");
echo "<table border=1>";
while ($rows = mysql_fetch_array($result)) {
echo "<tr><td rowspan=3>" . '<img src="images/'. $rows['beer_image'] . '.jpg"/>'."</td><td>".$rows['beer_name']."</td><td><a href='updateBeer.php?id=". $rows['beer_id'] ."'>Update</a></td></tr>";
echo "<tr><td>".$rows['beer_categ']."</td><td><a href='deleteBeer.php?id=". $rows['beer_id'] ."'>Delete</a></td></tr>";
echo "<tr><td>".$rows['beer_descr']."</td>
<td>".$rows['beer_cost']."</td></tr>";
}
echo "</table>";
}
else include("showAdmin.php");
?>
编辑:忘记显示我的登录结束php看起来像这样。 它正确地将我发送到管理页面,但是当我在管理页面上进行搜索时,它会将我注销或发送给frontPage。
if($count==1){
if($auth==1){
session_start();
$_SESSION['myusername'] = $myusername;
$_SESSION['auth']=$auth;
header("location: /admin.php");
}
elseif($auth==0){
session_start();
$_SESSION['myusername'] = $myusername;
$_SESSION['auth']=$auth;
header("location: /user.php");
}
}
else {
echo "Wrong Username or Password";
}
我的注销在同一个管理页面上显示如下:
<div id="login1">
<font color="white">Logged in with Administrator privilages as: <?php echo $name ?>.</font><br /><form id="logout" method="post" name="logout" action="logout.php"><input name="logout" type="submit" value="Logout" style="width:75px;height:22px"><br />
</div>
logout.php上写着:
<?php
if (!empty($_POST['logout'])){
session_start();
session_destroy();
header("location: /frontPage.php");
}
?>
答案 0 :(得分:0)
乍一看,您使用的是变量$ result,这可能是您问题的一部分。
从我所看到的,你没有向$ result声明或赋值,所以if语句中的比较可能没有达到你想要的效果。
我的建议是通过删除if语句来简化代码,以便进行调试,看看是否会遇到同样的问题。
还添加一些警告框来调试代码,以便您可以识别代码的哪一部分将您重定向到注销代码。
答案 1 :(得分:0)
代替
<?=$_SERVER['PHP_SELF']?>
使用
<?php echo $_SERVER['PHP_SELF']?>
我认为这个简单的错误导致错误。希望这一次好运会和你在一起。