我有一个登录页面及其数据库。我想从那里接收电子邮件并将其存储在同一数据库的另一个表中。代码如下,请看一下并告诉我。
表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中。如何操作?
答案 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语句中插入用户提供的值(用户名,电子邮件,密码)