【问题标题】:How to get url on form submit如何获取表单提交的url
【发布时间】:2014-10-22 10:11:49
【问题描述】:

我刚刚创建了一个表单,但在提交时遇到了问题。

示例:

这里有edit.php的链接,我可以通过这个链接获取所有信息。

index.php

<a href="change/info/edit.php?url= '
. $row['url'] 
.'&title='. $row['title'] 
.'&info='. $row['info']   
.'&name='. $row['name']  
.'&date='. $row['date'] .' " target="_blank">Edit</a>

我在这里从 index.php 中获取所有信息,如下所示:

编辑.php:

<?php echo $_GET["title"]; ?>
<?php echo $_GET["info"]; ?>
<?php echo $_GET["date"]; ?>
<?php echo $_GET["name"]; ?>
<?php echo $_GET["url"]; ?>

编辑:战神德拉古纳

<?php session_start();

if(isset($_POST['Submit'])){
    // code for check server side validation
    if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){ 


        $msg='<span class="fail">Please try again.</span>';// Captcha verification is incorrect.        

    }else{// Captcha verification is Correct. Final Code Execute here!

}
}

但是当我点击提交按钮并且验证码为假时,页面刷新并且我丢失了所有信息,我必须在浏览器中回击才能再次查看所有信息。

那么当点击提交按钮并且验证码为假时,我需要保留哪些信息。

提前致谢!

【问题讨论】:

  • 我猜你放在 index.php 中的 html 在 echo 语句中?
  • 是的,这是你认为的问题吗?
  • 所以它读起来像 echo '&lt;a href="change/info/edit.php?url= ' . $row['url'] .'&amp;title='. $row['title'] .'&amp;info='. $row['info'] .'&amp;name='. $row['name'] .'&amp;date='. $row['date'] .' " target="_blank"&gt;Edit&lt;/a&gt;'; ?编辑后的代码是什么?那是edit.php页面还是它没有通过的另一个页面?此外,如果您使用的是现代浏览器,则可以右键单击并查看元素并确保 URL 正确。

标签: php forms get submit edit


【解决方案1】:

要保留表单上的信息,您可以设置一些会话变量,例如:

$_SESSION['title'] = $_GET["title"];
$_SESSION['info'] = $_GET["info"]; 等等……然后测试一下:

if(capcha == false) {
   //do something
} else {
   //unset the session variables
}

在这种情况下,如果验证码为 false,那么您可以使用会话中的内容重新填充表单输入,因此即使在重新加载页面后,您仍然可以存储这些信息。如果验证码为真,请记住取消设置会话变量。

但是,如果刷新完全相同的页面,则意味着您拥有 $_GET 中的值,因此您可以毫无问题地使用它。这实际上取决于您的代码的结构。

L.E:

if(isset($_POST['Submit'])){
    $_SESSION['captcha_code'] = $_GET['captcha_code'];
    $_SESSION['other_info'] = $_GET['other_info'];
    // code for check server side validation
    if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){ 
        $msg='<span class="fail">Please try again.</span>';// Captcha verification is incorrect.        
    }else{
       // Captcha verification is Correct. Final Code Execute here!
    }
}

并在视图文件中检查会话变量,如果 isset submit post 设置会话变量。

希望对您有所帮助!
继续编码!
战神。

【讨论】:

  • 感谢您的回答,我刚刚编辑了文件,我尝试了您刚刚发布的内容,但没有任何反应。 @Ares Draguna
  • 发生了什么?转储会话变量,看看你是否真的有这些值。检查 get var 以进行比较
  • 我添加了 $_SESSION['title'] = $_GET["title"];在 if(empty($_SESSION['captcha_code'] ) || strcasecmp($_SESSION['captcha_code'], $_POST['captcha_code']) != 0){ 但什么也没发生
  • 检查 L.E... 我在那里解释了一些东西
猜你喜欢
  • 2021-08-08
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多