到目前为止,论坛对这个项目有很大的帮助。我在这里寻找关于我项目下一步的一些指导。
我所拥有的是一个将用户提交的信息馈送到MySQL数据库的表单。然后,这个数据库将这些信息提供给一个显示数据库中所有信息的主页。我要做的是添加一些东西到我的表单,创建一个新的唯一的URL/页面时,提交的表单。我已经为这个页面设计了HTML/CSS模板,它被设计成只显示一组信息,而不是整个DB值。
我正在寻找一些指导,我如何能在表单提交上创建页面和唯一的url。立即从数据库获取这些新信息的最佳方法是什么?
我需要以某种方式自动重新创建HTML和CSS文件以及在服务器上,这是我不熟悉的。
编辑:@Jacky Cheng指出这可以不创建新版本的HTML/CSS文件,我倾向于在服务器上有一个动态的HTML文件。
感谢你们的帮助,因为到目前为止你们都很棒。
包括我提交给DB的形式的代码,以及我将从中提取信息的页面。
格式是:
<?php
include_once 'post_func.inc.php';
connect();
?>
<!DOCTYPE html>
<html>
<head>
<title>Event Register</title>
</head>
<body>
<div style="text-align: center">
<h2>Event Register</h2>
<form id="eventregister"action="eventtestconnect.php" method="post">
<table style="border: 0; margin-left: auto; margin-right: auto; text-align: left">
<tr>
<td>Event Name:</td>
<td><input name="name" type="text"></td>
</tr>
<tr>
<td>Event Type:</td>
<td>
<select name="eventtype">
<?php query_eventtype() ?>
</select>
</td>
</tr>
<tr>
<tr>
<td>Venue:</td>
<td>
<select name="venue">
<?php query_venue() ?>
</select>
</td>
</tr>
</table>
<input type="submit" value="Submit">
</form>
</div>
</body>
<?php close() ?>
</html>
这是我想从数据库填写表单后提交的信息和url生成的页面。
<?php
include_once 'event_func.inc.php';
connect();
?>
<html>
<head>
<title>
<?php query_eventname() ?>
</title>
<link href="eventstest.css" rel="stylesheet" type="text/css"/>
</head>
<body id="body">
<div id="maincontainer">
<div id="header">
</div>
<div id="content">
<div id="eventname">
<?php query_eventname() ?>
</div>
<div id="eventvenue">
<?php query_eventvenue() ?>
</div>
<div id="eventicon">
<?php query_eventtype() ?>
</div>
</div>
</div>
</body>
<?php close() ?>
</html>
为了在提交时生成url,并且事件页面能够在url/数据集之间动态跳转,需要对表单进行哪些更改?
对于初学者的问题很抱歉,但这个网站似乎是这类事情的最佳资源,我还没有在这里找到任何具体的东西!
再次感谢您的帮助!
你想要什么我还是猜了一半,所以请耐心听我说。
从你的问题的描述,你似乎有一个系统,将生成一个实际的HTML文件每个表单提交?这对我来说可不太好。也许你可以试试这样做:
重新设计一个网页,将http GET请求参数作为输入(mydomain.com/display.php?id={input1}),并只显示一组信息。
从评论我看到你有一个唯一的id每个表单提交,我建议避免在请求中直接使用它,因为它会非常容易得到别人的信息。而是尝试对id进行MD5编码然后发送给用户。
那么整个系统将是:
1) you'll only ever have 1 html file in your server, which will dynamically change it's content according to input, which save you a lot of space.
2) you'll have a unique & slightly more secure URL per form submit
编辑:下面是一些伪代码来展示总体思路。
形式回应:
$uniqueId=mysql_query("SELECT unique_id FROM my_db");
echo "http://yourdomain.com/display.php?urlid=".$uniqueId;
display.php
<?php
$uniqueId=$_GET['urlid'];
mysql_query("SELECT info_you_need FROM your_tables WHERE unique_id = $uniqueId");
?>
<html><body>your display page html here</body></html>
I guess…
您想创建像这样的产品目录页面:
www.abc.com/Electronics/Product-Motorola-moto-g-at-Rs6999-only.html,这将显示数据库中的所有产品信息。
如果以上是你的情况,那么你可以在你的项目中使用url重写。
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^Product-/?$ Product-Motorola-moto-g-at-Rs6999-only.html [NC,L] # Handle requests for "Product-"
"RewriteRule"行是奇迹发生的地方。这一行可以分成5部分:
RewriteRule -告诉Apache这个like指向一个RewriteRule。^/产品/?$ -"模式"。服务器将检查对站点的每个请求的URL,以查看此模式是否匹配。如果是这样,那么Apache将把请求的URL替换为后面的"替换"部分。product - motorola -moto-g- rs69999 -only.html如果上面的模式与请求匹配,Apache使用这个URL而不是请求的URL。[NC,L] -"标志",告诉Apache如何应用规则。在本例中,我们使用了两个标志。"NC",告诉Apache这个规则应该是不区分大小写的,"L"告诉Apache如果使用了这个规则,就不要再处理任何规则。
处理"Product"的请求-注释解释规则的作用(可选但推荐)
希望这对你有用。请随便找我帮忙。快乐编程:)
听我说。你的描述很糟糕。如果我是对的,form=>mysql=>confirmation
form应该是action="process.php" method="post"
创建一个process.php文件,在其中执行验证、转义、序列化等操作。插入到MySQL表中。如果返回真重定向(header(location:yourdomain.com)),然后在重定向的页面上,从数据库中选择信息。