《php+mysql八大动态web应用实战》成书比较早,php中有些内容已经改变,如下代码:
1 2 3 4 5 6 7 8 |
if($_POST['submit']) { $db = mysql_connect($dbhost, $dbuser, $dbpassword); mysql_select_db($dbdatabase, $db); $sql = "INSERT INTO myblog_comments(blog_id, dateposted, name, comment) VALUES(" . $validentry . ", NOW(), '" . $_POST['name'] . "', '" . $_POST['comment'] . "');"; mysql_query($sql); header("Location: http://". $HTTP_HOST . $SCRIPT_NAME . "?id=" . $validentry); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<form action="<?php echo $SCRIPT_NAME . "?id=" . $validentry; ?>" method="post"> <table> <tr> <td>昵称</td> <td><input type="text" name="name"></td> </tr> <tr> <td valign="top">评论</td> <td><textarea name="comment" rows="10" cols="50"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value="提交评论"></td> </tr> </table> </form> |
会出现403错误,并在浏览器地址栏中报错如下:
Notice:Undefined variable: SCRIPT_NAME :...
$SCRIPT_NAME这个变量出了问题。网上搜了下,资料较少,没有搜到明确结果,不过看基本的写法都是 $_SERVER['SCRIPT_NAME'],大概是写法变了。
把上面的代码中$HTTP_HOST和$SCRIPT_NAME改为$_SERVER['HTTP_HOST']和$_SERVER['SCRIPT_NAME']即可。
博客能带货吗
Pingback: Apache web submit 403 error, access forbbiden, Undefined variable - Web前端 - 阿里欧歌