网页链接URL出现的?是什么意思

使用$_GET[]获取URL字符串信息

1. 什么是查询字符串

如果读者浏览网页时足够仔细,就会发现有些URL后面经常会跟一些以“?”开头的字符串,这称为查询字符串。例如:

  http://ec.hynu.cn/otype.php?owen1=近期工作&page=2

其中,“?owen1=近期工作&page=2”就是一个查询字符串,它包含2个URL变量(owen1和page),而“近期工作”和“2”分别是这两个URL变量的值,URL变量和值之间用“=”连接,多个URL变量之间用“&”连接。

查询字符串会连同URL信息一起作为HTTP请求数据提交给服务器端的相应文件,例如,上面的查询字符串信息将提交给otype.php。利用$_GET[]可以获取查询字符串中变量的值。例如,在otype.php中编写如下代码,就能获取到这些查询变量的值了。

  <?
     $owen=$_GET["owen1"];      //获取变量owen1的值, 返回“近期工作”
     $page=$_GET["page"];       //获取变量page的值, 返回“2”
  ?>

2. 设置查询字符串的方法

当网页通过超链接或其他方式从一个网页跳转到另一个网页时,往往需要在跳转的同时把一些数据传递到第2个网页中。如果把这些数据作为查询字符串附在超链接的URL后,就可以在第2个网页中使用$_GET[]获取URL变量的值。例如:

<a href="search.php?key=Web标准&pageNo=5">查询结果第5页</a>

在超链接中设置查询字符串,示例代码如下,运行结果如图5-7和图5-8所示。
-----------5-8.php---------------------------------

<html><body>
  <ul>
    <li><a href="5-9.php?id=1">《电子商务安全》震撼上市</a></li>
    <li><a href="5-9.php?id=2">ASP动态网页设计与Ajax技术</a> </li>
    <li><a href="5-9.php?id=3">基于Web标准的网页设计与…</a> </li>
  </ul>
  </body></html>

-----------5-9.php---------------------------------

<?   $id=intval($_GET["id"]);         //获取URL字符串中变量id的值并转为整型
    if ($id==1)
       echo "<p>这是第一条新闻</p>";
    elseif ($id==2)
       echo "<p>这是第二条新闻</p>";
    elseif ($id==3)
       echo "<p>这是第三条新闻</p>";
    else   echo "<p>参数非法</p>";   ?>

5-8.php中所有链接都是链接到同一网页,只是设置了不同的URL变量值,就可以使5-9.php根据不同链接传来的不同id值显示对应的网页内容,实现了动态新闻网页效果。

② URL变量中的数据都是字符串类型的值,因此如果要对数值进行判断,最好先转换为数值型,这样可防止非法用户手工在URL后注入非法参数。

(2)在标记的action属性中设置查询字符串。示例代码如下

-----------5-10.php---------------------------------

<html><body>
  <?    $flag=$_GET["flag"];       //获取URL变量flag的值
 if ($flag=='1')
     echo '欢迎 '.$_POST['user']. ' 光临!';
 else       //没有按“提交”按钮时
     echo '<form method="post" action="?flag=1">
          姓名:<input name="user" type="text" size="15" />
          <input type="submit" value="提交" />
        </form>';      ?>
  </body></html>

在标记中,action='?flag=1' 省略了文件名表示将表单提交给自身,设置查询字符串flag=1用来判断用户是否按了“提交”按钮,一旦按了则URL地址后会增加"?flag=1",因此可据此输出不同的内容。

(3)设置查询字符串的方法总结。

如果要设置查询字符串,以便将查询字符串中的信息传递给相应网页,有以下方法。
① 在超链接的href属性值中的URL后添加查询字符串。
② 在表单的action属性值中的URL后添加查询字符串。
③ 直接在浏览器地址栏中的网页URL后手工输入查询字符串。
显然,普通用户不会使用方法③设置查询字符串,因此一般使用方法①或②诱导用户将URL变量传递给相关网页。

提示:表单如果设置为GET方式提交,那么表单中数据将转换成URL字符串发送给服务器。此时,若在表单的action属性值中也设置URL字符串,那么将发生冲突,action属性值中的URL字符串将无效。因此如果在action属性值中有URL字符串,则表单只能用POST方式提交

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值