如何将配置文件照片上传器添加到预先存在的表单和数据库

时间:2014-09-04 06:23:38

标签: php html mysql

请,我是php的新手,我正在尝试编写注册表单,用户也可以上传他们的个人资料图片。表单的其他部分工作正常,只是上传方面让我很头疼。我搜索了很多论坛,但没有人给我答案。

当我的笔记本电脑连接时,我会发布我之前的代码,因为服务器在这里很慢。

我会感谢任何帮助,我只想将图像名称存储在数据库中,我不需要图像的任何其他属性。并且图像应该上传到特定的文件夹/目录。并且图像名称也应该更改,因此它是我想要存储在数据库中的新名称。

提前致谢。

以下是我的脚本:

<?php
//We check if the user is logged
if(isset($_SESSION['username']))
{
//We check if the form has been sent
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']))
{
    //We remove slashes depending on the configuration
    if(get_magic_quotes_gpc())
    {
        $_POST['username'] = stripslashes($_POST['username']);
        $_POST['password'] = stripslashes($_POST['password']);
        $_POST['passverif'] = stripslashes($_POST['passverif']);
        $_POST['email'] = stripslashes($_POST['email']);
        $_POST['avatar'] = stripslashes($_POST['avatar']);
    }
    //We check if the two passwords are identical
    if($_POST['password']==$_POST['passverif'])
    {
        //We check if the password has 6 or more characters
        if(strlen($_POST['password'])>=6)
        {
            //We check if the email form is valid
            if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
            {
                //We protect the variables
                $username = mysql_real_escape_string($_POST['username']);
                $password = mysql_real_escape_string($_POST['password']);
                $email = mysql_real_escape_string($_POST['email']);
                $avatar = mysql_real_escape_string($_POST['avatar']);
                //We check if there is no other user using the same username
                $dn = mysql_fetch_array(mysql_query('select count(*) as nb from users where username="'.$username.'"'));
                //We check if the username changed and if it is available
                if($dn['nb']==0 or $_POST['username']==$_SESSION['username'])
                {
                    //We edit the user informations
                    if(mysql_query('update users set username="'.$username.'", password="'.$password.'", email="'.$email.'", avatar="'.$avatar.'" where id="'.mysql_real_escape_string($_SESSION['userid']).'"'))
                    {
                        //We dont display the form
                        $form = false;
                        //We delete the old sessions so the user need to log again
                        unset($_SESSION['username'], $_SESSION['userid']);
?>
<div class="message">Your were successfully Updated. You need to log again.<br />
<a href="connexion.php">Log in</a></div>
<?php
                    }
                    else
                    {
                        //Otherwise, we say that an error occured
                        $form = true;
                        $message = 'An error occurred while updating your informations.';
                    }
                }
                else
                {
                    //Otherwise, we say the username is not available
                    $form = true;
                    $message = 'The username you want to use is not available, please choose another one.';
                }
            }
            else
            {
                //Otherwise, we say the email is not valid
                $form = true;
                $message = 'The email you entered is not valid.';
            }
        }
        else
        {
            //Otherwise, we say the password is too short
            $form = true;
            $message = 'Your password must contain at least 6 characters.';
        }
    }
    else
    {
        //Otherwise, we say the passwords are not identical
        $form = true;
        $message = 'The passwords you entered are not identical.';
    }
}
else
{
    $form = true;
}
if($form)
{
    //We display a message if necessary
    if(isset($message))
    {
        echo '<strong>'.$message.'</strong>';
    }
    //If the form has already been sent, we display the same values
    if(isset($_POST['username'],$_POST['password'],$_POST['email']))
    {
        $pseudo = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');
        if($_POST['password']==$_POST['passverif'])
        {
            $password = htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8');
        }
        else
        {
            $password = '';
        }
        $email = htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');
        if(isset($avatar))
    {
        $avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');
    }
    }
    else
    {
        //otherwise, we display the values of the database
        $dnn = mysql_fetch_array(mysql_query('select username,password,email,avatar from users where username="'.$_SESSION['username'].'"'));
        $username = htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8');
        $password = htmlentities($dnn['password'], ENT_QUOTES, 'UTF-8');
        $email = htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8');
        $avatar = htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8');
    }
    //We display the form
?>


<div class="content">
<?php include('adverts.php'); ?>
<br />
<form action="edit_infos.php" method="post" class="message">
    <i><b>Edit your personal Info</b></i><br />
    <div class="center">
        <label for="username">Username</label><input type="text" name="username" id="username" value="<?php echo $username; ?>" /><br />
        <label for="password">Password<span class="small">(6 characters min.)</span></label><input type="password" name="password" id="password" value="<?php echo $password; ?>" /><br />
        <label for="passverif">Password<span class="small">(verification)</span></label><input type="password" name="passverif" id="passverif" value="<?php echo $password; ?>" /><br />
        <label for="email">Email</label><input type="text" name="email" id="email" value="<?php echo $email; ?>" /><br />
        <label for="avatar">Avatar<span class="small">(optional)</span></label>
        <input name="avatar" type="file" id="avatar" size="50" value="<?php echo $avatar; ?>" />
        <br />
        <input type="submit" value="Send" />
    </div>
</form>
</div>
<?php
}
}
else
 {
?>
<div class="message">You must be a registered member to access this Page.<br />
<a href="connexion.php">Log in</a></div>
<?php
}
?>

我想将重命名的图片名称上传到db中的“avatar”,并上传到“avatar / users”文件夹

提前致谢

0 个答案:

没有答案