Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向到php中的另一个页面_Php_Ajax - Fatal编程技术网

重定向到php中的另一个页面

重定向到php中的另一个页面,php,ajax,Php,Ajax,我有一个带有两个字段名称和电子邮件的表单&我需要在特定的url上提交表单值,如下所示 http://www.abc.co.uk/acy/xyzerequest&name='me'&email='me@gmail.com' 为此,我制作了表单并将其发布到php文件中。。 在这里,我使用$\u POST获得值 但我感到困惑的是如何将这些值发送到特定的URL,但用户不应该知道 因此,最终用户只需输入名称和他的电子邮件id,并将其值定向到该URL即可 请指导我如何实现……我从最后3个小

我有一个带有两个字段名称和电子邮件的表单&我需要在特定的url上提交表单值,如下所示

http://www.abc.co.uk/acy/xyzerequest&name='me'&email='me@gmail.com'
为此,我制作了表单并将其发布到php文件中。。 在这里,我使用$\u POST获得值 但我感到困惑的是如何将这些值发送到特定的URL,但用户不应该知道

因此,最终用户只需输入名称和他的电子邮件id,并将其值定向到该URL即可


请指导我如何实现……我从最后3个小时开始一直在努力&运气不好。

正如其他人所说,你的问题不是很清楚

如果我理解正确,您希望在用户单击submit按钮时显示该url

在这种情况下,您应该为表单使用GET而不是post。请注意,如果您正在传递密码等信息,则不建议使用GET,因为这些信息将在url上直接可见

此外,您不应该使用get it。上述操作的结果是修改服务器端的某些资源,您只能查看而不能修改资源

编辑:似乎其他人对这个问题有了更好的理解,添加了参数的标题(“Location:someurl”)似乎是一条出路。


<?php
$user = $_GET["user"];
$pass = $_GET["pass"];

   header( 'http://www.abc.co.uk/acy/xyzerequest&name=' . $user . '&email=' . $pass ) ;

?>

通过使用
标题
功能设置
位置:
标题,可以重定向到另一页。例如:

header("Location: http://stackoverflow.com/");

正如@lampwins指出的,这通常与退出一起使用。这样就不会执行页面的其余部分(因为这可能会导致异常的副作用和不必要的服务器负载).

一种方法是使用form.php之类的表单来显示表单,然后重定向到自身来处理该表单,而不是action=myphp只需将form.php放入,它将重定向到自身,然后在顶部执行您需要的操作。这样,您就不需要在URL中发送密码

<?php 
if(isset($_POST['submit'])) {
   $name  = $_POST['name'];
   $email = $_POST['email'];

   // do here whatever you wanted to do with the user and email in your form
   // you can show a different html page or redirect on, or login or whatever.
}  else {
   // the form html elements will only show if the form is not already submitted by the user.  This allows you to do what you need to do on one page without processing and then redirecting using the header.
?>
<!-- form.php -->
<form method=post action="form.php">
name <input name="name" value="" size="10" /><br />
email <input name="email" value="" size="25" /><br />
<input type="submit" name="submit" value="go" />
</form>
<?php
   }
?>

名称
电子邮件

据我所知,您希望脚本收集用户名和电子邮件,创建URL并重定向用户

所以脚本应该是这样的(这只是一条指导线)


姓名:
电邮:
就URL而言,
表示“变量”的起始位置

您永远不应该从原始用户数据创建URL,尤其是当您将这些数据发送到其他脚本时。您应该始终使用
urlencode($data)
,这将使数据URL安全。您还应该研究数据验证和清理


因此,这个脚本所做的是首先检查是否有任何内容被发布到它,如果有,if收集数据,创建URL,发送头进行重定向,然后退出。如果没有,它会提供一个表单供用户输入他们的信息。

让我澄清一下

  • 您在提交中获得两个值(姓名、电子邮件)
  • 现在,您将在另一个url中处理这两个
  • 如果我是对的,您可以使用PHP“header”函数,如

    <?php
        header("Location:http://www.abc.co.uk/acy/xyzerequest?name=".$_POST['name']."&email=".$_POST['email']);
    ?>
    
    
    
    在这种情况下,标题值为的空白响应将作为

    <some header value>
    Contet-Type:text/plain
    Location:http://www.abc.co.uk/acy/xyzerequest?name=foo@email=foo@gmail.com
    <some header value>
    
    
    内容类型:文本/纯文本
    地点:http://www.abc.co.uk/acy/xyzerequest?name=foo@电子邮件=foo@gmail.com
    
    因此,每个人都知道这些名称和电子邮件值

    因为PHP是开放的,所以在向客户机呈现页面的末尾会释放变量范围。因此,将值存储在变量中是无用的。 但您还有另一个选择,通过使用$\u会话变量可以实现这一点

  • 在表单提交中设置会话值,如下所示

  • 然后重定向到特定的url,如下所示:

    <?php
      header("Location:http://www.abc.co.uk/acy/xyzerequest");
    ?>
    
    
    
    二,。现在在重定向url的处理程序中,您可以从会话中读取这些值

    <?php
      $name = $_SESSION['name'];
      $email = $_SESSION['email'];
    ?>
    
    
    

    因此,这些值是隐藏的,我们可以使用不同的页面处理程序。

    正如一些人所建议的,最简单的方法是创建一个隐藏表单并自动提交:

    $form = "<form name='autoForm' method='post' action='http://www.abc.co.uk/acy/xyzerequest'>
                 <input type='hidden' name='name' value='{$_POST['name']}' />
                 <input type='hidden' name='email' value='{$_POST['email']}' />
                 <script type='text/javascript' language='javascript'>
                     document.autoForm.submit();
                 </script>
             </form>";
    
    echo $form;
    
    $form=”
    document.autoForm.submit();
    ";
    回声$形式;
    

    这将自动使用
    post
    数据创建表单并提交它。

    使用post作为表单方法将隐藏url中的变量,您将只看到url中的变量(如
    http://www.abc.co.uk/acy/xyzerequest&name=“我”和电子邮件(&E)me@gmail.com“
    )如果您使用GET作为表单方法,您的问题就不清楚了。请再详细说明一下,你可以使用标题(“位置:你的url”)@Stu Cool我尝试了get方法,但那个php文件接受了那个字段的值..从那个php文件如何重定向。。在html form in action中,我使用action=“myphp”@sandip is location允许我传递带有变量值的url??向行添加
    和exit()
    将在此时退出脚本,客户端希望重定向<代码>标题(“位置:http://stackoverflow.com/“)和退出()`
    $form = "<form name='autoForm' method='post' action='http://www.abc.co.uk/acy/xyzerequest'>
                 <input type='hidden' name='name' value='{$_POST['name']}' />
                 <input type='hidden' name='email' value='{$_POST['email']}' />
                 <script type='text/javascript' language='javascript'>
                     document.autoForm.submit();
                 </script>
             </form>";
    
    echo $form;