【问题标题】:How to fix the error "Database/file and session"?如何修复错误“数据库/文件和会话”?
【发布时间】:2020-03-14 14:23:46
【问题描述】:

我的代码有错误。问题是,该文件没有插入到数据库表中,而是插入到了位置文件夹中。我发现会话的错误是它没有从第一页获取用户 ID,所以,同样的事情发生在另一页上。你们有没有给我一些建议或帮助我轻松找到错误(删除,更新或其他东西)这里是代码:

第一页 - 注册表单页面 (.php)

<?php

include "dbConnection.inc";

if(isset($_POST['signup']))
{
error_reporting(1);

    $Email=$_POST['email'];

    $que1="select * from `users` where Email='$Email'";
    $count1=$que1->num_rows;

    if($count1>0)
    {
        echo "<script>
                alert('There is an existing account associated with this email.');
            </script>";
    }
    else
    {
        $Name=$_POST["first_name"].' '.$_POST["last_name"];
        $gender=$_POST["gender"];
        $country=$_POST["country"];
        $work=$_POST["work"];
        $password=$_POST["password"];


        $query="INSERT INTO `users` (`user_id`, `Name`, `Email`, `gender`, `country`, `profession/occupation`, `Password`) VALUES (NULL, '$Name', '$Email', '$gender', '$country', '$work', '$password');";
        $cmd=$conn->query($query);

        session_start();
        $_SESSION['tempfbuser']=$Email;

        if ($cmd==true) {
            header("Location:completepro.php");
        } else {
            echo "<script>
                alert('Sign Up not successful, please try again');
            </script>";
            header("Location:signin.php");

        }

    }
}
?>

第二页 - 注册表单页面 (.php)

<?php

    session_start();
    include "dbConnection.inc";

    error_reporting(1);
    if(isset($_SESSION['tempfbuser']))
    {
        $user=$_SESSION['tempfbuser'];
        $que1="select * from users where Email='$user' ";
        $rec="$que1->fetch_array();";
        $userid=$rec[0];


                if(isset($_POST['file1']) && ($_POST['file1']=='Upload'))
                {
                    $path = "twigp_users/".$user."/Profile/";
                    $path2 = "twigp_users/".$user."/Post/";
                    $path3 = "twigp_users/".$user."/Cover/";
                    mkdir($path, 0, true);
                    mkdir($path2, 0, true);
                    mkdir($path3, 0, true);

                    $img_name=$_FILES['pro_file']['name'];
                    $img_tmp_name=$_FILES['pro_file']['tmp_name'];
                    $prod_img_path=$img_name;
                    move_uploaded_file($img_tmp_name,"twigp_users/".$user."/Profile/".$prod_img_path);

                    $query="INSERT INTO `user_profile_pic` (`profile_id`, `user_id`, `image`) VALUES (NULL, '$userid', '$img_name');";
                    $cmd=$conn->query($query);
                }


                if(isset($_POST['file2']) && ($_POST['file2']=='Upload'))
                {
                    $path = "twigp_users/".$user."/Profile/";
                    $path2 = "twigp_users/".$user."/Post/";
                    $path3 = "twigp_users/".$user."/Cover/";
                    mkdir($path, 0, true);
                    mkdir($path2, 0, true);
                    mkdir($path3, 0, true);

                    $img_name=$_FILES['cvr_file']['name'];
                    $img_tmp_name=$_FILES['cvr_file']['tmp_name'];
                    $prod_img_path=$img_name;
                    move_uploaded_file($img_tmp_name,"twigp_users/".$user."/Cover/".$prod_img_path);
                        $query="INSERT INTO `user_cover_pic` (`cover_id`, `user_id`, `image`) VALUES (NULL, '$userid', '$img_name');";
                        $cmd=$conn->query($query);
                }

  }

?>

请帮我找出错误,谢谢!!!

【问题讨论】:

  • 你在哪里写文件上传代码?
  • 警告!您对 SQL 注入攻击敞开心扉!您应该使用参数化的prepared statements,而不是像这样直接在查询中使用完全未转义的用户数据。
  • 永远不会永远不会以纯文本形式存储密码!您应该总是使用password_hash() 对密码进行哈希处理,并且只存储哈希值。然后你可以使用password_verify() 来根据哈希验证密码。
  • 先生,定义如下(文件上传代码)请滚动
  • $rec="$que1-&gt;fetch_array();"; 不会像你想的那样做。将其更改为 $rec = $que1-&gt;fetch_array();(不带引号)。您不能在双引号字符串中调用方法/函数。

标签: php session mysqli


【解决方案1】:

检查下面的代码

<?php

    session_start();
    include "dbConnection.inc";

    error_reporting(1);
    if(isset($_SESSION['tempfbuser']))
    {
        $user=$_SESSION['tempfbuser'];
        $que1="select * from users where Email='$user' ";
        $rec="$que1->fetch_array();";
        $userid=$rec[0];


                if(isset($_POST['file1']) && ($_POST['file1']=='Upload'))
                {
                    $path = "twigp_users/".$user."/Profile/";
                    $path2 = "twigp_users/".$user."/Post/";
                    $path3 = "twigp_users/".$user."/Cover/";
                    mkdir($path, 0, true);
                    mkdir($path2, 0, true);
                    mkdir($path3, 0, true);

                    $img_name=$_FILES['pro_file']['name'];
                    $img_tmp_name=$_FILES['pro_file']['tmp_name'];
                    $prod_img_path=$img_name;
                    move_uploaded_file($img_tmp_name,"twigp_users/".$user."/Profile/".$prod_img_path);

                    $query="INSERT INTO `user_profile_pic` (`profile_id`, `user_id`, `image`) VALUES (NULL, '$userid', '$img_name');";
                    $cmd=$conn->query($query);
                }


                if(isset($_POST['file2']) && ($_POST['file2']=='Upload'))
                {
                    $path = "twigp_users/".$user."/Profile/";
                    $path2 = "twigp_users/".$user."/Post/";
                    $path3 = "twigp_users/".$user."/Cover/";
                    mkdir($path, 0, true);
                    mkdir($path2, 0, true);
                    mkdir($path3, 0, true);

                    $img_name=$_FILES['cvr_file']['name'];
                    $img_tmp_name=$_FILES['cvr_file']['tmp_name'];
                    $prod_img_path=$img_name;
                    move_uploaded_file($img_tmp_name,"twigp_users/".$user."/Cover/".$prod_img_path);
                        $query="INSERT INTO `user_cover_pic` (`cover_id`, `user_id`, `image`) VALUES (NULL, $userid, $img_name);";
                        $cmd=$conn->query($query);
                }

  }

?>

【讨论】:

  • 一个好的答案包括一个解释,包括问题是什么,你做了什么改变以及为什么它解决了这个问题。我还可以找到至少一个问题仍然存在,$rec="$que1-&gt;fetch_array();";
  • @MagnusEriksson 感谢您的支持和帮助。 $rec="$que1-&gt;fetch_array();"; 更改为 $rec = $que1-&gt;fetch_array();
猜你喜欢
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2011-07-24
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多