我有一个有两个字段名称和表格的表格。电子邮件&我需要在特定网址上提交表单值,如下所示
http://www.abc.co.uk/acy/xyzerequest&name='me'&email='me@gmail.com'
为此我制作了表格&发布到php文件.. 我在哪里使用$ _POST获得价值 但我感到困难的是我如何将这些值发送到特定的URL,但用户不应该知道。
所以最终用户只需输入名称&他的电子邮件ID&只是用他的值导向该URL ..
请指导我如何实现......我在过去3小时内尝试过没有好运。
答案 0 :(得分:0)
正如其他人所说,你的问题不是很明确。
如果我理解正确,您希望在用户点击提交按钮时显示该网址。
在这种情况下,您应该使用GET而不是发布表单。请注意,如果您传递密码等信息,则建议不要使用GET,因为信息将直接显示在网址上。
另外你不应该使用get it上面的操作的结果是修改服务器端的某些资源,你只能查看而不是修改资源。
编辑:似乎其他人对这个问题有了更好的理解,附加参数的标题(“Location:someurl”)似乎还有很长的路要走。答案 1 :(得分:0)
您可以使用Location:
功能设置header
标题,重定向到其他页面。一个例子:
header("Location: http://stackoverflow.com/");
正如@lampwins所指出的,通常这与exit
一起使用。这样就不会执行页面的其余部分(因为这可能会导致异常的副作用,以及不必要的服务器负载)。
答案 2 :(得分:0)
这样做的一种方法是使用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
}
?>
答案 3 :(得分:0)
据我了解,您希望脚本收集用户的姓名和电子邮件,创建URL并重定向用户。
所以脚本应该看起来像这样(这只是一个指导方针)。
<?php
if(isset($_POST['submit'])){
$name = $_POST["name"];
$email = $_POST["email"];
//create the URL
$url = "http://www.example.com/yourpage.php?name=" . urlencode($name) . "&email=" . urlencode($email);
//send the header
header("Location: " . $url);
//exit the script
exit();
}
?>
<html>
<body>
<form method="post" action="" name="name">
Name:<input type="text" name="name">
Email:<input type="text" name="name">
<input type="submit">
</form>
</body>
</html>
就URL而言,?
表示“变量”的起始位置。
您永远不应该从原始用户数据创建URL,尤其是在您将其发送到其他脚本时。您应始终使用urlencode($data)
,这将使数据网址安全。您还应该研究数据验证和清理。
所以这个脚本的作用是首先检查是否有任何内容发布到它,如果是,如果收集数据,创建URL,发送重定向标题,然后退出。如果没有,它会显示一个表格供用户输入信息。
答案 4 :(得分:0)
让我清理一下,
如果我是对的,您可以使用PHP“标题”功能,如
<?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>
这样,每个人都知道这些名称和电子邮件值。
由于PHP在向客户端呈现页面结束时丢失了变量作用域。因此将值存储在变量中是没用的。 但是你有另一种选择,通过使用$ _SESSION变量,你可以实现这一目标。
在表单上提交设置会话值,如下所示,
&LT; PHP $ _SESSION ['name'] = $ _POST ['name']; $ _SESSION ['email'] = $ _POST ['email']; ?&GT;
然后重定向到特定网址,
<?php
header("Location:http://www.abc.co.uk/acy/xyzerequest");
?>
2。现在在重定向网址的处理程序中,您可以从会话中读取这些值,
<?php
$name = $_SESSION['name'];
$email = $_SESSION['email'];
?>
这样,隐藏了值,我们可以使用不同的页面处理程序。
答案 5 :(得分:0)
有些人已经建议,最简单的方法(如果你需要重定向发布数据),就是创建一个隐藏的表单并自动提交:
$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;
这将自动创建包含post
数据的表单并提交。
答案 6 :(得分:-1)
<?php
$user = $_GET["user"];
$pass = $_GET["pass"];
header( 'http://www.abc.co.uk/acy/xyzerequest&name=' . $user . '&email=' . $pass ) ;
?>