想起十年前第一次碰PHP时闹的笑话,今天就聊聊怎么让小白少走点弯路。那会儿我连环境都配不明白,愣是把记事本当IDE用了大半年。
第一步:死磕环境安装
掏出老Mac装MAMP,启动时Apache报错直接傻眼。翻垃圾桶日志发现端口被占,原来系统自带Apache在偷偷运行。终端输sudo apachectl stop才搞定,新手装XAMPP最省心。
- 踩坑1:用PHP7.4+别图省事,mysql_函数早废了
- 踩坑2:别用中文当安装路径,报错全是天书
- 救命招:phpinfo()页面务必截图保存
第二步:跟数据库干架
phpMyAdmin建库像走迷宫,字段类型选错直接崩盘。有回给用户表用TINYTEXT存头像路径,传大图时数据全变问号。现在直接无脑三步走:
- 创建叫test_db的数据库
- 建users表塞id/name/password三个字段
- 密码字段记得勾VARCHAR(255)
第三步:手搓登录页面
表单代码里忘写method="post",提交时密码全暴露在地址栏。最蠢的是验证页面写死$_GET["password"],测试时输123456死活登不进。
血泪教训写在这:
- 提交按钮别用
- 验证码功能头月先别碰
- $_POST接值后必须trim()
第四步:连接数据库修罗场
mysqli_connect()参数填错二十遍,要么主机名写127.0.0.1不认,要么把密码当库名传。有次半夜查到三点才发现MySQL服务根本没启动。现在养成的肌肉记忆:
$conn = new mysqli("localhost", "root", "密码空着试试", "test_db");
if ($conn->connect_error) {
die("崩盘提示:" . $conn->connect_error);
第五步:漏洞防翻车
早期作品全被SQL注入干爆过。有回把$_POST["username"]直接拼进SQL,别人输" 'or '1'='1 "直接进管理员后台。现在处理用户输入必做三件事:
- $name = htmlspecialchars($_POST["name"]);
- $pass = password_hash($_POST["pass"], PASSWORD_DEFAULT);
- SQL语句用?占位符预处理
测试时故意在密码框输,页面弹出警告那刻,就知道今晚又要通宵改代码了。不过能看见自己的渣页面终于能注册登录,比当年学会骑自行车还爽。





