2017-04-16 19 views
-1

私はこれを4時間作業していますが、まだ手がかりがないので、私はここでヘルプを求めて来ました。私はPHPとmySQLを学んでいます。私が学ぶ方法の1つは、オープンソースプロジェクトから学ぶことです。今日私はオープンソースプロジェクトを理解しようとしており、いくつか問題があります。ここでは、オープンソースプロジェクトへのリンクがある:https://github.com/markpytel/Printstagram基本的には、次のようなものを持っている、のはprofileinfo.phpそれ呼びましょうphp mySQL画像を表示する方法img src

<?php 
$sql="SELECT pid,poster, pdate FROM photo WHERE poster='$myusername' OR pid 
in (select pid from tag where taggee='$myusername') OR pid in (select pid 
from ingroup natural join shared where username='$myusername' and username 
!= ownername) ORDER BY pdate desc"; 
$result=mysql_query($sql); 


while($row = mysql_fetch_array($result)) 
{ 
    echo "<hr>"; 
    echo "Posted by: " . $row["poster"]. " &nbsp;&nbsp;&nbsp;Time: " . $row["pdate"]."<br>"; 
    // pid is each photo's unique id in the database 
    $pidrow=($row["pid"]); 

    ?> 
    </head> 
    <body> 

    <form action="listsingleREV.php?pidrow=<?php echo $pidrow; ?>" method="POST"> 
     <input type="submit" id="pidrow" value="View this image" /> 
    </form> 
    </body> 
    </html> 
(このファイルの名前はかなり欺いているが、それは別のユーザーによってアップロードされた画像を表示するページです)

「この画像を見る」ボタンをクリックすると、ユーザーがアップロードした画像が表示されます。私が最初に質問したのは、画像内の疑問符の意味はどうですか?src。私はimg srcにPHPタグがあることを理解していますが、なぜlistsingleREV.phppidrowの間に疑問符があるのか​​分かりません。

listsingleREV.phpは次のようになります。

<?php 
session_start();  
$pidrow=$_GET['pidrow']; 

$conn = mysql_connect("localhost", "root", ""); 
mysql_select_db("printstagram"); 
$sql = "SELECT pid FROM photo WHERE pid=$pidrow"; 
$result = mysql_query($sql); 
?> 
<?php 
while($row = mysql_fetch_array($result)) { 
    ?> 
    <img src="imageview.php?pid=<?php echo $row["pid"]; ?>" /><br/> 
    <?php 
} 
?> 

imageview.phpは次のようになります。もちろん

<?php 

$conn = mysql_connect("localhost", "root", ""); 
mysql_select_db("printstagram") or die(mysql_error()); 
if(isset($_GET['pid'])) { 
    $sql = "SELECT image FROM photo WHERE pid=" . $_GET['pid']; 
    $result = mysql_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysql_error()); 
    $row = mysql_fetch_array($result); 
    header("content-type: image/jpeg"); 
    echo $row["image"]; 
} 
mysql_close($conn); 
?> 

、ユーザが各画像を確認するには、ボタンをクリックする必要がある場合、それは非常に不便です。だから、私は自分自身にいくつかの練習をし、ボタンをクリックする必要なしに画像が自動的にprofileinfo.phpに表示されるように、コードを修正する(Apacheライセンスであるので、私はそれを行うことができる)。 imageview.phplistsingleREV.phpに画像が表示されているので、profileinfo.phpのフォームをこれら2つのファイルに置き換えようとしました。私は自分の目標を達成することなく4時間働いた。誰かがボタンをクリックする必要なく、profileinfo.phpに画像を表示する正しい方法を教えてもらえますか?

+0

'imageview.php?pid =' ..? HTTP GETパラメータの疑問符があります。 –

+4

このコードベースはおそらく学習には最適ではありません。それはPHP 7から削除されたAPIを使用しています。これは恐ろしいことです( 'mysql_ *')、まったくばかげた[SQLインジェクションのバグ](http://bobby-tables.com/)が散りばめられています。これを公開サイトにすると、数秒で破壊される可能性があります。何をすべきか、避けるべきことについての最新のアドバイスについては、[PHP the Right Way](http://www.phptherightway.com/)をご覧ください。 – tadman

+0

@tadman私は同じことをコメントしようとしていました... –

答えて

1
As it appears in imageview.pho the $row[pid] contain the link of your image in photo table so add this line to profileinfo.php under the while loop in the place you want it to display 
<img src="<?php echo". $row["pid"]."; ?>"> 
+0

whileループの前のSQL文はどうすればよいですか? profileinfo.phpはimageview.phpとlistsingleREV.phpの両方を呼び起こし、それらは異なるSQL文を持っています。 – gravition

関連する問題