Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将会话电子邮件插入MySQL表 MySQL表“用户”结构:_Php_Mysql_Database_Session_Insert - Fatal编程技术网

使用php将会话电子邮件插入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

MySQL表“历史”结构:


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>";
    }
}