- 论坛徽章:
- 13
|
本帖最后由 hmchzb19 于 2016-02-29 14:15 编辑
代码如下:
cat book.php- <?php
- $link = mysql_connect('localhost', 'root', '******') or die('Could not
- connect: ' . mysql_error());
- mysql_select_db('bookstore') or die('Could not select database');
- header("Content-Type: text/xml");
- //check for the path elements
- if(isset($_SERVER['PATH_INFO'])){
- $path=$_SERVER['PATH_INFO'] ;
- }
- #$path=isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO']:'';
- #echo($path);
- if($path!=null){
- # $path_params=spliti("/",$path);
- $path_params=explode('/',$path);
- }
- #print_r($path_params);
- if($_SERVER['REQUEST_METHOD']=='POST'){
- $input=file_get_contents("php://input");
- $xml=simplexml_load_string($input);
- foreach($xml->book as $book){
- $query="INSERT INTO book (name,author,isbn) VALUES ('$book->name','$book->author','$book->isbn')";
- $result=mysql_query($query) or die('Query failed:' . mysql_error());
- mysql_free_result($result);
- }
- }
- else if($_SERVER['REQUEST_METHOD']=='GET'){
- if($path_params[1]!=null){
- settype($path_params[1],'integer');
- $query="SELECT b.id, b.name,b.author, b.isbn FROM book as b where b.id=$path_params[1]";
- }else{
- $query='SELECT b.id, b.name,b.author, b.isbn FROM book as b';
- }
- //Handle GET request, Return the list of books
- //$query='SELECT b.id, b.name,b.author, b.isbn FROM book as b';
- $result=mysql_query($query) or die("Query failed:" . mysql_error());
- #echo "<document>";
- echo "<books>";
- while($line=mysql_fetch_array($result, MYSQL_ASSOC)){
- echo "<book>";
- foreach($line as $key=> $col_value){
- echo "<$key>$col_value</$key>";
- }
- echo "</book>";
- }
- echo "</books>";
- #echo "</document>";
- mysql_free_result($result);
- }
- mysql_close($link);
- ?>
复制代码 本来的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 "- [root@22062 library]# curl -v -H "Content-Type:text/xml" http://localhost/php_site/library/book.php
- * About to connect() to localhost port 80 (#0)
- * Trying ::1...
- * Connected to localhost (::1) port 80 (#0)
- > GET /php_site/library/book.php HTTP/1.1
- > User-Agent: curl/7.29.0
- > Host: localhost
- > Accept: */*
- > Content-Type:text/xml
- >
- < HTTP/1.1 200 OK
- < Date: Mon, 29 Feb 2016 06:12:34 GMT
- < Server: Apache/2.4.6 (Red Hat Enterprise Linux) PHP/5.4.16
- < X-Powered-By: PHP/5.4.16
- < Content-Length: 518
- < Content-Type: text/xml
- <
- <br />
- <b>Notice</b>: Undefined variable: path in <b>/selinux_test/php_site/library/book.php</b> on line <b>12</b><br />
- <br />
- <b>Notice</b>: Undefined variable: path_params in <b>/selinux_test/php_site/library/book.php</b> on line <b>27</b><br />
- * Connection #0 to host localhost left intact
- <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]#
复制代码 |
|