踩坑学php(1)
前言:
为什么要学php 呢?作为一个前端,一直有着了解后台的好奇心;作为一个计算机毕业的,一直有着实践更多设计模式和数据库相关的东西;而php 非常流行,拥有非常多的资源,入门应该容易;
为什么叫《踩坑学php》?因为每一次的踩坑就是一次提高,填坑就是在实现程序员价值;另外,正因为坑是如此的让人痛苦,足以刺激我早已被塞满的大脑,再次学习新东西;
为什么写blog?因为我在尝试一种新的学习方法,有目标,有计划、系统性地学习;
正文:
前几天开始学习php 的,花了一点时间看了w3school 的php 教程,大概知道很基础很基础的语法;
然后百度了一个php 简单项目开始研究项目代码:https://github.com/udoless/phpbeginner_gmanage
然后是搭建开发环境,使用xampp 是比较简单的,百度了教程
然后就是坑了:
index.php 里面的 seesion_start(); 前面是有html 代码的,和其他教程里面提到的不一样啊?为什么(windows)可以正常运行啊?
果然后来在mbp 上重新部署了代码就出错了:
Warning: Cannot modify header information - headers already sent by
好吧,找参考:
http://blog.csdn.net/FuDesign2008/article/details/6434044
最后是通过改php.ini 的session.auto_start = 1 ,成功的;
虽然只是改一个值,当中已经涉及了相当多的东西了
- 有一个叫php.ini 的文件,竟然是负责编译器的配置信息,这在前端是不存在,说方便也方便,但要里面的东西,要多痛苦的经历才能背下来啊?
- php 的执行流程
PHP脚本开始执行时,它可以同时发送header(标题)信息和主体信息。 Header信息(来自 header() 或 SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中。 这样就可以允许你修改标题信息,包括缺省的标题(例如 Content-Type 标题)。但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML, print()或echo 调用),那么PHP就必须先发送完所有的Header,然后终止 HTTP header。而后继续发送主体数据。从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。
而session 又在header 里面,所以,挂了;(推断 windows 的xampp 默认session.auto_start = 1;)
然后找了一些php 的知识架构:
- http://pan.baidu.com/s/1hq9ANsg
- http://www.zhihu.com/question/19875503
然后在我的php 知识结构图里面画上了第一笔:
http://naotu.baidu.com/file/96c9ce7895576faf6069855875c6ec63?token=f18bc64953c0bd2a
参考:
- w3school:http://www.w3school.com.cn/php/
- php.ini:http://php.net/manual/zh/ini.list.php
- php 执行流程:http://blog.163.com/lgh_2002/blog/static/44017526201033115937532/
踩坑学php(1)的更多相关文章
- 记jQuery.fn.show的一次踩坑和问题排查
最近很少已经很少用jQuery,因为主攻移动端,常用Zepto,其实很多细节和jQuery并不一样.最近又无意中接触到了PC的需求和IE6, 使用了jQuery,刚好踩坑了,特意记录一下. 本文内容如 ...
- 『审慎』.Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历
异步Task简单介绍 本标题有点 哗众取宠,各位都别介意(不排除个人技术能力问题) —— 接下来:我将会用一个小Demo 把 本文思想阐述清楚. .Net 4.0 就有了 Task 函数 —— 异步编 ...
- .NetCore&Linux&Docker&Portainer踩坑历险记
最近有一个云服务器和数据库的迁移任务,踩坑爬坑无数次,觉得必须要记录一下.大家瓜子花生准备好,听我慢慢讲故事#手动笑哭#. 故事背景 公司是做电商业务的,在天猫有几家旗舰店数据量也很大.阿里有一个称为 ...
- 微信小程序踩坑集合
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...
- ABP框架入门踩坑-使用MySQL
使用MySQL ABP踩坑记录-目录 起因 因为我自用的服务器只是腾讯云1核1G的学生机,不方便装SQL Server,所以转而MySQL. 这里使用的MySQL版本号为 8.0. 解决方案 删除Qi ...
- Faster_Rcnn在windows下运行踩坑总结
Faster_Rcnn在windows下运行踩坑总结 20190524 今天又是元气满满的一天! 1.代码下载 2.编译 3.下载数据集 4.下载pre-train Model 5.运行train ...
- Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历
Net4.6 Task 异步函数 比 同步函数 慢5倍 踩坑经历 https://www.cnblogs.com/shuxiaolong/p/DotNet_Task_BUG.html 异步Task简单 ...
- Java踩坑之路
陆陆续续学Java也快一年多了,从开始的一窍不通到现在的初窥门径,我努力过,迷茫过,痛过,乐过,反思过,沉淀过.趁着新年,我希望能把这些东西记下来,就当是我一路走来的脚印. 一.初识网站应用 记得第一 ...
- Go“一个包含nil指针的接口不是nil接口”踩坑
最近在项目中踩了一个深坑--"Golang中一个包含nil指针的接口不是nil接口",总结下分享出来,如果你不是很理解这句话,那推荐认真看下下面的示例代码,避免以后写代码时踩坑. ...
随机推荐
- Windows7下MySQL5.6.15免安装版的配置(来自yang362046076)
1.下载mysql-5.5.20-win32.zip,解压到D:\dev,D盘的dev文件夹下就会出现mysql-5.5.20-win32目录,将其重命名为mysql. 2.配置MYSQL的环境变量 ...
- [原]C++关于运算符重载的程序报错error…
错误信息如下: 1>t2.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Date::Date(void)" (??0D ...
- 【转】对memcached使用的总结和使用场景
原文连接:http://blog.csdn.net/ajun_studio/article/details/6745791# 原文作者:halfMe 转载注明以上信息! 1.memcached是什么 ...
- class A<T>where T
where表明了对类型变量T的约束关系.where T: A表示类型变量是继承于A的,或者是A本身.where T:new()指明了创建T的实例时应该使用的构造函数.
- instancetype和id的区别
一.什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以 ...
- Ubuntu14.04安装PostpreSQL9.3.5记录
安装参考:http://www.postgresql.org/download/linux/ubuntu/ y@y:~$ sudo apt-get install postgresql-9.3 pos ...
- USB系列之九:基于ASPI的U盘驱动程序
USB系列之七和之八介绍了ASPI,并通过一些实例说明了基于ASPI的编程方法,本文使用前两篇文章介绍的知识以及以前介绍的有关DOS驱动程序下驱动程序的内容实际完成一个简单的基于ASPI的U盘驱动程序 ...
- mysql服务的注册,启动、停止、注销。 [delphi代码实现]
unit Service; interface uses Windows,Classes,SysUtils,Winsvc,winsock; Type {服务句柄信息} TScmInfo=Record ...
- JDBC的使用——Statement
JDBC是Java最基本的数据库操作途径,虽然现在有了更高端的Hibernate和JPA,但是其实它们的底层还是用的这些最基本的JDBC.而且,如果开发一个小型的应用程序,使用Hibernate不免有 ...
- cf479D Long Jumps
D. Long Jumps time limit per test 1 second memory limit per test 256 megabytes input standard input ...