在表单操作 PHP 中获取错误的 URL


get wrong url in form action php

在我从页面编辑时,我得到了http://localhost/cart_simple/admin/productEdit.php/?edit_id=47的网址现在,当我编辑我的发件人并提交时,我想通过表单操作转到下一页这是我移动到查询的表单.php我使用表单操作=查询.php然后单击"更新"按钮

 <form name="prdct_frm"  action="query.php" method="post" enctype="multipart/form-data"> 
    <ul>
      <li><lable name>Name:</lable><input type="text" name="prd_name"  value="<?php echo $fillvar[0]['name'];?>"/></li>
      <li><lable name>Price:</lable><input name="prd_price" type="text" value="<?php echo $fillvar[0]['price'];?>"/></li>
      <li><lable name>Qty:</lable><input type="text" name="prd_qty"  value="<?php echo $fillvar[0]['quantity'];?>"/></li>
      <li><lable name>Product image</lable><input type="file" name="file" id="file" /></li>
      <img src="<?php echo 'http://'.$_SERVER["HTTP_HOST"].dirname($_SERVER["SCRIPT_NAME"]).'/product_image/'.$fillvar[0]['prod_image'];?>" height="80" width="80"/>
      <li><input type="submit" name="update"  value="Upate Product"/></li>
    </ul>
    </form>

但是当我按下按钮时,我得到了错误的URL。正确的网址应该是http://localhost/cart_simple/admin/query.php

我得到错误的网址http://localhost/cart_simple/admin/productEdit.php/query.php

使用类似这样的东西:

<form action="/cart_simple/admin/query.php">

由于您使用的是漂亮的URL,因此您将获得当前文件的相对URL,该文件被视为文件夹。因此,更改将 URL 引用到绝对 URL 的方式可能会解决此问题。

现在,如果你给/cart_simple/admin/query.php,它从根开始。在任何情况下,您的URL是以下任何一项:

http://localhost/cart_simple/admin/productEdit.php/
http://localhost/cart_simple/admin/productEdit.php
http://localhost/cart_simple/admin/productEdit

它总是去/cart_simple/admin/query.php.希望清楚。

相对路径追加在当前 URL 的最后/之后(查询字符串之前(。

由于您在.php之后有一个/,因此它在此之后附加。

您可以:

  • 未链接到.php/(有风险,第三方可能会链接到那里(
  • 使用绝对路径(即以/开头,然后包含操作的整个路径(
  • productEdit.php中测试已请求的URL,如果错误,则重定向到正确的URL。