自动创建php页面

时间:2011-10-19 11:41:57

标签: php mysql html css

我有一个关于如何自动创建单个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”中找到同一个表中的“照片”

我的问题如下:

  1. 有没有办法自动创建这样的页面?原因是,如果我手动创建它们,我会很难,因为我的数据库有超过100个条目。

  2. 在catalog.php中看到的<a href="">标记中,值应该是什么?

  3. 我已经有了这样一个“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>

  4. 如何更改此结构以满足我的要求?

    四个。这样的“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']);
    
    ?>
    

    非常感谢您阅读我的问题。

2 个答案:

答案 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()。