【发布时间】: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->fetch_array();";不会像你想的那样做。将其更改为$rec = $que1->fetch_array();(不带引号)。您不能在双引号字符串中调用方法/函数。