[公告] 痞客豐年終!萬元禮券限量送~[公告] 第一屆痞客邦金點賞登場!2014年最有影響力的部落格即將揭曉[公告] 痞客邦新服務上線 每日星座運勢測算【得獎名單公佈】[公告] 痞客邦應用市集全新改版![公告] 痞客邦「應用市集」新 App 上架-iFontCloud Professional

PHP  

PHP傳值 - POST和GET 的用法

做PHP最常碰到的就是利用網址傳值、以及送出表單的處理了。

 

◎GET:給網址傳值用的變數呼叫法

什麼是網址傳值?
比方說今天有一篇文章,它的編號是100,
而秀出文章的那個頁面假設叫 article_show.php
那麼我就可以直接用網址傳值:

article_show.php?aid=100

問號後面的是變數的名稱和值,
語法是:?變數=值&變數=值&變數=值
中間用&隔開。

所以說如果除了文章編號之外我想要再多加一些變數像是文章分類,
我就可以這樣用:

article_show.php?category=2&aid=100

也就是第2個分類第100篇文章

而要在php頁面的程式去抓取你網址傳來的值,
就是要使用$_GET,
比方此例就是$_GET['aid']
抓到的值就是100。
(也就是 echo $_GET['aid']; 印出來會是100)

當然如果單純用$aid也是可以抓得到,
但是之前我接聖約翰休健系的案子,
有一天忽然網頁全部失效,
後來發現就是出問題在變數上,
把接收網址傳值的變數全部修改回$_GET就正常了,
所以最好還是打完整以免有非預期的情形發生。

 

 

◎POST:給表單傳值用的變數呼叫法

至於表單傳值就是form的用法了,
比方今天我們在網頁上插入一個表單,
要使用者輸入帳號密碼,

當他按送出之後,
表單欄位就會傳值,

比方:

帳號:__________ ←假設這個文字欄位叫u_name

密碼:__________ ←假設這個文字欄位叫u_psw

        送出



等使用者按送出後,
要抓取到他輸入的值,
帳號那欄就是使用 $_POST['u_name']
同理,密碼那欄是 $_POST['u_psw']

假設使用者在 u_name 那欄輸入 belleaya
那在接收頁我們使用 echo $_POST['u_name'];
就可以印出 belleaya。


以上大概就是POST和GET的差異了。



 

 

 

Posted by belleaya (愛) at 痞客邦 PIXNET 留言(6) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (6)

Post Comment
  • php begianner
  • thank you for your sharing
    that's so meaningful !
  • 不客氣~~

    belleaya (愛) replied in 2013/01/10 21:10

  • eco336
  • 解釋得很差,看不下去。
    你連續解釋了兩個例子,但是沒說清楚誰是POST誰是GET。
    給出例子前最好先說你是解釋哪一個,否則大家聼得一塌糊塗。
  • 謝謝指正~我再看看怎麼修改比較ok

    belleaya (愛) replied in 2014/07/04 03:40

  • 尋解
  • 謝謝大大的分享. 我是個初學者. 最近看到書上有下面這樣子的送參數:
    <a href="blognew.php?blog_no=<?php echo$row_NewResponseRec['blog_no']; ?>#<?php echo $row_NewResponseRec['re_no']; ?>">
    作者好像是說那個#是錨點(但也沒有很清楚指名, 故可能也不是), 請問一下, 傳參數也可以一併傳錨點嗎? 傳錨點的作用是在幹什麼呢? 謝謝大大
  • 那個是html的語法~
    比方說
    點進這頁之後
    讓頁面直接跳到留言的話
    就是
    http://belleaya.pixnet.net/blog/post/30538510#comment-60400813
    他是在下面留言區有插入一個<a name="#comment-60400813"></a>
    這樣我在網址後面加入#comment-60400813
    他一點就會直接跳到下面留言區這樣~

    belleaya (愛) replied in 2014/11/21 21:12

  • 你好!請教一個問題 表單送出都是空白我寫的程式如下
  • .HTML
    <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>無標題文件</title>
    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <p>郵遞送出留言</p>
    <form id="form1" name="form1" method="post" action="send.php" Enctype="text/plain">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>帳號:<span id="sprytextfield1">
    <input type="text" name="text1" id="text1" />
    <label for="text1"></label>
    <span class="textfieldRequiredMsg">需要有一個值。</span></span></td>
    <td>密碼:<span id="sprytextfield2">
    <label for="text2"></label>
    <input type="text" name="text2" id="text2" />
    <span class="textfieldRequiredMsg">需要有一個值。</span></span></td>
    </tr>
    <tr>
    <td align="left" valign="top">姓名:<span id="sprytextfield3">
    <label for="text3"></label>
    <input type="text" name="text3" id="text3" />
    <span class="textfieldRequiredMsg">需要有一個值。</span></span></td>
    <td>您的職業:<br>
    <label>
    <input type="radio" name="RadioGroup1" value="資訊業" id="RadioGroup1_0" />
    資訊業</label>
    <br />
    <label>
    <input type="radio" name="RadioGroup1" value="軍警" id="RadioGroup1_1" />
    軍警</label>
    <br />
    <label>
    <input type="radio" name="RadioGroup1" value="公教" id="RadioGroup1_2" />
    公教</label>
    <br />
    <label>
    <input type="radio" name="RadioGroup1" value="學生" id="RadioGroup1_3" />
    學生</label>
    <br />
    <label>
    <input type="radio" name="RadioGroup1" value="工商" id="RadioGroup1_4" />
    工商</label>
    <br />
    <label>
    <input type="radio" name="RadioGroup1" value="其他" id="RadioGroup1_5" />
    其他</label>
    <br />
    </p></td>
    </tr>
    <tr>
    <td>電子信箱:<span id="sprytextfield4">
    <input type="text" name="text4" id="text4" />
    <span class="textfieldRequiredMsg">需要有一個值。</span><span class="textfieldInvalidFormatMsg">格式無效。</span></span></td>
    <td>您的網站:
    <input type="text" name="textfield" id="textfield" /></td>
    </tr>
    <tr>
    <td>來自何處:
    <select name"select_address">
    <option value="1">新北市</option>
    <option value="2">台北市</option>
    <option value="3">桃園縣</option>
    <option value="4">新竹縣</option>
    <option value="5">苗栗縣</option>
    <option value="6">台中縣</option>
    <option value="7">台中市</option>
    <option value="8">南投縣</option>
    <option value="9">彰化縣</option>
    <option value="10">雲林縣</option>
    <option value="11">嘉義縣</option>
    <option value="12">台南縣</option>
    <option value="13">高雄縣</option>
    <option value="14">高雄市</option>
    <option value="15">屏東縣</option>
    <option value="16">宜蘭縣</option>
    <option value="17">花蓮縣</option>
    <option value="18">台東縣</option>
    <option value="19">金門縣</option>
    <option value="20">馬祖縣</option>
    <option value="21">澎湖縣</option>
    </select>
    </td>
    <td>(上網的國家、地區、縣市或網頁名稱) </td>
    </tr>
    <tr>
    <td>您是如何知道本網站的:
    <select name"select_where">
    <option value="1">由搜尋引擎連結來的</option>
    <option value="2">台北市</option>
    <option value="3">桃園縣</option>
    <option value="4">新竹縣</option>
    <option value="5">苗栗縣</option>
    <option value="6">台中縣</option>
    <option value="7">台中市</option>
    <option value="8">南投縣</option>
    <option value="9">彰化縣</option>
    <option value="10">雲林縣</option>
    <option value="11">嘉義縣</option>
    <option value="12">台南縣</option>
    <option value="13">高雄縣</option>
    <option value="14">高雄市</option>
    <option value="15">屏東縣</option>
    <option value="16">宜蘭縣</option>
    <option value="17">花蓮縣</option>
    <option value="18">台東縣</option>
    <option value="19">金門縣</option>
    <option value="20">馬祖縣</option>
    <option value="21">澎湖縣</option>
    </select>
    </td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>請將您寶貴的意見或想法告訴我:</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td colspan="2"><textarea name="textarea" id="textarea" cols="100" rows="5"></textarea></td>
    </tr>
    <tr>
    <td align="center" valign="middle"><input type="submit" name="button" id="button" value="送出表單"/></td>
    <td align="center" valign="middle"><input type="reset" name="button2" id="button2" value="重設" /></td>
    </tr>
    </table>
    </form>
    <script type="text/javascript">
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1");
    var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2");
    var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3");
    var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "email");
    </script>
    </body>
    </html>

    .PHP
    <?php
    $message = "
    帳號:$_POST[text1]
    密碼:$_POST[text2]
    姓名:$_POST[text3]
    您的職業:$_POST[RadioGroup1]
    電子信箱:$_POST[text4]
    您的網站:$_POST[textfield]
    來自何處:$_POST[select_address]
    如何知道:$_POST[select_where]
    留言:$_POST[textarea]
    ";
    mb_internal_encoding("UTF-8");
    mb_send_mail("aquariusss0129@gmail.com", "留言資料", $message ,"From:send");
    echo $_POST["text1"];echo $_POST["text2"];
    ?>
    <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>無標題文件</title>
    <meta http-equiv="refresh" content="3; url=23.html">
    </head>

    <body>
    已成功寄出
    </body>
    </html>

  • 因為你有打錯程式~

    <select name"select_address">
    要改成
    <select name="select_address">


    <select name"select_where">
    要改成
    <select name="select_where">


    其他的我測試都有抓到值
    所以沒有收到值可能是mail函式的問題唷~

    belleaya (愛) replied in 2014/11/21 21:25

  • A君
  • 想請問一下如果網址上的變數沒有輸入.例如下面:
    http://www.abc.com/abc.php
    正確的應該是如下的:
    http://www.abc.com/abc.php?code=10
    可以有個方法查到到沒有定義的code數和定義他呢?
    謝謝你了
  • 如果是要看別人寫的變數的話
    我就不太知道要怎麼弄了
    因為直接看server上的php檔的話
    就是只有html碼看得到

    不知道你是不是想問這個說~~

    belleaya (愛) replied in 2014/12/18 13:59

  • 尋解
  • 謝謝大大回覆我的問題
  • 不客氣~

    belleaya (愛) replied in 2014/12/18 13:59

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options