如何在另一个表中存储会话值?

时间:2016-08-19 20:53:08

标签: php mysql database session cookies

我有一个登录页面及其数据库。我想从那里接收电子邮件并将其存储在同一数据库的另一个表中。代码如下,请看一下并告诉我。

表1

<?php
session_start();
$email = $_POST['email'];
$password = $_POST['password'];

include 'connection.php';

$sql = "SELECT * FROM users WHERE email='$email' AND password='$password'";
$res = mysql_query($sql);
$count = mysql_num_rows($res);

if($count == 0)
{
    echo "Username Password Incorrect";
}
else
{
    $_SESSION['email'] = $email;
    header("location:home2.php")
}
?>

表2

<?php

$email= (HOW TO GET IT FROM SESSION?)

$company = $_POST['company'];
$project = $_POST['project'];
$duration = $_POST['duration'];
$key_learning = $_POST['key_learning'];

include 'connection.php';

$sql = "INSERT INTO `internship`(`id`, `email`, `company`, `project`, `duration`, `key_learning`) VALUES ('', '$email', '$company','$project', '$duration', '$key_learning')";
$res = mysql_query($sql);
$count = mysql_num_rows($res);

if($count == 1)
{
    echo "Fail";
}
else
{
    $_SESSION['email'] = $email;
    header("location:home3.php");
}

?>

从表1中我想在使用会话时收取电子邮件,并希望将其存储在表2中。如何操作?

1 个答案:

答案 0 :(得分:0)

  

$ email =(如何从会议中获取?)

如果第二个代码块与第一个代码块在同一个执行上下文中,则可以使用您创建的变量$email

如果您在用户导航到新页面时尝试从会话中检索数据,请执行以下操作:

<?php
session_start();
$email = isset($_SESSION['email'])? $_SESSION['email'] : null;

顺便说一句,在第二个代码块中,您尝试使用mysql_num_rows来分析INSERT查询的效果。你不能这样做。 According to the manual

  

[mysql_num_rows]从结果集中检索行数。这个   命令仅对返回的SELECT或SHOW等语句有效   实际结果集。检索受a影响的行数   INSERT,UPDATE,REPLACE或DELETE查询,使用mysql_affected_rows()。

$res = mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows()){
   //success
}else{
  //failure
}

你不应该使用mysql_函数,你绝对不应该直接在SQL语句中插入用户提供的值(用户名,电子邮件,密码)