php和html在数据库中插入图片


php and html insert picture in the data base

我正在创建一个成员区!我包含了一个条件,以便插入该成员的个人资料图片它没有显示任何错误!问题是图片无法插入底座,我该怎么办?

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);