PHP会话不允许访问我的“CART”

时间:2015-10-01 18:21:46

标签: php .htaccess session redirect login

我希望用户只有在登录后才能访问购物车。

的index.html

 <?php 
    session_start();
 ?>
<!DOCTYPE html>
<html lang="en">

Cart.php

<?php

if(!isset($_SESSION["userName"]))
{
    header("Location: ../index.html");
}

?>

connectivitity.php

function SignIn() 
{ 
    session_start(); //starting the session for user profile page 
    if(!empty($_POST['user'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
        $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error());
        if(!empty($row['userName']) AND !empty($row['pass'])) 
        { 
            $_SESSION['userName'] = $row['pass']; 
            header("location: ../PHP/Cart.php");

        } else { 
            echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
        } 
    } 
    if(isset($_POST['submit'])) 
    { 
        SignIn(); 
    } 

此时无论我尝试的变化如何,它都会将我重定向回index.html。甚至以为我改变了标题,直接把我带到Cart.php文件。

我在CPanel上运行godaddy托管包,这是在.htaccess文件中

Options +MultiViews
AddType application/x-httpd-php .html .htm

1 个答案:

答案 0 :(得分:1)

我不确定这是否是核心问题,但你应该寻找它。

1)而不是使用不正确的字符串连接的查询:

 $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 

让它更简单:

$user = $_POST['user'];
$pass = $_POST['pass'];

$query = "SELECT * FROM UserName where userName = '$user' AND pass = '$pass'";
 $query = mysql_query($query) or die(mysql_error()); 

2)无论您使用/设置/取消设置/还是使用sessions执行任何操作。始终在代码的开头写下session_start();

您的固定cart.php

<?php
session_start();
if(!isset($_SESSION["userName"]))
{
    header("Location: ../index.html");
}

?>
  

注意:即使这些修复程序可以帮助您解决问题。但它是   强烈建议您使用预先准备好的语句移至mysqliPDO   因为这段代码仍然容易出现SQL注入。