php 页面之间变量传递方法总结

 更新时间:2016年11月25日 15:52  点击:1465

标记行:用<form>表示.这个标记行必须包含action属性和method属性,action属性是给窗体提供另一个程序的url或路径(可以是当前文件),使该程序可以从窗体中提取并带走数据.method属性(get或post)则告诉窗体如何带走数据(post首选,因为它比较安全,因为它不在url中传送信息).
窗体的内容,包括输入字段:输入字段是用户输入信息的区域,就是<input>表单,<textarea>这些东西.输入的字段必须包含type和name属性,不过其他的属性也可以有,但不是必须的.输入字段的类型最常见的有:text,check box,radio,select,password等.
动作按钮或图像,一般用于提交/清理信息.用户定义的按钮在技术上也认为是输入类型:包括:submit,reset,image(经常作为图片按钮).
闭标记行:</form>


应用

第一种:通过url传送变量

例如:http://www.xxx.com/news/list.php教程?id=123&lang=en

id=123就是新闻的参数,而lang=en就表示语言是英文,那么我们可以通过php的$_get来取得id和lang的值

比如说要检索id的值 只需要$_get['id'] 就能取到id的值 同理 lang也一样

通过url传值的缺点:

1.每个人都能看到变量的值,所以用这种方式传输敏感数据并不是安全的.

2.用户可以随意修改url中的值,并可以尝试不同的组合,使打开网站后显示出我们不希望显示出来的信息.

3.用户还可能使用保存已久的url和内嵌其中的旧变量提取不正确的或陈旧信息.

第二种:通过会话中传送变量

如果说信息不那么敏感,或者信息是静态的,完全可以使用url传值,但如果用户要传送用户名,密码等信息或者传送地址和电话号码等个人信息,那最好要在传送的时候保持私密性.例如可以使用cookie 或者session.(个人想法,因为是重头重新学习~先说说session).

会话是仅存在浏览器关闭前的一组临时变量.会话信息包括会话id,被授权的个人是否登陆到站点上等.这些信息都是为php临时存储的以便在需要时使用.

如果强制用户使用cookie传送变量, 可以在php.ini里边设置   session.use_only_cookies=1

另外,在使用会话前应确保php.ini文件已经做好修改,即为:session.save_path显示有效路径.

接着只需要调用session_start()函数(写在本页的所有的输出语句前),在php中开始一个会话.

例如:文件1   test_1.php 
<?php
session_start();
$_session['username']='van';
$_session['authuser']=1;
?>
<html>
<head>
<title>test1</title>
</head>
<body>
<?php
$myfavmovie=urlencode('life of brian');
echo "<a href="test2.php?favmovie=$myfavmovie">";
echo "click here to see information about my favorite movie!";
echo "</a>";
?></body>
</html>

test2.php


<?php
session_start();
if($_session['authuser']!=1)
{
    echo "sorry,but you don't have permission to view this page!";
    exit();
}
?>
<html>
<head>
<title>
my movie site -<?php echo $_get['favmovie'];?></title>
<body>
<?php
echo 'welcome to our site,';
echo $_session['username'];
echo '!<br/>';
?>
</html>

第三种:用cookie传送变量

使用cookie存在潜在的安全风险,黑客可以通过cookie来获取你在这个web上所留下来的信息,加以利用,所以最好不要把私人信息存储在计算机上

由于访客可能选择关闭cookie功能,或者选择删除计算机中的cookie,所以从开发的角度来看,使用cookie信息并不是最佳的方法

置并发送 cookie:

<?php
$value = "my cookie value";

// 发送一个简单的 cookie
setcookie("testcookie",$value);
?>

<html>
<body>

...
...<?php
$value = "my cookie value";

// 发送一个 24 小时候过期的 cookie
setcookie("testcookie",$value, time()+3600*24);
?>

<html>
<body>

...
...

<?php教程 
//写cookie
setcookie("user", "wang70937", time()+60);
//session
session_start();

if(isset($_session['views']))
  $_session['views']=$_session['views']+1;

else
  $_session['views']=1;
echo "session: views=". $_session['views']."<br />";
?>

<script >
	function show(){
		alert("asdf");
	}
</script>

<html>
	<title>php测试页面 </title>
	<head><script src="clienthint.js"></script></head>
	<body>
		<?php
			//输出
			echo "<br />"."[******输出******]"."<br />";
			echo "hello world!"."<br />";
			$a = "php";
			$b = "language";
			echo $a." ".$b."<br />";
			
			//数组
			echo "<br />"."[******数组******]"."<br />";
			$arr = array("abcde", "fghijk", "lmnopq");
			foreach($arr as $value)
			{
				echo $value."<br />";
			}
			
			//函数
			echo "<br />"."[******函数******]"."<br />";
			function funa($a, $b){
				echo "函数参数:".$a.", ".$b;
				return "ret_value";
			}
			$ret = funa(123, "param");
			echo "函数返回值:".$ret."<br />";
			
		
			echo "<br />"."[******表单******]"."<br />";
		?>
			<form action="form.php" method="post">
			name: <input type="text" name="name" />
			age: <input type="text" name="age" />
			<input type="submit" />
			</form>
			
		<?php	echo "<br />";
			
			echo "<br />"."[******上传文件******]"."<br />";
		?>	
			<form action="upload_file.php" method="post"
			enctype="multipart/form-data">
			<label for="file">filename:</label>
			<input type="file" name="file" id="file" /> 
			<br />
			<input type="submit" name="submit" value="submit" />
			</form>
		
		<?php	
			//session
			echo "<br />"."[******session******]"."<br />";
			
			//retrieve session data
			echo "pageviews=". $_session['views'];
		?>
			<br />	
			
			<!-- //删除session -->
		<?php
			//echo "<br />"."[******删除session******]"."<br />";
			// session_destroy(); 
		?>

		<?php
			//发送邮件
			echo "<br />"."[******发送邮件******]"."<br />";
			
			$to = "wang70937@163.com";
			$subject = "test mail";
			$message = "hello! this is a simple email message.";
			$from = "wang70937@gmail.com";
			$headers = "from: $from";
			mail($to,$subject,$message,$headers);
			echo "mail sent."."<br />";
		?>

		<?php
			//mysql教程数据库教程
			echo "<br />"."[******mysql数据库******]"."<br />";
			$con = mysql_connect("localhost","root","1");
			if (!$con)
  		{
  			die('could not connect: ' . mysql_error());
  		}
			else
 				echo "连接mysql成功!"."<br />";
			mysql_select_db("bbs", $con);
			mysql_query("set names gbk");
			//show tables
			$tablecount = mysql_query("show tables");
			while($table = mysql_fetch_array($tablecount))
			{
				//表名
				$tablename = $table[0];
				$sql = "select * from ".$tablename;
				$result = mysql_query($sql);
				
				echo "<br />表:[".$tablename."]<br />";
				//表的字段个数	
				$filedcount = mysql_num_fields($result);
				//记录条数
				$recordcount = mysql_num_rows($result);
				
				echo "sql[".$sql."] 记录条数:".$recordcount."<br />";
				
				if($filedcount > 0 )
				{
					echo "<table border='1'>;
					<tr>
					<th>记录序号</th>";
					for($index=0; $index<$filedcount; $index++)
					{
						//字段名
						$filedname = mysql_fetch_field($result);
						echo "<th>$filedname->name</th>";
					}
					echo "</tr>";
					$no = 0;
					while($row = mysql_fetch_array($result))
  				{
     				$no = $no + 1;
     				echo "<tr>";
     				echo "<td>" . $no . "</td>";
     				for($index=0; $index<$filedcount; $index++)
     				{
  						echo "<td>" . $row[$index] . "</td>";
  					}
  					echo "</tr>";
  				}
					echo "</table>";
				
				}
			}
			
			


			mysql_close($con);
		?>

			<?php
			//xml解析
			echo "<br />"."********xml解析********"."<br />";
			
			/*$xmldoc = new domdocument();
			$xmldoc->load("note.xml");

			$x = $xmldoc->documentelement;
			foreach ($x->childnodes as $item)
  		{
 				print $item->nodename . " = " . $item->nodevalue . "<br />";
  		}*/
  		$xml = simplexml_load_file("note.xml");

			echo $xml->getname() . "<br />";

			foreach($xml->children() as $child)
  		{
  			echo $child->getname() . ": " . $child . "<br />";
  		}
			?>
			
			<?php
			//ajax
			echo "<br />"."*******ajax*******"."<br />";
			?>
			<form> 
			first name:
			<input type="text" id="txt1"
			//onkeyup="showhint(this.value)"
			onkeyup="show()">
			</form>

			<p>suggestions: <span id="txthint"></span></p>
			

	</body>
	
</html>

<?
function browse_infor()
{
$browser="";$browserver="";

//

$browsers =array("lynx","mosaic","aol","opera","java","macweb","webexplorer","omniweb");
$agent = $globals["http_user_agent"];
for ($i=0; $i<=7; $i++) //一聚教程
{
if (strpos($agent,$browsers[$i]))
{
$browser = $browsers[$i];
$browserver ="";
}
}
if (ereg("mozilla",$agent) && !ereg("msie",$agent)) //一聚教程
{
$temp =explode("(", $agent); $part=$temp[0];
$temp =explode("/", $part); $browserver=$temp[1];

//开源

$temp =explode(" ",$browserver); $browserver=$temp[0];
$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver"; //
$browser = "netscape navigator";
}
if (ereg("mozilla",$agent) && ereg("opera",$agent))
{
$temp =explode("(", $agent); $part=$temp[1];

//php一聚教程

$temp =explode(")", $part); $browserver=$temp[1];
$temp =explode(" ",$browserver);$browserver=$temp[2];

//一聚教程

$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver";
$browser = "opera";
}
if (ereg("mozilla",$agent) && ereg("msie",$agent))

//php一聚教程

{
$temp = explode("(", $agent); $part=$temp[1];
$temp = explode(";",$part); $part=$temp[1]; //
$temp = explode(" ",$part);$browserver=$temp[2];
$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver"; //
$browser = "internet explorer";
}
if ($browser!="")
{
$browseinfo = "$browser$browserver";
}
else
{
$browseinfo = "unknown";
}
return $browseinfo;
}
//调用方法$browser=browseinfo() ;直接返回结果
?>

====


获取访问者操作系统
<?
function osinfo() {
$os="";
$agent = $globals["http_user_agent"];
if (eregi('win',$agent) && strpos($agent, '95')) { //
$os="windows 95";
}
elseif (eregi('win 9x',$agent) && strpos($agent, '4.90')) {
$os="windows me";
}
elseif (eregi('win',$agent) && ereg('98',$agent)) {

//开源

$os="windows 98";
}
elseif (eregi('win',$agent) && eregi('nt 5.0',$agent)) {
$os="windows 2000";
}
elseif (eregi('win',$agent) && eregi('nt',$agent)) {

//开源

$os="windows nt";
}
elseif (eregi('win',$agent) && eregi('nt 5.1',$agent)) {
$os="windows xp";
}
elseif (eregi('win',$agent) && ereg('32',$agent)) {

//开源

$os="windows 32";
}
elseif (eregi('linux',$agent)) {
$os="linux";
}
elseif (eregi('unix',$agent)) {
$os="unix"; //php一聚教程
}
elseif (eregi('sun',$agent) && eregi('os',$agent)) {
$os="sunos";
}
elseif (eregi('ibm',$agent) && eregi('os',$agent)) { //
$os="ibm os/2";
}
elseif (eregi('mac',$agent) && eregi('pc',$agent)) {
$os="macintosh";
}
elseif (eregi('powerpc',$agent)) { //
$os="powerpc";
}
elseif (eregi('aix',$agent)) {
$os="aix";
}
elseif (eregi('hpux',$agent)) {
$os="hpux";

//一聚教程

}
elseif (eregi('netbsd',$agent)) {
$os="netbsd";
}
elseif (eregi('bsd',$agent)) {
$os="bsd";
}
elseif (ereg('osf1',$agent)) {

//一聚教程

$os="osf1";
}
elseif (ereg('irix',$agent)) {
$os="irix";
}
elseif (eregi('freebsd',$agent)) {
$os="freebsd";

//

}
if ($os=='') $os = "unknown";
return $os;
}
//调用方法$os=os_infor() ;
?>

取得客户端ip地址
<?

//开源代码

function getip(){
             if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown"))
$ip = getenv("http_client_ip"); //开源
             else if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown"))
$ip = getenv("http_x_forwarded_for"); //
             else if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown"))
$ip = getenv("remote_addr");
             else if (isset($_server[@#remote_addr@#]) && $_server[@#remote_addr@#] && strcasecmp($_server[@#remote_addr@#], "unknown"))

//

$ip = $_server[@#remote_addr@#];
else
$ip = "unknown";
             return($ip);
}
?>

判断邮箱地址
<?
function checkemail($inaddress)
{
return (ereg("^([a-za-z0-9_-])+@([a-za-z0-9_-])+(.[a-za-z0-9_-])+",$inaddress));
}
?>

<?
function getip() { //获取ip
if ($_server["http_x_forwarded_for"])
$ip = $_server["http_x_forwarded_for"]; //
    else if ($_server["http_client_ip"])
$ip = $_server["http_client_ip"];
    else if ($_server["remote_addr"])
$ip = $_server["remote_addr"]; //
    else if (getenv("http_x_forwarded_for"))
$ip = getenv("http_x_forwarded_for");
    else if (getenv("http_client_ip"))
$ip = getenv("http_client_ip"); //
    else if (getenv("remote_addr"))
$ip = getenv("remote_addr");
    else
$ip = "unknown";
    return $ip;
}
?>

这里的日期操作函数有时间的增加,计算出给出的日期是星期几 ,检查日期是否合法日期  时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天

<?php
function dateadd($date, $int, $unit = "d") {

//时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
$datearr = explode("-", $date);
$value[$unit] = $int;

//

    return date("y-m-d", mktime(0,0,0, $datearr[1] + $value['m'], $datearr[2] + $value['d'], $datearr[0] + $value['y']));

//一聚教程网

}

function getweekday($date) {  //计算出给出的日期是星期几
$datearr = explode("-", $date);
    return date("w", mktime(0,0,0,$datearr[1],$datearr[2],$datearr[0]));

//

}
?>


<?
function check_date($date) { //检查日期是否合法日期
$datearr = explode("-", $date);
    if (is_numeric($datearr[0]) && is_numeric($datearr[1]) && is_numeric($datearr[2])) { //一聚教程网
        return checkdate($datearr[1],$datearr[2],$datearr[0]);
    }
    return false;
}
function check_time($time) {  //检查时间是否合法时间

//一聚教程网

$timearr = explode(":", $time);
    if (is_numeric($timearr[0]) && is_numeric($timearr[1]) && is_numeric($timearr[2])) {

//

        if (($timearr[0] >= 0 && $timearr[0] <= 23) && ($timearr[1] >= 0 && $timearr[1] <= 59) && ($timearr[2] >= 0 && $timearr[2] <= 59))

//php

            return true;
        else
            return false;
    }
    return false;
}


function datediff($date1, $date2, $unit = "") {

//时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天
//
switch ($unit) {
        case 's':
$dividend = 1;
            break;
        case 'i':
$dividend = 60;

            break;
        case 'h':
$dividend = 3600;
            break;
        case 'd':
$dividend = 86400;
            break; //
        default:
$dividend = 86400;
    }
$time1 = strtotime($date1);
$time2 = strtotime($date2);
    if ($time1 && $time2) //
        return (float)($time1 - $time2) / $dividend;
    return false;
}
?>

[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 解决vue的router组件component在import时不能使用变量问题

    这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13