PHP如何不用表单进行POST传递

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP如何不用表单进行POST传递相关的知识,希望对你有一定的参考价值。

例如登陆失败返回页面login.php,如果是GET的话就是login.php?login=fall然后用IF
这样很难看,如何用POST传递?或者其他方法?
就是
<?php if($_GET['login'=="fall"])?>
<a>登陆失败</a>
<?php |?>

如何用POST传递值?或者其他方法?

(1)
通过onClick="location='html/zhuce.php';
可以点按钮后直接进入另一个页,这样就可以不用form来跳转到另一个页了,也省了一个判断语句来判断点的哪个按钮来进哪个页面.如:
<input type="submit" name="Submit" value="登录"/>
<input name="Submit" type="button" id="Submit" value="注册" onClick="location='html/zhuce.php';"/>
这里的按钮的类型submit和button的区别:
button在没有外加程序的情况下不能向服务器或者其他页面提交数据(表单内容)
但点击submit就可以
submit直接提交form的内容,button不行,button必须写onclick函数完成提交。
type=button 就单纯是按钮功能
type=submit 是发送表单
但是对于从事WEB UI的人应该要注意到,使用submit来提高页面易用性:
使用submit后,页面支持键盘enter键操作,而很多WEB软件设计师,可能没有注意到submit统一用button后往往页面不支持enter键了。所以需要支持enter键,必须要设置个submit,默认enter键对页面第一个submit进行操作。
(2)<A onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('设为首页的网址');return(false);"href="设置后转向哪个页">设为首页</A>
<A onclick=window.external.AddFavorite(document.location.href,document.title) href="收藏的网址">加入收藏夹</A>
(3)
location.href='../index.php'
这里是转向上一级目录index.php文件的意思注意 ../
(4)
1>$sql="select * from dlzc username='".$username."',password='".$password."'";
2>$result=mysql_query($sql);
3>$num=mysql_num_rows($result);
4>$rs=mysql_fetch_array($result);
参考技术A 在用户名 密码验证页面,
<?php
///
///
///

if ( /*用户名密码验证失败*/ )

?>
<form id="form1" name="form1" method="post" action="login.php">
<input name="login" type="hidden" id="login" value="fall" />
</form>
<script language="javascript" type="text/javascript">
document.getElementById("form1").submit();
</script>
<?php
exit();
//表单自动post提交

?>

方法二
<?php
session_start();
///
///
///

if ( /*用户名密码验证失败*/ )

$_SESSION['login'] = 'fall';
header('location:login.php');
exit();

?>
在login.php
<?php
session_start();
if ($_SESSION['login'] == 'fall' )

echo '<a>登陆失败</a>';
$_SESSION['login'] = '';

?>
方法三:
<?php
if ( /*用户名密码验证失败*/ )

setcookie("login","fall",time()+7200,"/");
header('location:login.php');
exit();

?>
在login.php
<?php
if ($_COOKIE['login'] == 'fall' )

echo '<a>登陆失败</a>';
$_SESSION['login'] = '';

?>
参考技术B 不想使用post传递也可以,可以使用get传递,使用get传递相对来说不安全 参考技术C 你把登陆信息存放在session中,在login文件里判断$_SESSION("??")是否等于成功登录的判断值,如果不是就显示<a>登录失败</a>追问

这样涉及到删除session问题,不然刷新以后还会显示登录失败...

追答

楼下已经有答案了
不存在什么删除Session问题,唯一就是Session过期失效要注意一下而已

参考技术D 干嘛搞那么复杂, 显示表单和判断登入信息都用login.php不就行了吗?

php高级

以上是关于PHP如何不用表单进行POST传递的主要内容,如果未能解决你的问题,请参考以下文章

php中如何防止刷新一次提交一次

如何在php网页中通过一个表单让使用者输入数据提交后把输入的数据传递到mysql数据库中?

如何将 php 变量传递给同一页面中的另一个表单?

php高级

PHP:如何在一个表单操作中实现图片与文字一起传递

在php中不用表单怎样向另一个页面post参数并打开这个接值页面?