PHP自动生成新页面

6

我将制作一个社交网络类型的网站,用户可以上传他们的物品进行评分。然而,我正在尝试改进网站的布局方式,因此想要在用户插入新项目后自动生成页面。add.php页面具有以下表单:

<form action="add.php"  method="post"  autocomplete="on" enctype="multipart/form-data" action="<?php echo                  $_SERVER['PHP_SELF']; ?>" method="POST" id="pic">
    <p> <label for="jname" class="iconic user"> Name of Jam <span class="required">*</span></label> <input type="text" name="jname" id="jname" value="<?php if (isset($_POST['jname'])) echo $_POST['jname']; ?>" required="required" placeholder="Input your Name of Jam here"  /> </p>

    <p> <select name="jtype" id="jtype" value="<?php if (isset($_POST['jtype'])) echo $_POST['jtype']; ?>" required="required">
            <option value="jam">Jam</option>
            <option value="jelly">Jelly</option>
            <option value="marmalade">Marmalade</option>
            <option value="preserve">Preserve</option>
        </select> </p>

    <p> <label for="producer" class="iconic user"> Jam Producer <span class="required">*</span></label>     <input type="text" name="producer" id="producer" value="<?php if (isset($_POST['producer'])) echo $_POST['producer']; ?>" required="required" placeholder="Input the producer of the Jam here"  /> </p>
    Upload a picture of your jam: </br> </br> <input name="userfile" type="file" /> </br>
    <input type="submit" name="submit" value="Register" />    
    <input type="hidden" name="submitted" value="TRUE" />

</form>

当表单提交后,我希望它能生成一个新页面来展示新创建的用户项目。有没有比较简单的方法实现这个功能?
谢谢。

1
你尝试过什么?你想要创建一个新文件吗?或者怎么样创建一个数据库条目? - Tom Walters
4个回答

8

您无需为每个项目实际“创建”新的HTML页面。

您可以将此信息保存到数据库中(例如MySQL)。

然后,您可以创建另一个PHP文件,比如“item.php”,并从MySQL数据库中访问不同的条目,如下所示:

item.php?id=1


好的,所以我的数据库中的每个项目都会生成一个ID,并且我已经创建了一个item.php页面。那么我该如何将该ID与页面关联起来呢?这些项目在1个页面上列出,然后我想能够单击其中一个项目,并加载具有相关ID的新页面。您知道是否有在线教程可以供我参考吗?谢谢。 - Bic1245
1
有很多在线教程可供选择,你可以尝试在谷歌上搜索“php mysql入门教程”,但正如middaparka建议的那样,我强烈推荐你投资一些书籍。这样你将能够比在这里提问更快地学习 :) - Sergejs Rižovs
很多网站都在使用这种技术。然后你可以根据id变量显示内容。因此,页面通常是相似的(例如,相同的布局),但内容不同。 - user3522940

4
一般来说,这种网站的创建方式并不是这样的。(即:您不会在表单提交时生成实际的页面。)相反,您通常会将表单数据存储在数据库中,然后根据URL检索/显示它 - 通过“控制器”解码URL本身或使用查询字符串变量,例如?producerid=x。然后使用这些数据来填充模板。
老实说,我真的建议您获取一本最近的PHP书籍(就数据库访问而言,您应该使用PDO或MySQLi),或者跟随一些在线教程 - 尽管最初似乎这不会是有意义的进展,但长远来看可能会带来巨大的回报。

3

最好和高效的方式是将数据存储在数据库中,并在用户单击特定项目时检索它。不过,如果您计划使您的网站能够被Google搜索引擎访问,则必须生成单独的网页...因为Google只是一个Web爬虫...无法进入MySQL或其他数据库。


2
通常情况下,这类事情不需要生成新页面。您应该创建一个模板,并从其他来源(如XML文件或数据库)加载动态信息,使其看起来像是全新的页面。
只需执行以下操作:
  1. 查看每个项目页面有哪些共同点
  2. 定义包含公共代码的模板
  3. 从数据库检索动态信息(例如项目信息)
  4. 使用嵌入HTML的PHP加载动态HTML
例如:
Facebook不会为每个用户注册创建新页面。 有一个HTML模板,定义了个人资料照片的位置、帖子的位置和样式、好友列表的位置和样式以及任何个人资料页面通用的内容,然后在调用Mark、Frank、Jeff等人的个人资料页面时加载不同的信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接