使用php将会话电子邮件插入MySQL表 MySQL表“用户”结构:
MySQL表“历史”结构:使用php将会话电子邮件插入MySQL表 MySQL表“用户”结构:,php,mysql,database,session,insert,Php,Mysql,Database,Session,Insert,MySQL表“历史”结构: id |用户|电子邮件| 1 | boy@mail.com|由于OP提供了非常模糊的细节,因此可以建议以下解决方案,这是非常容易实现的,只需很少的麻烦 正如OP在问题中提到的,“我有一个登录和注册PHP代码,允许用户使用‘users’表注册和登录。当我登录时,页面会将我重定向到欢迎页面” 在登录页面上,您可以在其中检查用户名和密码,并在验证之后将用户重定向到欢迎页面,在重定向之前和验证之后运行此插入查询 $query = "INSERT INTO history
id |用户|电子邮件|
1 | boy@mail.com|由于OP提供了非常模糊的细节,因此可以建议以下解决方案,这是非常容易实现的,只需很少的麻烦
正如OP在问题中提到的,“我有一个登录和注册PHP代码,允许用户使用‘users’表注册和登录。当我登录时,页面会将我重定向到欢迎页面”
在登录页面上,您可以在其中检查用户名和密码,并在验证之后将用户重定向到欢迎页面,在重定向之前和验证之后运行此插入查询
$query = "INSERT INTO history (user_email) VALUES ('$email')";
$result = mysql_query($query);
在同一页上。不要忘记先定义$email
变量
不需要$\u会话['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>";
}
}
if(isset($\u POST['login'])){
$password=mysql\u real\u escape\u字符串($\u POST['pass']);
$email=mysql\u real\u escape\u字符串($\u POST['email']);
$check_user=“从用户中选择*,其中用户密码='password'和用户电子邮件='email';
$run=mysql\u query($check\u user);
$row=mysql\u fetch\u数组($check\u user);
$email=$row['user_email'];
如果(mysql_num_rows($run)>0){
$\u会话['email']=$email;//如果不需要此功能,请删除此功能
$query=“插入历史记录(用户_电子邮件)值(“$email”)”;
$result=mysql\u query($query);
echo“window.open('welcome.php','u self');
}否则{
回显“警报('电子邮件或密码x')”;
}
}
使用$\u会话。。。然后执行选择查询获取电子邮件,其中$\u会话,然后执行插入查询。您的意思是$email=$\u会话['email'];?但是您没有定义$email=$\u会话['email'],另外,您也没有执行查询。很难说您是否连接到db以及使用了哪种MySQL API,这使得这一切变得非常不清楚,也很难给出具体的答案。您还将在标题前输出位置为session_start()代码>还有,为什么你的头上有SQL?很好。但是,最好存储哈希,而不是密码的纯文本;-)希望OP使用的是安全密码hashing@Fred-谢谢你的帮助!!别担心:)我不会使用纯文本,哈哈,但现在只是为了测试的目的保持一切简单。
<head>
<?php
session_start();
$_SESSION['email'];
$query = "insert into history (email) values ('$email')";
?>
</head>
$query = "INSERT INTO history (user_email) VALUES ('$email')";
$result = mysql_query($query);
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>";
}
}