2012-01-27 15 views
-1

何が援助を必要としますか? - 私はデータベースに画像をアップロードするとき、私は自分のSQLの正しいフィールドにユーザーのIDをリンクしたい。残念なことに、私がIDのフィールドに何も入力されていないので、画像をアップロードしているときに正しくキャプチャしていないようです。MYSQLとPHPを使用してセッションIDをデータベースにリンクする

それを分解する:ユーザーがログインすると、彼は一意のIDを持っています。つまり、管理者のIDは1です。彼が彼のユーザーパネルにいるとき、彼は2番目のイメージをアップロードします:彼はこのフォームに向けられます。

一度フォームに入力すると、説明、画像、およびIDが_SESSIONから取得されます。

これ以上の情報が必要な場合は、さらに詳しくお書きください。事前に

おかげで、

そう... HERESにコード:

// FORM //

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<form enctype="multipart/form-data" id="form1" name="form1" method="post" action="secondPic.php"> 
    <p> 
    <label for="name1">Fav Location Name: </label> 
    <input type="text" name="name1" id="name1" /> 
    </p> 
    <p> 
    <label for="photo1">Fav Location Photo: </label> 
<input type="file" name="photo1"><br> 
    </p> 
    <p> 
    <label for="id">ID: <? echo $rows['id']; ?> </label> 
    <input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"> 
    </p> 
    <p> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
    </p> 
</form> 



</body> 
</html> 

//データベースに入力する//

<?php 
include "common.php"; 
$secondid = $_GET['id']; 
DBConnect(); 



$Link = mysql_connect($Host, $User, $Password); 

//This is the directory where images will be saved 
$target = "second/"; 
$target = $target . basename($_FILES['photo1']['name']); 


$favname = $_POST["name1"]; 
$pic2=($_FILES['photo1']['name']); 
$id = $_POST["$id"]; 



$Query ="INSERT into $Table_2 values ('0', '$id', '$favname', '$pic2')"; 

if (mysql_db_query ($DBName, $Query, $Link)){ 
print ("A record was created <br><a href=index.php> return to index </a>\n"); 

// Connects to your Database 
//mysql_connect("localhost", "jonathon_admin", "hello123") or die(mysql_error()) ; 
//mysql_select_db("jonathon_admin1") or die(mysql_error()) ; 


//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo1']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; 
} 
else { 

//Gives and error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 


} else { 

print (" - Your Record was not created"); 
} 

mysql_close($Link); 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
</body> 
</html> 

DBにデータを入力するときの表は次のとおりです。

**s_id id favname   pic2 
    1  0 testing the db piccy.png** 
+3

コードのテストを試しましたか?あなたは本当にコードがどこまで届いているのか、どこにどこにあるのかなどを考えてみるべきです。そして、全体を投稿するのではなく投稿してください。 – Dave

+0

あなたはセッションを使用していますか?セッションにIDを格納し、あなたの投稿でそれを使用してください – Drewdin

+0

私はあなたの問題を賭けているのは、 'INSERT'クエリの最初のフィールドに' '0 ''です。これがPKに対応する場合、後続の行は挿入されません。これを解決するには、PKなしでフィールドリストを指定するか、あるいは 'NULL'(* not *' 'NULL'')を指定する必要があります。 – DaveRandom

答えて

0

あなたの非表示フィールドの入力名はありません。隠し入力タグで、name = "id"の代わりにid = "id"を使用しているようです。

これを修正すれば正常に動作するはずです。

+0

はそれを変更しましたが、名前= 'id'を持っていたので、違いはありませんでした。 –

0

私があることを、考えて最初のファイルに何か問題:$行変数はすべてでそのファイルで定義されていません

<label for="id">ID: <? echo $rows['id']; ?> </label> 
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>"> 

、そのため、表示するものは何もありません。

<label for="id">ID: <? echo $_SESSION['id']; ?> </label> 
    <input name="id" type="hidden" id="id" value="<? echo $_SESSION['id']; ?>"> 

そして書くことを忘れてはいけない:

session_start(); 

初めに あなたは多分あなたがミスを犯し、これはそれを修正するものと、idは_SESSION変数から取得していることを挙げていますファイルの、HTMLコードの前に。

+0

ありがとう、今これをテストします、私は持っていると思います! –

+0

まだ幸運の仲間はいないが、私はそれが$行ではなく、エラーであった必要があったと思う。 –

関連する問題