草庐IT

php - 不同产品的不同地址

coder 2024-02-28 原文

我有一双 table 鞋(id,shoename,color,brand,price,imagename,available)。我正在尝试通过我的网站在线销售鞋子。目前正在发生的事情是,catalog.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>";

每双鞋都有一个查看鞋子的按钮,此按钮指向 viewshow.php(我网站上的另一个页面),其中显示了有关鞋子的所有详细信息。这是它的样子:

 echo "<div class='shoe-view'>";
  echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";

  echo "<p class='sub-heading desc catalogfont' style='color:rgb(184, 55, 60);'>".$result["shoename"]."</p>";
  echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["price"]."</p>";
  echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["Color"]." : ".$result["brand"]."</p>";
  echo "<form action='buyshoe.php' method='post'>";
   echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>Buy Shoe</button>";

  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。

最佳答案

您熟悉在 PHP 中使用 $_GET 查询字符串变量吗?你只需这样做:

echo '<a href="shoepage.php?shoe_id='.$result['id'].'">'.$result['shoename'].'</a>';

然后在 shoepage.php 上从数据库中获取具有匹配 ID 的鞋子。为了获得更好的 SEO,您无疑希望使用鞋子的名称(可能标准化为 URL 友好,如 ?shoe=funky-seven-shoes)而不是数据库 ID;为那些创建一个新列。

对于更多的 SEO,您需要查看 URL 重写(使用 .htaccessmod_rewrite)以获得像 /shoe/funky- 这样的 URL seven-shoes 映射到 shoepage.php?shoe=funky-seven-shoes 等。这是一个 .htaccess 重写规则示例(假设您的鞋子 URL 标识符只有字符 a-z , A-Z, 0-9, 下划线和破折号, 根据需要修改):

RewriteEngine on
RewriteBase /
RewriteRule ^shoe/([a-zA-Z0-9_-]*)$ shoepage.php?shoe=$1

您还可以在表单中使用 GET 方法代替 POST 方法,使查询字符串在地址栏中可见。 GET 是所有未明确请求更改服务器/数据库状态(即插入、更新或删除)的请求的推荐方法。

关于php - 不同产品的不同地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962754/

有关php - 不同产品的不同地址的更多相关文章

  1. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  2. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  3. 阿里云RDS——产品系列概述 - 2

    基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于

  4. java - 为什么 ruby​​ modulo 与 java/other lang 不同? - 2

    我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.

  5. ruby-on-rails - 在 RSpec 中,如何以任意顺序期望具有不同参数的多条消息? - 2

    RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)

  6. ruby-on-rails - 如何用不同的用户运行nginx主进程 - 2

    A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(

  7. ruby - 从 sinatra 中的 before do block 返回不同的值 - 2

    有没有办法在sinatra的beforedoblock中停止执行并返回不同的值?beforedo#codeishere#Iwouldliketo'return"Message"'#Iwouldlike"/home"tonotgetcalled.end//restofthecodeget'/home'doend 最佳答案 beforedohalt401,{'Content-Type'=>'text/plain'},'Message!'end如果你愿意,你可以只指定状态,这里有状态、标题和正文的例子

  8. ruby-on-rails - Sunspot:如何对具有不同值的多个字段进行全文查询? - 2

    我想用sunspot重现以下原始solr查询q=exact_term_text:fooORterm_textv:foo*ORalternate_text:bar*但我无法通过标准的太阳黑子界面理解这是否可能以及如何实现,因为看起来:fulltext方法似乎不接受多个文本/搜索字段参数我不知道将什么参数作为第一个参数传递给fulltext,就好像我通过了"foo"或"bar"结果不匹配如果我传递一个空参数,我得到一个q=*:*范围过滤器(例如with(:term).starting_with('foo*')(顾名思义)作为过滤器查询应用,因此不参与评分。似乎可以手动编写字符串(或者可能使

  9. ruby-on-rails - 验证电子邮件地址是 Paypal 用户 - 2

    我想验证一个电子邮件地址是否是PayPal用户。是否有API调用来执行此操作?是否有执行此操作的ruby​​库?谢谢 最佳答案 GetVerifiedStatus来自PayPal'sAdaptiveAccounts平台会为您做这件事。PayPal没有任何codesamples或SDKs用于Ruby中的自适应帐户,但我确实找到了编写codeforGetVerifiedStatusinRuby的人.您需要更改该代码以检查他们拥有的帐户类型的唯一更改是更改if@xml['accountStatus']!=nilaccount_status

  10. ruby-on-rails - 2个用户之间的产品订单 - 2

    我有三个模型:User、Product、Offer以及这些模型之间的关系问题。场景:用户1发布了一个产品用户2可以向用户1发送报价,例如10美元用户1可以接受或拒绝提议我现在的问题是:用户、产品和报价之间的正确关系是什么?我如何处理那些“接受或拒绝”操作?是否有更好的解决方案?用户模型:classUser:productsend产品型号:classProduct:usersend提供模型:classOffer提前致谢:)编辑:我正在使用Rails3.2.8 最佳答案 警告:小小说来了第1部分:设置关联我建议阅读Railsguideo

随机推荐