我有桌鞋(id,shoename,颜色,品牌,价格,图片名称,可用)。我想通过我的网站在线销售鞋子。目前正在发生的事情是,catalog.php(我网站上的一个页面)显示了我的表'鞋'中的所有鞋子。这是循环内部的代码。
composer dump-autoload
每只鞋都有一个按钮查看鞋,这个按钮指向viewshow.php(我网站上的另一页)显示有关鞋子的所有细节。这是它的样子:
echo "<div class='shoe-view'>";
echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";
echo "<form action='viewshoe.php' method='post'>";
echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>View Shoe</button>";
echo "<input value='".$result["shoename"]."' name='shoename' type='hidden'/>";
echo "</form>";
echo "</div>";
这是我的问题:像flipkart.com这样的电子商务网站对其网站上的每个产品都有不同的地址。 访问http://www.flipkart.com/mens-footwear/casual-shoes/pr?sid=osp%2Ccil%2Ce1f&otracker=hp_nmenu_sub_men_0_Casual+Shoes并查看打开产品时所有商品的地址都不同。这种做法有利于共享产品和搜索引擎优化。我不知道如何为每个产品获得不同的地址。我是否在上传过程中制作了不同的php(例如shoe1.php)文件并使用viewshoe.php重定向到我的shoe1?因为目前我所有的鞋都有一个地址,viewshoe.php。
答案 0 :(得分:1)
您熟悉在PHP中使用$_GET
查询字符串变量吗?你只需要这样做:
echo '<a href="shoepage.php?shoe_id='.$result['id'].'">'.$result['shoename'].'</a>';
然后在shoepage.php
上使用匹配的ID从数据库中取出鞋子。为了更好的搜索引擎优化,你无疑会想要使用鞋子的名称(可能标准化为URL友好,如?shoe=funky-seven-shoes
)而不是数据库ID;为这些人创建一个新列。
对于更多搜索引擎优化,您希望查看网址重写(使用.htaccess
&amp; mod_rewrite
),以获取映射到/shoe/funky-seven-shoes
的{{1}}网址以下是一个示例.htaccess重写规则(假设您的鞋子URL标识符只有字符shoepage.php?shoe=funky-seven-shoes
,下划线和破折号,根据需要修改):
a-z, A-Z, 0-9
您还可以在表单中使用方法GET而不是POST,以使查询字符串在地址栏中可见。 GET是所有不明确请求更改服务器/数据库状态(即插入,更新或删除)的请求的推荐方法。
答案 1 :(得分:0)
你的方法有各种各样的错误,但要回答你的问题:不要将你的鞋子ID发布到viewshoe.php
,而是使用GET;并使用服务器重写规则来重写URL。
因此,例如,鞋子可能在example.com/viewshoe.php?id=big-red-shoe
。使用以下.htaccess重写规则,您可以example.com/shoes/big-red-shoe
访问该鞋。
RewriteRule ^shoes/([^/]*)/?$ /viewshoe.php?id=$1 [R=301, L]