首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将系统问题上载到服务器

将系统问题上载到服务器
EN

Stack Overflow用户
提问于 2012-09-16 01:19:07
回答 2查看 85关注 0票数 1

我开始制作我自己的配置文件系统,用户可以存储用户名、密码、名字、姓氏、年龄和配置文件图片。

通过这个过程上传图像有问题。代码产生了一个错误,我不明白为什么。很抱歉,我来自丹麦(注:编辑免费翻译)

这是我的密码

代码语言:javascript
复制
<?php
    include ("inc/db/db.php");
    if (isset($_POST["godkendt_bruger"]))
    {
        $query = 'SELECT NULL FROM `bruger` WHERE `brugernavn` = ?';
        if ($stmt = $mysqli->prepare($query))
        {
            $stmt->bind_param('s', $brugernavn);
            $brugernavn = $_POST["brugernavn"];
            $stmt->execute();
            $stmt->store_result();
            $count = $stmt->num_rows;
            $stmt->close();

            if ($count > 0)
            {
               $user_found = 1;
            }
        }

        if (!isset($user_found))
        {
            if ($_POST["pass"] != $_POST["gentag"])
            {
                $errors = 1;
                echo "<li id=\"check_not\">Angive ens password på siden..</li>";
            }

            if (empty($_POST["pass"]) && empty($_POST["gentag"]))
            {
                $errors = 1;
                echo "<li id=\"check_not\">Angive et password på siden..</li>";
            }

            if (empty($_POST["navn"]))
            {
                $errors = 1;
                echo "<li id=\"check_not\">Angive et Fornavn</li>";
            }

            if (empty($_POST["efternavn"]))
            {
                $errors = 1;
                echo "<li id=\"check_not\">Angive et Efternavn</li>";
            }

            if (!isset($errors))
            {
                $pb = null;
                include "inc/img/class.upload.php";
                $handle = new Upload($_FILES["file"]);

                if ($handle->uploaded)
                {
                    //lidt mere store billeder
                    $handle->image_resize = true;
                    $handle->image_ratio_y = true;
                    $handle->image_x = 220;
                    $handle->Process("profil/store");

                    //til profil billede lign..
                    $handle->image_resize = true;
                    $handle->image_ratio_crop = true;
                    $handle->image_y = 115;
                    $handle->image_x = 100;
                    $handle->Process("profil");

                    //til profil billede lign..
                    $handle->image_resize = true;
                    $handle->image_ratio_crop = true;
                    $handle->image_y = 75;
                    $handle->image_x = 75;
                    $handle->Process("profil/lille");
                    $pb = $handle->file_dst_name;
                }
                else
                {
                    echo 'Der opstod en fejl i erklæringen: - upload ' . $mysqli->error;
                }
            }

            //Lukker $errors
            if (!isset($user_found))
            {
                $query = 'INSERT INTO `bruger` '
                       . '(`Brugernavn`, `password`, `profilbillede`, '
                       . '`navn`, `efternavn`, `alder`) '
                       . 'VALUES (?, ?, ?, ?, ?, ?)';
                if ($stmt = $mysqli->prepare($query))
                {

                $stmt->bind_param(
                    'sssssi', 
                    $brugernavn, 
                    $password, 
                    $profilbillede, 
                    $navn, 
                    $efternavn, 
                    $alder
                );

                $brugernavn    = $_POST["brugernavn"];
                $password      = $_POST["pass"];
                $profilbillede = $pb;
                $navn          = $_POST["navn"];
                $efternavn     = $_POST["efternavn"];
                $alder         = $_POST["alder"];

                $stmt->execute();
                $stmt->close();

            }
            else
            {
                /* Der er opstået en fejl */
                echo 'Der opstod en fejl i erklæringen til ligge i databasen: ' . $mysqli->error;
            }
        }
    }
    else
    {
        echo "<li id=\"check_not\">Dette brugernavn er optaget!!</li>";
    }
}
else
{
    echo "<li id=\"check_opret\">Indtast dine oplysninger herunder for at opret en bruger </a></li>";
}

?>

它显示错误在此块中。

代码语言:javascript
复制
if ($handle->uploaded)
{
    //lidt mere store billeder
    $handle->image_resize = true;
    $handle->image_ratio_y = true;
    $handle->image_x = 220;
    $handle->Process("profil/store");

    //til profil billede lign..
    $handle->image_resize = true;
    $handle->image_ratio_crop = true;
    $handle->image_y = 115;
    $handle->image_x = 100;
    $handle->Process("profil");

    //til profil billede lign..
    $handle->image_resize = true;
    $handle->image_ratio_crop = true;
    $handle->image_y = 75;
    $handle->image_x = 75;
    $handle->Process("profil/lille");
    $pb = $handle->file_dst_name;

}
else
{
    echo 'Der opstod en fejl i erklæringen: - upload ' . $mysqli->error;
}

错误是:Der opstod en fejl i erkl ringen:- upload (声明中有错误),而没有其他错误。数据未存储在数据库中。

这是我的html她;

代码语言:javascript
复制
<form name="opret_bruger" method="post" action="#" enctype="multipart/form-data">
<tr>
    <td><p>Brugernavn</p></td>
    <td><input type="text" name="brugernavn"></td>
</tr>
<tr>
    <td><p>Password</p></td>
    <td><input type="password" name="pass"></td>
</tr>
<tr>
    <td><p>Password gentag</p></td>
    <td><input type="password" name="gentag"></td>
</tr>
<tr>
    <td><p>Fornavn</p></td>
    <td><input type="text" name="navn"></td>
</tr>
<tr>
    <td><p>Efternavn</p></td>
    <td><input type="text" name="efternavn"></td>
</tr>
    <tr>
    <td><p>Alder</p></td>
    <td>
        <select name="alder_1">
    <?php
    if ($stmt = $mysqli->prepare('SELECT `alder` FROM `alder`')) { 
        $stmt->execute();

        /* Bind resultatet */
        $stmt->bind_result($alder);

        /* Hent rækker og udskriv data */
        while ($stmt->fetch()) {
        ?>
            <option><?php echo $alder;?></option>
        <?php
        }

            /* Luk statement */
            $stmt->close();

        } else {
            /* Der er opstået en fejl */
            echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
        }
        ?>
        </select>
    </td>
</tr>
<tr>
    <td><p>Upload Profilbillede</p></td>
    <td><input type="file" name="profilbillede"></td>
</tr>
<tr>
    <td></td>
    <td><input type="submit" name="godkendt_bruger"></td>
</tr>
</form>

如果您有任何建议,我会欢迎他们,甚至更好地处理代码,以便图像可以存储。

杰斯珀-丹马克

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-16 17:28:55

有几项建议:

检查您的文件的上传路径。我想

代码语言:javascript
复制
$handle->Process("profil/store");

是文件存储的地方。只要检查那里的文件权限,以防文件未上载。

另外,下面的代码有效吗?我可能错了,但参数不应该在绑定之前设置吗?即

代码语言:javascript
复制
            $query = 'INSERT INTO `bruger` '
                   . '(`Brugernavn`, `password`, `profilbillede`, '
                   . '`navn`, `efternavn`, `alder`) '
                   . 'VALUES (?, ?, ?, ?, ?, ?)';
            if ($stmt = $mysqli->prepare($query))
            {

            $brugernavn    = $_POST["brugernavn"];
            $password      = $_POST["pass"];
            $profilbillede = $pb;
            $navn          = $_POST["navn"];
            $efternavn     = $_POST["efternavn"];
            $alder         = $_POST["alder"];

            $stmt->bind_param(
                'sssssi', 
                $brugernavn, 
                $password, 
                $profilbillede, 
                $navn, 
                $efternavn, 
                $alder
            );

我希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2012-09-16 02:00:23

您的文件上传字段实际上名为profilbillede

代码语言:javascript
复制
                     <td><input type="file" name="profilbillede"></td>
                                                  ^^^^^^^^^^^^^

这意味着它将是$_FILES['profilbillede'],而不是$_FILES['file'],因为您正在使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12443722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档