Apache web submit 403 error, access forbbiden, Undefined variable

第一次搭建网页

在本机 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 编程,以上备忘。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值