当 HTML 表单 (HTML Form) 的 method 为 get 时 , $_GET 用来获取 HTML Form 的数据。
获取 HTML 表单 (HTML Form) 文本输入框 (input type="text") 数据
下面是一个 HTML 文件,这个 HTML 含有一个 HTML 表单 (HTML Form),主要用来让用户输入用户姓名的。
<html>
<head><title>Blablar.com HTML Form Method Get Example</title></head>
<body>
<form action ="get.php" method ="get">
Name: <input type="text" name="username" />
<input type ="submit" value="ok" />
</form>
</body>
</html>
该 HTML 的显示界面如下:
当你在这个 HTML 文件的表单文本框输入框里输入姓名,比如 "Jacky",然后鼠标点击ok 按钮,会跳转到 get.php,在 get.php 里会显示如下图。
get.php 的源代码如下:
<html>
<head><title>Blablar.com PHP $_GET Example</title></head>
<body>
You are <?php echo $_GET["username"]?>.
</body>
</html>
取表单控件的 name 值,可以获得该表单控件的数据。
比如 "username" 就是表单控件文本输入框的 name 值,
<input type="text" name="username" />
用 $_GET["username"] 可以获得该文本输入框的数据。
<?php
echo $_GET["username"]
?>
获取 HTML 表单 (HTML Form) 单选框 (input type="radio") 数据
取表单单选框的 name 值,可以获得表单单选框的值。
下面是一个含有表单单选框的 HTML 文件,代码如下:
<html>
<head><title>Blablar.com</title></head>
<body>
<form action = "radio.php" method = "get">
<input type="radio" name="fruit" value = "Apple">Apple</input><br />
<input type="radio" name="fruit" value = "Orange">Orange</input><br />
<input type="radio" name="fruit" value = "Mango">Mango</input><br />
<input type="submit" value="ok">
</form>
</body>
</html>
图示如下:
在该HTML 文件里,随便选择一项,比如选择 "Orange",然后点击按钮 ok,浏览器会跳转到 radio.php,在 radio.php 里的显示结果是 "Orange"。radio.php 的源代码如下:
<html>
<head><title>Blablar.com</title></head>
<body>
<?php echo $_GET["fruit"]?>
</body>
</html>
$_GET["fruit"]中的fruit 是表单单选框的 name 值。
获取 HTML 表单 (HTML Form) 复选框 (input type="checkbox") 数据
用户可以通过 HTML Form 复选框选择多个值,所以 $_GET 得到的不止一个值,是个数组。
在写 HTML Form 复选框的 name 值时注意,name 值最后要加上[ ]。
如下示例,name="fruit[ ]":
<html>
<head><title>Blablar.com</title></head>
<body>
<form action = "checkbox.php" method = "get">
<input type="checkbox" name="fruit[ ]" value = "Apple">Apple</input><br />
<input type="checkbox" name="fruit[ ]" value = "Orange">Orange</input><br />
<input type="checkbox" name="fruit[ ]" value = "Mango">Mango</input><br />
<input type="submit" value="ok">
</form>
</body>
</html>
该HTML 文件显示结果如图:
如果你选择Orange和Mango,并点击OK按钮,浏览器会跳转到 checkbox.php,并显示如图结果。
checkbox.php 的源代码如下:
<html>
<head><title>Blablar.com</title></head>
<body>
<?php
echo count($_GET["fruit"]),"<br />";
foreach ($_GET["fruit"] as $value)
{echo $value,"<br />";
}
?>
</body>
</html>
用 count 函数得到数组$_GET["fruit"]的元素个数,如果用户选了2项,得到的结果就是2。然后用 foreach 循环输出$_GET["fruit"]每个元素的值,也就是用户所选项目的值,Orange和Mango。
下一章节我们讲述用 PHP 超级变量 $_POST 获取 HTML 表单 (HTML Form) 的数据。
PDO(PHP Data Objects)是一个轻量级的PHP扩展,提供了一个数据访问抽象层。还要就是PDO只能在PHP5.0以上版本使用。
下面来介绍一下PDO常用的预定义常量:
PDO::PARAM_BOOL (integer) 表示布尔数据类型
PDO::PARAM_NULL (integer) 表示数据类型为NULL的SQL
PDO::PARAM_INT (integer) 表示为integer数据类型的SQL
PDO::PARAM_STR (integer) 表示为char varchar 或者其他字符串的数据类型的SQL
PDO::PARAM_LOB (integer) 表示对象数据类型的SQL
PDO::FETCH_LAZY (integer) 指定的获取方式,应当返回结果集的每一行作为一个对象的变量名,对应于它的字段名
PDO::FETCH_ORI_NEXT (integer) 取结果集的下一行
PDO::FETCH_ORI_PRIOR (integer) 取结果集的前面的行
PDO::FETCH_ORI_FIRST (integer) 取结果集的第一行
PDO::FETCH_ORI_LAST (integer) 取结果集的最后一行
PDO::ATTR_PERSISTENT (integer) 创建一个持久连接,而不是新创建一个连接
PDO的基本用法:
使用PDO与数据库连接(这里只使用MySQL):
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
下面的代码是对MySQL连接错误时的处理:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
下面是两个重复使用插入语句的例子:
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
对数据库进行查询操作:
<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
?>
语法
setcookie(name, value, expire, path, domain);
**
* 设置cookie
* n 名称
* c 值
* e 有效期 0 默认 一个月 1 关闭立即失效
*/
function w_cookie($n, $c, $e = 0,$isdes=1)
{
if($isdes==1){$c=endes($c,deskey);}
$exp = time() + 3600 * 24 * 30;
if($e == 0)
{
setcookie($n, $c, $exp,"/");
}
else
{
setcookie($n, $c,0,"/");
}
}
//关闭cookie方法
w_cookie('bb', 'www.3ppt.com', $e = 0,$isdes=1);
<?php
function set_cronology($name,$value,$duration=7){
$duration=time()+(3600*24*$duration);
$max_stored_values=5;
if(isset($_cookie[$name])){
foreach($_cookie[$name] as $prop_crono=>$val_crono){
if($val_crono==$value)
return;
}
if($prop_crono<$max_stored_values)
setcookie($name.'['.($prop_crono+1).']',$value,$duration);
else{
array_shift($_cookie[$name]);
setcookie("$name[$max_stored_values]",$value,$duration);
}
}else
setcookie($name.'[0]',$value,$duration);
return;
}
?>
注释:setcookie() 函数必须位于 <html> 标签之前。在发送 cookie 时,cookie 的值会自动进行 url 编码,在取回时进行自动解码(为防止 url 编码,请使用 setrawcookie() 取而代之)。