码迷,mamicode.com
首页 > 数据库 > 详细

Apache web submit 403 error, access forbbiden, Undefined variable

时间:2015-06-20 11:59:05      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

第一次搭建网页

在本机 win8.1 上用 easyPHP dev 14.1 搭建服务器环境:PHP, Apache, MySQL

对照《PHP + MySQL 八大动态 Web 应用实战》书上的实例写一个博客类网站。

然而书成于08年,很多内容都已经跟不上时代了,导致一些莫名其妙的错误:

第一个就是:
PHP mysql_connect() 函数

Note:
本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL:选择 API 指南以及相关 FAQ 以获取更多信息。用以替代本函数的有:
?mysqli_connect()
?PDO::__construct()

    // $db = mysql_connect($dbhost, $dbuser, $dbpassword);
    // mysql_select_db($dbdatabase, $db);
    $link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbdatabase);


类似的还有不少 mysql_ 开头函数导致 warning: depricated.

解决方法:http://www.ttlsa.com/php/deprecated-mysql-connect/


第二个就是:

提交表单时会提示 403:Access forbidden 的错误。一般在这个错误提示下我们就会检查文件权限问题,网上也给出了一堆解决方法,什么修改 Apache 配置文件设置权限啥的

但实际上提交表单后会通过 header("Location: ") 函数重定位到本文件 SCRIPT_NAME,在提交表单前网页能够正确的显示,提交表单重定位到自己文件后却有权限问题,这让人费解。

如果此时在未提交表单页面上查看源文件,看看服务器上经过 PHP 解释器的输出,会发现:

<form action = "<br />
<b>Notice</b>:  Undefined variable: SCRIPT_NAME in <b>C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\bigdataweb\viewentry.php</b> on line <b>85</b><br />
?id=1" method = "post">

Undefined variable SCRIPT_NAME;

查找资料发现:

PHP错误:Notice:Undefined variable: SCRIPT_NAME 写到:

$SCRIPT_NAME这个变量出了问题。网上搜了下,资料较少,没有搜到明确结果,不过看基本的写法都是 $_SERVER[‘SCRIPT_NAME‘],大概是写法变了。
把上面的代码中$HTTP_HOST和$SCRIPT_NAME改为$_SERVER[‘HTTP_HOST‘]和$_SERVER[‘SCRIPT_NAME‘]即可。

修改后果然就能够顺利提交表单了。

对于迭代快速的技术,应该选择新近的书籍或者资料来阅读,以免发生这种尴尬的情形。

初次接触 web 编程,以上备忘。



Apache web submit 403 error, access forbbiden, Undefined variable

标签:

原文地址:http://blog.csdn.net/nothinglefttosay/article/details/46572161

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!