私はこれを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"]. " 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.php
とpidrow
の間に疑問符があるのか分かりません。
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.php
とlistsingleREV.php
に画像が表示されているので、profileinfo.php
のフォームをこれら2つのファイルに置き換えようとしました。私は自分の目標を達成することなく4時間働いた。誰かがボタンをクリックする必要なく、profileinfo.php
に画像を表示する正しい方法を教えてもらえますか?
'imageview.php?pid =' ..? HTTP GETパラメータの疑問符があります。 –
このコードベースはおそらく学習には最適ではありません。それはPHP 7から削除されたAPIを使用しています。これは恐ろしいことです( 'mysql_ *')、まったくばかげた[SQLインジェクションのバグ](http://bobby-tables.com/)が散りばめられています。これを公開サイトにすると、数秒で破壊される可能性があります。何をすべきか、避けるべきことについての最新のアドバイスについては、[PHP the Right Way](http://www.phptherightway.com/)をご覧ください。 – tadman
@tadman私は同じことをコメントしようとしていました... –