php - "Thank you"当有人输入 URL 时页面不应该显示,你会怎么做?

标签 php javascript html seo

我有一个网站。如果有人发布查询,它会转到感谢页面 www.legasy.com/thankyou/URL 将是这样的。当我分析网站管理员工具时,它显示的感谢比询问更多。

填写表单字段后验证并将该值插入表中。它将转到感谢页面。但是,如果有人键入 url,则它不应转至感谢页面。我能为此做什么?

下面是我的代码

HTML

<form>
 <table>
    <tr><td>Name</td> 
        <td><input type="text" name="buyer_name" id="buyer_name"  size="31" value="" /></td>
     </tr>
    <tr> <td>Email</td> 
         <td><input type="text" name="buyer_email" id="buyer_email"  size="31" value="" /></td>
    </tr>
    <tr> <td>Contact No</td>
         <td>   <input type="text" name="buyer_mobile" id="buyer_mobile" size="31" value=""/></td>
    </tr>
    <tr>                                        
         <td colspan="2" style="text-align:center;">
            <div id="post_enquiry"><img src="./images/for_more_det_click.gif" onclick="postBuyerEnquiry();" style="cursor:pointer;"/></div>
          </td>
    </tr>
 </table>
</form>

Javascript

<script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script type="text/javascript" language="javascript">

function postBuyerEnquiry()
{

    var nametxt = document.getElementById('buyer_name').value;
    var emailtxt = document.getElementById('buyer_email').value;
    var phonetxt = document.getElementById('buyer_mobile').value;
    output ="text";

  if(nametxt=='')
  {
      alert("Please Enter Your Name");
      return false; 
  } 
  else if(emailtxt=='')
  {
      alert("Please Enter Your Mail Id");
      return false;
  }

     else if(phonetxt=='')
     {
          alert("Please Enter Phone Number");
          return false; 
     }
    process = 'loadEvent';
        output = 'text';
      url = "test4.php";        
    $.get(
            url,
            {'act':'SBQF', 
             'name':nametxt, 
             'email':emailtxt,
             'phone':phonetxt,
            },
            function(responseText)
            {
                 window.location.href = '/legasy.com/thankyou/';
            },
            "html"
        );

}

PHP

<?php
if ( !empty($_POST['act']) )
{
    $act        =   formatstring($_POST['act']);
}

switch( $act )
{
    case "SBQF":

         $strName         = $_GET['name'];
         $strEmail        = $_GET['email'];
         $strPhone        = $_GET['phone'];
             //Inserting values into the database   
         exit;  
     break;
}
?>

如果有人输入 URL (www.legasy.com/thankyou/) 它想转到错误页面

最佳答案

将所有其他内容包装在 else

else { // Give this here
    process = 'loadEvent';
        output = 'text';
      url = "test4.php";        
    $.get(
            url,
            {'act':'SBQF', 
             'name':nametxt, 
             'email':emailtxt,
             'phone':phonetxt,
            },
            function(responseText)
            {
                 window.location.href = '/legasy.com/thankyou/';
            },
            "html"
        );
    return false;
}

在任何时候,这都会被执行。另外,在 else 部分的末尾也给出 return false;!

访问被拒绝的东西

如果不希望用户直接访问www.legasy.com/thankyou/页面,可以设置一个session。在你做成功的那一刻,你可以这样设置一个 session 。

session_start();
if (condition on success)
    $_SESSION["thankyou"] = true;

www.legasy.com/thankyou/ 页面中,

session_start();
if (!isset($_SESSION["thankyou"]) && $_SESSION["thankyou"] != true)
{
    header('Location: /error/');
    die();
}

关于php - "Thank you"当有人输入 URL 时页面不应该显示,你会怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13926169/

相关文章:

javascript - 如何为 Canvas 上的绘图线设置动画

javascript - CSS 360旋转进度径向使用JS

php - preg_match_all php 的奇怪行为

php - Yii 2 gii 在不同的目录中生成 View 文件

c# - 为什么我的正则表达式在 ASP.NET 中不起作用

javascript - 通过超链接退出的页面未被 onbeforeunload 捕获

php while循环不正确地显示sql数据

PHP PDO 计算数据库中所有表的行数

javascript - 无法弹出简单的推特 Bootstrap 模式对话框

javascript - 将 python 请求转移到 node.js 请求时遇到问题