我正在创建一个成员区!我包含了一个条件,以便插入该成员的个人资料图片它没有显示任何错误!问题是图片无法插入底座,我该怎么办?
HTML:
<form method="POST" action="" enctype="multipart/form-data">
<label >Pseudo : </label>
<input name="newpseudo" type="text" placeholder="pseudo" value="<?php echo $user['pseudo']; ?>" /><br/><br/>
<label>email : </label>
<input name="newmail" type="email" placeholder="mail" value="<?php echo $user['mail'];?>" /><br/><br/>
<label>mot de passe : </label>
<input name="newmdp1" type="password" placeholder="mot de passe"/><br/><br/>
<label>confirmation du mot de passe : </label>
<input name="newmdp2" type="password" placeholder="confirmation du mot de passe"/><br/><br/>
<label>avatar :</label>
<input type="file" name="avatar"></input><br/><br/>
<input type="submit" name="formedition" value="Mettre a jour mon profil !">
</form>
PHP:
<?php
if(isset($_FILES['avatar']) and !empty($_FILES['avatar']['name']))
{
$tailleMax = 2097152;
$extensionsValides = array('jpg','jpeg','gif','png');
if($_FILES['avatar']['size'] <= $tailleMax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionsValides))
{
$chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
if($resultat)
{
$updateAvatar = $bdd -> prepare('UPDATE membres SET avatar = ? WHERE id=?');
$updateAvatar -> execute(array(
'avatar' => $_SESSION['id'].".".$extensionUpload ,
'id ' => $_SESSION['id']
));
header("location:profil.php?id=" . $_SESSION['id']);
}
else
{
$msg = " erreur lors de l'importation de votre photo de profil ";
}
}
else
{
$msg =" votre photo de profil doit etre au forme de jpeg png gif ou jpg";
}
}
else
{
$msg = "votre photo de profil ne doit pas depasse 2 MO ! ";
}
}
?>
这不是一个解决方案,而是一系列您可以自己快速解决此问题的步骤。
"分而治之"。与其一次对整个应用程序进行故障排除,不如将其分解成更小的部分(暂时用于测试)并对每个部分进行故障排除。
首先,将PHP代码复制到一个单独的文件test.php
或类似的文件中。硬编码一些信息以替换在$_POST中接收到的数据,然后运行该文件。数据进入数据库了吗?可能不会。修复该问题并将修复程序复制到原始PHP文件中。现在一切都好了吗?
如果没有,那么复制您的原始PHP文件并将其称为test2.php
。现在,不用将数据放入数据库,只需将其回声到屏幕上即可。你看到了什么?
创建一个日志文件,并在代码的各个点向其中写入消息因为PHP通常不会因为错误消息而中止——它只是无声地停止——你需要给自己一些"眼睛"来看看发生了什么:
$handle = fopen('__logfile.txt','a');
$line = 'Got to here 01' . "'n";
fwrite($handle, $line);
fclose($handle);