第一次搭建网页
在本机 win8.1 上用 easyPHP dev 14.1 搭建服务器环境:PHP, Apache, MySQL
对照《PHP + MySQL 八大动态 Web 应用实战》书上的实例写一个博客类网站。
然而书成于08年,很多内容都已经跟不上时代了,导致一些莫名其妙的错误:
第一个就是:
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 编程,以上备忘。