注册PHP会话变量

Mic*_*lle 2 php session-variables

我正在尝试创建一个简单的登录表单.我有session_start(); 作为页面上加载的第一件事.我有一个文件login.php,其中包含登录相关代码,当单击Login按钮时,该代码通过ajax调用处理.它包含:

if ($_GET['cemail']) {

$email = $_GET['cemail']; 
$password = md5($_GET['cpassword']); 
$sql = "select * from users where email='" . $email . "' and password='" . $password . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) >= 1) { 
    session_register("email");
}
else {
    echo "<span style='color:#ffffff;'>Invalid Email/Password</span><br>";
}

}
Run Code Online (Sandbox Code Playgroud)

当我单击"登录"按钮时,我收到此警告:

警告:session_register()[function.session-register]:无法发送会话缓存限制器 - 已在/ home/clicker/public_html中发送的报头(在/home/clicker/public_html/hstrial-RBochner/login.php:1处开始输出)第82行/hstrial-RBochner/login.php

第82行是说的session_register("email");

我也尝试创建一个只调用的Logout按钮session_destroy(),但它给了我:

警告:session_destroy()[function.session-destroy]:尝试在第66行的/home/clicker/public_html/hstrial-RBochner/login.php中销毁未初始化的会话

我在这做错了什么?我试过放在session_start()各个地方.任何帮助/想法?谢谢.

The*_*ask 5

你需要:

  1. 将session_start()放在代码的开头
  2. 不要使用session_register(),是一个过时的函数,替换为$ _SESSION ['foo'] ='baa';
  3. 破坏会话:

    在session_start();
    session_destroy();

  4. 您的Web应用程序易受SQL注入攻击.- 检查在PHP中停止SQL注入的最佳方法