0

このphp写真アップロードスクリプトを使用して、画像をデータベースに保存しています。

私のデータベースには3つの列があります:'user_id''name''image'

それはすべてうまくいきます。画像はアップロードされていますが、現時点ではuser_idが保存されていないので、ユーザーがアップロードを押したときにセッションIDを使用してuser_idを保存するようにしようと思います。

これらの2つの関数を元のmysqlクエリに追加することで、これを試してみました。

(user_id, image, name) '".$_SESSION['user_id']."',

<html>
    <head>
        <title>Upload Image</title>
    </head>
    <body>    
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="image">
            <input type="submit" value="Upload">
        </form>    
<?php        
    include("includes/_config/connection.php");

    // file properties
    $file = $_FILES['image']['tmp_name'];

    if (!isset($file))
        echo "";    
    else {      
        $image = addslashes (file_get_contents ($_FILES['image']['tmp_name']));
        $image_name = addslashes ($_FILES['image']['name']);
        $image_size = getimagesize($_FILES['image']['tmp_name']);

        if ($image_size == FALSE)
            echo "That's not an image.";        
        else {      
            if (!$insert = mysql_query ("INSERT INTO  ptb_img_uploads (user_id, image, name) VALUES ('', '".$_SESSION['user_id']."', '$image_name','$image')"))    
                echo "There was a problem sending the image.";      
            else    
                echo "Your image was successfully uploaded.";    
        }    
    }    
?>    
    </body>
</html>
4

3 に答える 3

0

セッション関数を開始するPHPsession_start()を開始するのを忘れました。また、$ _SESSION['user_id']をどこかに設定する必要があります。

このコードに変更します。

<?php
session_start();
?>
<html>
<head>
    <title>Upload Image</title>
</head>
<body>

<form method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" value="Upload">
</form>

<?php
include("includes/_config/connection.php");

// file properties
$file = $_FILES ['image'] ['tmp_name'];

if (!isset($file))
{
    echo "";
}
else
{
    $image = addslashes (file_get_contents ($_FILES ['image']['tmp_name']));
    $image_name = addslashes ($_FILES['image']['name']);
    $image_size = getimagesize($_FILES['image']['tmp_name']);

    if($image_size == FALSE)
    {
        echo "That's not an image.";
    }
    else
    {
        if(!$insert = mysql_query ("INSERT INTO  ptb_img_uploads (user_id, image, name) VALUES ('".$_SESSION['user_id']."', '$image_name','$image')"))
        {
            echo "There was a problem sending the image.";
        }
        else
        {
            echo "Your image was successfully uploaded.";
        }
    }

}
?>
</body>
</html>

それが機能しない場合は、session_startのすぐ上にこれを追加できます。

session_save_path("tmp");

chmod777を使用して「tmp」という名前のフォルダをディレクトリに作成することを忘れないでください。

セッションが機能するかどうかをテストする場合は、次のようにします。

<?php
session_start();

$_SESSION['test_session']="this is a test session";

var_dump($_SESSION);
?>

それが役に立てば幸い!

于 2012-12-16T14:19:27.900 に答える
0
if(!$insert = mysql_query ("INSERT INTO  ptb_img_uploads (user_id, image, name) VALUES ('".$_SESSION['user_id']."', '$image', '$image_name')"))
于 2012-12-16T14:33:19.647 に答える
0

最初にセッションを開始する必要があります。session_start();。その後、エコー$ insert; クエリをmysqlに貼り付けて、エラーを確認します。

于 2012-12-16T14:51:36.867 に答える