MySQL表'users'结构:
id | user_name | user_pass | user_email |
1 | anderson | password |boy@mail.com|
MySQL表'history'结构:
id | user_email |
1 | boy@mail.com | <<< trying to insert boy@mail.com under user_email
试图在user_email
下的'history'表中插入boy@mail嗨,我在MySQL数据库中做了两个表。第一个是用户,第二个是历史。我有一个登录和注册PHP代码,允许用户使用'users'表注册和登录。当我登录时,页面将我重定向到一个欢迎页面,其中使用$_SESSION显示我的user_email,如下所示。
现在我想做以下事情;如果用户已经登录,将$_SESSION['email']插入到user_email下的'history'表中。
我得到了这段代码,我知道它真的错了。但是我是php的新手。所以有人可以帮助我修复它,并从第一个表插入会话数据到第二个表,只有当用户登录。非常感谢!
======================================================================MY-CODE:试图将会话值插入"历史"表
<head>
<?php
session_start();
$_SESSION['email'];
$query = "insert into history (email) values ('$email')";
?>
</head>
由于OP提供了非常模糊的细节,我建议以下解决方案,这是非常容易实现的,非常少的麻烦
正如OP在问题中提到的"我有一个登录和注册PHP代码,允许用户使用'users'表注册和登录。当我登录时,页面将我重定向到欢迎页面"
在您的登录页面上,您可以检查用户名和密码,在验证之后,您将用户重定向到欢迎页面,在重定向之前和验证之后运行此插入查询$query = "INSERT INTO history (user_email) VALUES ('$email')";
$result = mysql_query($query);
在同一页。不要忘记定义$email
变量First
不需要$_SESSION['email'];
无需编写新的查询
无需额外编码
更新;OP提供了注释
if(isset($_POST['login'])){
$password = mysql_real_escape_string($_POST['pass']);
$email = mysql_real_escape_string($_POST['email']);
$check_user = "SELECT * FROM users WHERE user_pass='$password' AND user_email='$email'";
$run = mysql_query($check_user);
$row= mysql_fetch_array($check_user);
$email = $row['user_email'];
if(mysql_num_rows($run)>0){
$_SESSION['email']=$email; //If you don't need this, remove this
$query = "INSERT INTO history (user_email) values ('$email')";
$result = mysql_query($query);
echo "<script>window.open('welcome.php','_self')</script>";
} else {
echo "<script>alert('Email or password x ')</script>";
}
}