免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2986 | 回复: 0

RESTful php web service 上的例子,为什么一直报错 [复制链接]

论坛徽章:
13
CU大牛徽章
日期:2013-03-14 14:14:082016科比退役纪念章
日期:2016-07-22 11:15:35数据库技术版块每日发帖之星
日期:2016-05-27 06:20:002015亚冠之吉达阿赫利
日期:2015-08-05 10:06:542015年亚洲杯之韩国
日期:2015-04-01 16:05:42双鱼座
日期:2014-11-13 11:04:24丑牛
日期:2014-07-25 17:29:54子鼠
日期:2014-04-25 12:25:45丑牛
日期:2014-04-17 08:35:48巨蟹座
日期:2014-04-16 16:50:05CU大牛徽章
日期:2013-03-14 14:14:29CU大牛徽章
日期:2013-03-14 14:14:26
发表于 2016-02-29 13:41 |显示全部楼层
本帖最后由 hmchzb19 于 2016-02-29 14:15 编辑

代码如下:
cat book.php
  1. <?php
  2. $link = mysql_connect('localhost', 'root', '******') or die('Could not
  3. connect: ' . mysql_error());
  4. mysql_select_db('bookstore') or die('Could not select database');
  5. header("Content-Type: text/xml");
  6. //check for the path elements
  7. if(isset($_SERVER['PATH_INFO'])){
  8.     $path=$_SERVER['PATH_INFO'] ;
  9. }
  10. #$path=isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO']:'';
  11. #echo($path);
  12. if($path!=null){
  13. #    $path_params=spliti("/",$path);
  14.     $path_params=explode('/',$path);
  15. }
  16. #print_r($path_params);
  17. if($_SERVER['REQUEST_METHOD']=='POST'){
  18.     $input=file_get_contents("php://input");
  19.     $xml=simplexml_load_string($input);
  20.     foreach($xml->book as $book){
  21.         $query="INSERT INTO book (name,author,isbn) VALUES ('$book->name','$book->author','$book->isbn')";
  22.         $result=mysql_query($query) or die('Query failed:' . mysql_error());
  23.         mysql_free_result($result);
  24.     }
  25. }
  26. else if($_SERVER['REQUEST_METHOD']=='GET'){
  27.     if($path_params[1]!=null){
  28.         settype($path_params[1],'integer');
  29.         $query="SELECT b.id, b.name,b.author, b.isbn FROM book as b where b.id=$path_params[1]";
  30.     }else{
  31.         $query='SELECT b.id, b.name,b.author, b.isbn FROM book as b';
  32.     }     
  33.     //Handle GET request, Return the list of books
  34.     //$query='SELECT b.id, b.name,b.author, b.isbn FROM book as b';
  35.     $result=mysql_query($query) or die("Query failed:" . mysql_error());
  36.     #echo "<document>";
  37.     echo "<books>";
  38.     while($line=mysql_fetch_array($result, MYSQL_ASSOC)){
  39.         echo "<book>";
  40.         foreach($line as $key=> $col_value){
  41.             echo "<$key>$col_value</$key>";
  42.         }
  43.         echo "</book>";
  44.     }
  45.     echo "</books>";
  46.     #echo "</document>";
  47.     mysql_free_result($result);
  48. }
  49. mysql_close($link);
  50. ?>
复制代码
本来的design是:我访问
GET http://localhost/php_site/library/book.php  看到所有的书。
GET http://localhost/php_site/library/book.php/1 能看到id为1 的书
但是我的这个代码现在变成了:
我必须要访问
GET http://localhost/php_site/library/book.php/ 才能看到所有的书。奇怪。
如果我GET http://localhost/php_site/library/book.php 就会报 " undefined path "
  1. [root@22062 library]# curl -v -H "Content-Type:text/xml" http://localhost/php_site/library/book.php
  2. * About to connect() to localhost port 80 (#0)
  3. *   Trying ::1...
  4. * Connected to localhost (::1) port 80 (#0)
  5. > GET /php_site/library/book.php HTTP/1.1
  6. > User-Agent: curl/7.29.0
  7. > Host: localhost
  8. > Accept: */*
  9. > Content-Type:text/xml
  10. >
  11. < HTTP/1.1 200 OK
  12. < Date: Mon, 29 Feb 2016 06:12:34 GMT
  13. < Server: Apache/2.4.6 (Red Hat Enterprise Linux) PHP/5.4.16
  14. < X-Powered-By: PHP/5.4.16
  15. < Content-Length: 518
  16. < Content-Type: text/xml
  17. <
  18. <br />
  19. <b>Notice</b>:  Undefined variable: path in <b>/selinux_test/php_site/library/book.php</b> on line <b>12</b><br />
  20. <br />
  21. <b>Notice</b>:  Undefined variable: path_params in <b>/selinux_test/php_site/library/book.php</b> on line <b>27</b><br />
  22. * Connection #0 to host localhost left intact
  23. <books><book><id>1</id><name>Book1</name><author>Auth1</author><isbn>ISBN0001</isbn></book><book><id>2</id><name>Book2</name><author>Auth2</author><isbn>ISBN0002</isbn></book><book><id>3</id><name>Book3</name><author>Auth3</author><isbn>ISBN0003</isbn></book></books>[root@22062 library]#
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP