仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1305|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP教程:php内置函数intval()

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:43:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。   </p> 1、描写 intval函数有个特征:"直到赶上数字或正负符号才入手下手做转换,再碰到非数字或字符串停止时(\0)停止转换",在某些使用法式里因为对intval函数这个特征熟悉不敷,毛病的利用招致绕过一些平安判别招致平安破绽.
2、剖析
    PHP_FUNCTION(intval)
  {
  zval **num, **arg_base;
  int base;
  switch (ZEND_NUM_ARGS()) {
  case 1:
  if (zend_get_parameters_ex(1, &num) == FAILURE) {
  WRONG_PARAM_COUNT;
  }
  base = 10;
  break;
  case 2:
  if (zend_get_parameters_ex(2, &num, &arg_base) == FAILURE) {
  WRONG_PARAM_COUNT;
  }
  convert_to_long_ex(arg_base);
  base = Z_LVAL_PP(arg_base);
  break;
  default:
  WRONG_PARAM_COUNT;
  }
  RETVAL_ZVAL(*num, 1, 0);
  convert_to_long_base(return_value, base);
  }
  Zend/zend_operators.c->>convert_to_long_base()
  ……
  case IS_STRING:
  strval = Z_STRVAL_P(op);
  Z_LVAL_P(op) = strtol(strval, NULL, base);
  STR_FREE(strval);
  break;

当intval函数承受到字符串型参数是挪用convert_to_long_base()处置,接上去挪用Z_LVAL_P(op) = strtol(strval, NULL, base);经由过程strtol函数来处置参数。
函数原型以下:
  long int strtol(const char *nptr,char **endptr,int base);
这个函数会将参数nptr字符串依据参数base来转换生长整型数,参数base局限从2至36,或0.参数base代表采取的进制体例,如base值为10则采取10进制,若base值为16则采取16进制等。
流程为:
strtol()会扫描参数nptr字符串,跳过后面的空格字符,直到赶上数字或正负符号才入手下手做转换,再碰到非数字或字符串停止时(\0)停止转换,并将了局前往。
那末当intval用在if等的判别外面,将会招致这个判别实去意义,从而招致平安破绽.
3、测试代码
    //intval.php
  $var="20070601";
  if (intval($var))
  echo "it's safe";
  echo '$var='.$var;
  echo "
  ";
  $var1="1 union select 1,1,1 from admin";
  if (intval($var1))
  echo "it's safe too";
  echo '$var1='.$var1;

4、实践使用
  WordPress <= 2.0.6 wp-trackback.php Zend_Hash_Del_Key_Or_Index / sql injection exploit
编纂收拾整顿
在我开始学习PHP以前,我从未想过要做软件工程,即便是在去听过华育国际的关于软件工程的美好前景后,因为我一直都没有想过要与代码打交道,而是想学好所学专业,做个网络工程师或者是网络安全人员。
分手快乐 该用户已被删除
沙发
发表于 2015-2-4 06:11:53 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
透明 该用户已被删除
板凳
发表于 2015-2-7 02:25:21 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
老尸 该用户已被删除
地板
发表于 2015-2-7 13:36:46 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-8 16:35:42 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
再见西城 该用户已被删除
6#
发表于 2015-2-9 20:32:50 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
柔情似水 该用户已被删除
7#
发表于 2015-2-18 16:45:03 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
金色的骷髅 该用户已被删除
8#
发表于 2015-2-25 15:58:30 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-1 10:58:46 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
若天明 该用户已被删除
10#
发表于 2015-3-4 10:46:17 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
深爱那片海 该用户已被删除
11#
发表于 2015-3-11 18:20:17 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
不帅 该用户已被删除
12#
发表于 2015-3-19 06:40:30 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
乐观 该用户已被删除
13#
发表于 2015-3-20 22:19:18 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
只想知道 该用户已被删除
14#
发表于 2015-4-14 17:46:48 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
精灵巫婆 该用户已被删除
15#
发表于 2015-4-25 09:06:40 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
admin 该用户已被删除
16#
发表于 2015-5-7 22:30:05 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
变相怪杰 该用户已被删除
17#
发表于 2015-7-13 08:08:09 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
小魔女 该用户已被删除
18#
发表于 2015-7-14 10:37:48 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
蒙在股里 该用户已被删除
19#
发表于 2015-7-18 23:24:53 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表