我有一个关于如何自动创建单个php页面的问题。
我已经创建了一个名为catalog.php的页面。
在catalog.php中,将发生mySQL查询,查询:
$link = mysql_connect("localhost", "root", "");
mysql_select_db("photodb", $link);
$sql = "SELECT id, title, caption, comments, imagelink, year FROM photo";
然后这个查询将循环并并排显示catalog.php上的内容:
<ul class="grid">
<?php while ($row = mysql_fetch_assoc($result))
{ ?>
<li>
<p class="image"><a href="?"><img src="getImage.php?id=<?php echo $row['id']; ?>" alt="" width="175" height="200" /></a></p>
<p class="name"><?php echo $row['title']; ?></p>
<p class="year"><?php echo $row['year']; ?></p>
</li>
<?php } // while
?>
</ul>
其中class =“grid”将并排排列所有查询数据,并显示图像,标题和年份。
然而,我需要的一个要求是每当我点击这些图像中的任何一个时,它应该链接到它自己的php页面(individual.php)以显示详细的图像,标题,标题和作者的评论。详细说明如下:
Title
IMAGE Caption
Author's comments
一个例子:
Picture of bridge
IMAGE This image was taken in paris
Low Shuttle Speed
在上面,IMAGE,标题,标题,作者的评论可以在同一个数据库“photodb”中找到同一个表中的“照片”
我的问题如下:
有没有办法自动创建这样的页面?原因是,如果我手动创建它们,我会很难,因为我的数据库有超过100个条目。
在catalog.php中看到的<a href="">
标记中,值应该是什么?
我已经有了这样一个“individual.php”页面的模板。他的结构示例如下:
<body>
<p class="title">
London Bridge</p>
<p class="caption">
Image taken in summer 2009<br /><br /></p>
<p class="image">
<img border="0" class="floatleft" src="imagelink" width="250" height="400" />
Low Shuttle Speed
</p>
</body>
如何更改此结构以满足我的要求?
四个。这样的“individual.php”网址是否可以重命名为具有唯一ID的其他内容?在数据库中找到的每个图像都有自己唯一的ID。
五。我已经在catalog.php中查询了数据库。我可以以某种方式重用此查询individual.php?
如果您想知道,getimage.php如下:
<?php
$id = $_GET['id'];
// do some validation here to ensure id is safe
$link = mysql_connect("localhost", "root", "");
mysql_select_db("photodb", $link);
$sql = "SELECT imagelink FROM photo WHERE id=$id";
$result = mysql_query($sql, $link);
$row = mysql_fetch_assoc($result);
mysql_close($link);
header("Content-type: image/jpeg");
echo file_get_contents($row['imagelink']);
?>
非常感谢您阅读我的问题。
答案 0 :(得分:1)
您的上一个代码段基本上回答了您的问题 - 您将创建另一个页面并通过URL($_GET
)将变量传递给它。因此,您的网址可能看起来像“individual.php?id = 25”,这会将ID为“25”的图片拉出来。 <{1}}在此示例中为“25”。
我还注意到你正在使用“root”用户进行MySQL连接。我会 强烈 提出反对意见。
http://www.1stwebdesigner.com/tutorials/getting-started-php-dynamic-content/
http://www.greensql.com/articles/mysql-security-best-practices
答案 1 :(得分:0)
参考@Nathan Loding。我也会用
mysql_real_escape_string()
显然可以防止mySQL攻击。从上面的一些代码判断,我猜你的新版或“OLDISH”weby复制和粘贴编码器?
这些功能将有助于您帮助您学习..非常容易做到这一点......所以..是..您可以使用文件功能。
fopen()函数 另请参见附录M,fclose(),fgets(),fread(),fwrite(),fsockopen(),file(),file_exists(),is_readable(),stream_set_timeout(),popen()和stream_context_create()。