0

アップロードページを追加したCMSを自分で作成しています。

私がやろうとしているのは、ADD.PHP フォームに 2 つの入力タイプを追加することです。1 つ目は、アップロード ボタンを使用して画像を追加することです。

2 つ目は、URL を使用して画像を追加することです。

これらは両方とも、mysql の MOBI データベース内の同じ promo_image に保存する必要があります。

私が望むのは、両方のフィールドが入力された場合に URL のバージョンが優先されることです。

この ADD.PHP ページの現在のコードは次のとおりです。

<?php

session_start();

include_once('../include/connection.php');

if (isset($_SESSION['logged_in'])){
      if (isset($_POST['title'], $_POST['content'])) {
             $title = $_POST['title'];
             $content = nl2br($_POST['content']);
             $image = $_POST['image'];
             $imageupload = $_POST['image'];
             $link = $_POST['link'];
             $category = $_POST['category'];
             $brand = $_POST['brand'];

if (empty($title) or empty($content)) {
             $error = 'All Fields Are Required!';
}else{
     $query = $pdo->prepare('INSERT INTO mobi (promo_title, promo_content, promo_image, promo_link, promo_cat, promo_name) VALUES(?, ?, ?, ?, ?, ?)');
     $query->bindValue(1, $title);
     $query->bindValue(2, $content);
     $query->bindValue(3, if(trigger){empty(["image"])} else {"imageupload"});
     $query->bindValue(4, $link);
     $query->bindValue(5, $category);
     $query->bindValue(6, $brand);

     $query->execute();
    header('location: index.php');
}

}
          ?>

<html>
<head>
<title>Add Article</title>
<link rel="stylesheet" href="../other.css" />
</head>

<body>
<div class="container">
<a href="index.php" id="logo"><b>&larr; Back</b></a>

<br />

<div align="center">
<h4>Add Article</h4>

<?php if (isset($error)) { ?>
     <small style="color:#aa0000;"><?php echo $error; ?></small><br /><br />
<?php } ?>

<form action="add.php" method="post" autocomplete="off">

<input type="text" name="title" placeholder="Title" /><br /><br />
<textarea rows="15" cols="50" placeholder="Content" name="content"></textarea><br /><br />
<input name="imageupload" type="file" id="image" placeholder="Imageupload" />
<input type="text" name="image" placeholder="Image" /><br /><br />
<input type="link" name="link" placeholder="Link" /><br /><br />
<input type="category" name="category" placeholder="Category" /><br /><br />
<input type="category" name="brand" placeholder="Brand" /><br /><br />
<input type="submit" value="Add Article" />

</form>
</div>
</div>
</body>
</html>


<?php
}else{
       header('location: index.php');
}

?>

現在のところ、次のエラーが発生しています。

Parse error: syntax error, unexpected T_IF in admin/add.php on line 23

それを行う方法がよくわかりません。誰か助けてください。ありがとうございました。

4

2 に答える 2

0

$image と $imageupload は同じ値なので、if ステートメントは冗長ですか? 以下を試してください。

ファイルアップロードの更新 (フォームタグから enctype が欠落していました。また、targetpath ディレクトリが存在し、chmod 777 に設定されていることを確認してください)

<?php
session_start();

include_once('../include/connection.php');

if (isset($_SESSION['logged_in']))
{
    if (isset($_POST['title'], $_POST['content']))
    {
        $title   = $_POST['title'];
        $content = nl2br($_POST['content']);
        if (!empty($_POST['image']))
        {
            $image = $_POST['image'];
        }
        else
        {
            $image = $_POST['imageupload'];

            if (isset($_FILES['Filedata']))
            {
                $filename   = $_FILES['Filedata']['name'];
                $targetpath = "../put/path/here" . $filename; //target directory relative to script location

                $copy = copy($_FILES['Filedata']['tmp_name'], $targetpath);

                if (!$copy)
                    $error = "Image was not uploaded successfully";
            }
        }
        $link     = $_POST['link'];
        $category = $_POST['category'];
        $brand    = $_POST['brand'];

        if (empty($title) or empty($content))
        {
            $error = 'All Fields Are Required!';
        }
        else
        {
            $query = $pdo->prepare('INSERT INTO mobi (promo_title, promo_content, promo_image, promo_link, promo_cat, promo_name) VALUES(?, ?, ?, ?, ?, ?)');
            $query->bindValue(1, $title);
            $query->bindValue(2, $content);
            $query->bindValue(3, $image);
            $query->bindValue(4, $link);
            $query->bindValue(5, $category);
            $query->bindValue(6, $brand);

            $query->execute();
            header('location: index.php');
        }
    }
    ?>

    <html>
        <head>
            <title>Add Article</title>
            <link rel="stylesheet" href="../other.css" />
        </head>

        <body>
            <div class="container">
                <a href="index.php" id="logo"><b>&larr; Back</b></a>

                <br />

                <div align="center">
                    <h4>Add Article</h4>

                    <?php if (isset($error))
                    { ?>
                        <small style="color:#aa0000;"><?php echo $error; ?></small><br /><br />
    <?php } ?>

                    <form action="add.php" method="post" autocomplete="off" enctype="multipart/form-data">

                        <input type="text" name="title" placeholder="Title" /><br /><br />
                        <textarea rows="15" cols="50" placeholder="Content" name="content"></textarea><br /><br />
                        <input name="imageupload" type="file" id="image" placeholder="Imageupload" />
                        <input type="text" name="image" placeholder="Image" /><br /><br />
                        <input type="link" name="link" placeholder="Link" /><br /><br />
                        <input type="category" name="category" placeholder="Category" /><br /><br />
                        <input type="category" name="brand" placeholder="Brand" /><br /><br />
                        <input type="submit" value="Add Article" />

                    </form>
                </div>
            </div>
        </body>
    </html>


    <?php
}
else
{
    header('location: index.php');
}
?>
于 2013-08-28T10:49:51.547 に答える