首页 后端开发 php教程 php初学者常见问题总结

php初学者常见问题总结

Jul 25, 2016 am 09:12 AM

1,无法传递变量 get,post,session在最新的php 版本中自动全局变量是关闭的,所以要从上一面取得提交过来得变量要使用$_get[’foo’],$_post[’foo’],$_session[’foo’]来得到。当然也可以修改自动全局变量为开(php .ini改为register_globals = on);考虑到兼容性,还是强迫自己熟悉新的写法比较好。

2,win下apache 用get方法传递中文参数会出错: test.php ?a=你好&b=你也好 传递参数是会导致一个内部错误   解决办法:

  1. "test.php ?a=".urlencode(你好)."&b=".urlencode(你也好)
复制代码

3,win下的session不能正常工作 php .ini默认的session.save_path = /tmp 这显然是linux下的配置,win下php 无法读写session文件导致session无法使用,把它改成一个绝对路径就可以了,例如session.save_path = c:windows emp

4,显示错误信息 当php .ini的display_errors = on并且error_reporting = e_all时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php 写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽。

例如显示$foo,可以if(isset($foo)) echo $foo 或者echo @$foo

5,win下mail()不能发送电子邮件

在linux下配置好的sendmail可以发送,在win下需要调用smtp服务器 来发送电子邮件,修改php .ini的smtp = ip //ip是不带验证功能的smtp服务器 (网上很难找到)

php 发送邮件的最好解决方法是用socket直接发送到对方email服务器 而不用转发服务器 。

6,初装的mysql如果没有设置密码,应该使用update mysql.user set password="yourpassword" where user="root" 修改密码

7,header already sent 此错误常在使用header时出现,可能的原因:在使用header前pring或者echo了.你当前文件前面有空行.你可能include了一个文件,该文件尾部有空行或者输出也会出现这种错误。!

8,更改php .ini后没有变化   重新启动web server,比如iis,apache等等,然后才会应用最新的设置。

9,php 在00上面安装(isapi的安装方法恳请高手指教) php的php isapi.dll好像和00有些冲突,只能用cgi 模式安装 步骤一,先www.php .net 下在一个安装程序,我是装的是:php -..-installer.exe,也可以去找最新的版本,在安装php -..-installer.exe之前保证你的iis6.0启动了,并能够访问。安装好以后,在默认网站-->应用程序配置。 步骤二:点击 web服务扩展 -->新建web服务扩展。 步骤三: 扩展名-->php ,然后添加 步骤四:找到php .exe的路径添加上去。 步骤五: 确定就可以了! 步骤六: 选择php 的服务扩展,然后点击允许。

10,有时候sql语句不起作用,对数据库操作失败,最简便的调试方法,echo那句sql,看看变量的值能得到不。

11,include和require的区别 两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出。 据测试,win平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。或许*nux下情况不同,暂时还没测试。 如果一个文件不想被包含多次可以使用include_once或require_once## 读取,写入文档数据。

  1. function r($file_name) {
  2.  $filenum=@fopen($file_name,"r");
  3.  @flock($filenum,lock_sh);
  4.  $file_data=@fread($filenum,filesize($file_name));
  5.  @fclose($filenum);
  6.  return $file_data;
  7. }
  8. function w($file_name,$data,$method="w"){
  9.  $filenum=@fopen($file_name,$method);
  10.  flock($filenum,lock_ex);
  11.  $file_data=fwrite($filenum,$data);
  12.  fclose($filenum);
  13.  return $file_data;
  14. }
复制代码

12,isset()和empty()的区别 两者都是测试变量用的,但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空。 如果一个变量没被赋值就引用在php 里是被允许的,但会有notice提示,如果一个变量被赋空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。

要注销一个变量,可以用 unset($foo)或者$foo=null

13,mysql查询语句包含有关键字 php 查询mysql的时候,有时候mysql表名或者列名会有关键字,这时候查询会有错误。例如表名是order,查询时候会出错,简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别,例如select * from `order`

14,通过http协议一次上传多个文件的方法 有两个思路,是同一个方法的两种实现。具体程序还需自己去设计。 在form中设置多个文件输入框,用数组命名他们的名字,如下:

  1.   这样,在服务器 端做以下测试:
  2. echo "
    ";  
    登录后复制
    登录后复制
  3. print_r($_files);
  4. echo "";
复制代码

在form中设置多个文件输入框,但名字不同,如下:

复制代码

  在服务器 端做同样测试:

  1. echo "
    ";  
    登录后复制
    登录后复制
  2. print_r($_files);
  3. echo "";
复制代码


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

See all articles