我正在开发一个已经运行良好的登录系统。现在我决定添加注册功能,用户可以上传图像设置为他的个人资料图片。我的代码大部分都已完成,但它似乎无法正常工作,我无法弄清楚原因。在下面的代码中我做了2关于图像的陈述,首先我试图检查图像是否是一个实际的图像文件,然后我将上传的图像复制到我的目录中的文件夹,路径在$ avatar中说明上传图片并提交表单时。当我上传图片时,我设法传递第一个if语句但是它给了我else语句,表明文件没有上传。当我尝试上传不同的扩展名时,那些允许的扩展名完全没有错误,并且脚本会返回一个空白屏幕,在任何这种情况下都不会发布任何用户数据。
<?php
require_once('../connect.php');
if(isset($_POST) AND !empty($_POST)){
$firstname = mysqli_real_escape_string($connection, $_POST['firstname']);
$lastname = mysqli_real_escape_string($connection, $_POST['lastname']);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$avatar = mysqli_real_escape_string($connection, 'avatars/'.$_FILES['avatar']['name']);
$extension = pathinfo($avatar, PATHINFO_EXTENSION);
if(in_array($extension, array('jpg', 'png', 'jpeg'))){
if(copy($_FILES['avatar']['tmp_name'], $avatar)){
$sql = "INSERT INTO `login` (Firstname, Lastname, Email, Username, Password, Avatar) VALUES ('$firstname', '$lastname', '$email', '$username', '$password', '$avatar')";
$result = mysqli_query($connection, $sql);
if($result){
$url = "../index.php";
$messageok = "User registration succesfull!";
echo "<script type='text/javascript'>alert('$messageok');</script>";
echo '<script>window.location = "'.$url.'";</script>';
}else{
$url = "../index.php";
$messagenok = "User registration failed!";
echo "<script type='text/javascript'>alert('$messagenok');</script>";
echo '<script>window.location = "'.$url.'";</script>';
}
} else{
$url = "../index.php";
$messageok = "Picture was not uploaded to database! plz try again";
echo "<script type='text/javascript'>alert('$messageok');</script>";
echo '<script>window.location = "'.$url.'";</script>';
}
}else{
$url = "../index.php";
$messageok = "Uploaded images must have one of following extensions, jpg, jpeg, png. Please try again!";
echo "<script type='text/javascript'>alert('$messageok');</script>";
echo '<script>window.location = "'.$url.'";</script>';
}
}?>
&#13;
<?php session_start(); ?>
<div class="popupscreen" id="registerpopup">
<div class="formwrapper">
<div class="login-form">
<form action="includes/register.php" method="POST" enctype="multipart/form-data">
<label class="popuplabel">First-name</label>
<input name="firstname" placeholder="first-name" class="popupinput" required />
<label class="popuplabel">Last-name</label>
<input name="lastname" placeholder="last-name" class="popupinput" required />
<label class="popuplabel">Email</label>
<input name="email" placeholder="email" class="popupinput" required />
<label class="popuplabel">Username</label>
<input name="username" placeholder="username" class="popupinput" required />
<label class="popuplabel">Password</label>
<input name="password" placeholder="password" class="popupinput" required/>
<label class="popuplabel">Upload profile picture</label>
<input type="file" name="avatar" accept="image/*" />
<button class="popupbutton" type="submit">Register</button>
</form>
<button onclick="closeregister()" class="popupbutton">Close</button>
</div>
</div>
</div>
&#13;