Re: [请益] 从php5.6跳到php7.1值得吗

楼主: tkdmaf (皮皮快跑)   2017-11-26 15:32:38
※ 引述《miniear (Littlear)》之铭言:
: 他说我们是作为一个开发者,而不是使用者...(这边我就雾煞煞了
: 又举例好几年前接案的客户自己请人来协助开发,结果那个人只会用framework跟mysqli
: ,没多久就走了...(我师父因此蛮得意的~
: 而且许多客户服务器也不能直接改用php7,
: 再者他深信php5是不会被淘汰的...
: 但也没有制止我继续去搞这些,
我还是用回文的讲一些事好了,当中会带出我写ios的经验。
你提到你师父对于使用框架跟mysqli的经验谈。
我想知道的是,他对mysqli有意见的话。
敢情他是使用pdo?
如果不是pdo而是mysql指令集的话。
那就表示关于sql injection的过滤他都要自己土砲了。
还是说……其实他并没有关注到sql injection的问题?
换个角度来看,php官方为什么要在php7时拔掉mysql指令集。
又为什么在php 5.6时就已经建议别在使用mysql指令集?
所以到底你觉得这边是该听你师父的?还是听官方的?
再来就谈框架好了。
我先说明,在ios的开发中,第三方元件库也是称之为framework。
其立意相当明白:听工程师直接解决繁锁而复杂的事。
如果没有这样的东西,就像我前阵子在刻的ios版的日历。
如果没有第三方元件库,我连底层都得自己来。
但因为有第三方元件库,引用之后我只要改好上层ui就好了。
就php来说,使用框架是有一些目的的。
1.以MVC架构来分离程式码和视图的分界,让程式设计师专注于开发,而网页设计师能
专注在画面的设计上。
2.提供良好的功能性类别及辅助函式来快速解决问题。
3.一致性的设计规范。
4.清析明确的统一架构内容。
5.官方统一制定的开发文件。
6.快速的设定。
7.方便的Active Record或ORM
8.第三方元件库的加载支援(composer)
9.较统一性质的命名原则。
10.良好的数据库迁移系统。
(后面就请大家继续补充吧!)
基本上,所谓土砲,也只是让你了解这些较核心功能的设计方法。
但前提是,你要有足够的时间来去研究,那都是在工作以外来再花时间的。
但如果你当下就要解决或满足客户的需求时。
你有那么多的时间来研究?还是善于利用资源来立刻解决你手上的问题?
讲白的,我其实也算是土砲组的。
因为我很喜欢“浪费时间”去研究那些东西到底在核心是怎么做出来的。
我也会想说要不要来“自干”一个一样的东西。
但问题是,真的在做客户的东西时。我还是会去找资源。
看什么东西能最快把问题处理掉。
什么东西都要自干出来其实是相当吃力不讨好的事情。
更重要的是:常常自干说得一口好方法的人………却常常到了新的专案还在自干。
徒然浪费更多的时间了。
我相信,等你跟着你师父越久……你就会发现越来越多问题。
但毕竟是前辈,你也不好直接反驳他。
只能说:那么你就当现在是学习,然后把自己的能力提到一个程度就闪人吧。
作者: miniear (Littlear)   2017-11-26 16:13:00
谢谢大大提点,今天才看你的pdo教学,这东西我是第一次听到...对你来说应该很扯吧,哈哈
作者: shadowjohn (转角遇到爱)   2017-11-26 16:49:00
pdo都出好几年了...还没用过就打屁股了
作者: miniear (Littlear)   2017-11-26 17:35:00
呵呵,我学得都是$result=mysql_query($sql); 不过用这个有比较差吗
作者: mimikillua   2017-11-26 17:43:00
比较不安全
作者: miniear (Littlear)   2017-11-26 18:43:00
看完t大的sql injection影片就明白了,谢谢~
作者: shadowjohn (转角遇到爱)   2017-11-26 20:38:00
标题都5.6->7.0,还在mysql_query…卡称天try7.1
作者: miniear (Littlear)   2017-11-27 00:00:00
我目前都是用5.6啊 7.1是想自己去学的
作者: crossdunk (推嘘自如)   2017-11-27 10:11:00
ok 你师父连pdo都没教你 块陶啊
作者: newversion (海纳百川)   2017-11-27 18:07:00
7.1用mysql_query ,不是杀鸡用牛刀,是杀蚂蚁用核弹@@
作者: xdraculax (首席怪叔叔)   2017-11-27 19:20:00
客户环境很常连5.6都没有,我是都定在5.3
楼主: tkdmaf (皮皮快跑)   2017-11-27 23:10:00
不是吧?7.1用mysql_query就好比给你核弹……只有壳!
作者: bakedgrass (蒙古烤小草)   2017-11-28 09:20:00
你跟着你师父结果PDO跟Injection都不知道,他就让你用mysql_query...这师父如果不是不专业就是不尽责7.1用mysql_query就是你身边有一堆好用的工具给你杀鸡结果你用一把随时会弹回来伤到你的小刀在杀
楼主: tkdmaf (皮皮快跑)   2017-11-28 11:39:00
重点是这把小刀还完全不利……
作者: newversion (海纳百川)   2017-11-28 12:48:00
mysql_query injection 随便Google就一堆了~~
作者: st1009 (前端攻城师)   2017-11-28 13:03:00
htmlentities($v,ENT_QUOTES,'utf-8');如果所有输入都用上面函式处理过,会不会安全点阿...因为我把相关函数弄成包了,不知道怎改成PDO...没时间研读其实最大的问题是$row = mysqli_fetch_assoc($result)我其他地方都是用这样子的函式去叫,改成PDO,要改很多档案的code... 不知道有没有可能PDO回传$result,可以这样叫
作者: shadowjohn (转角遇到爱)   2017-11-28 15:23:00
有,快去看php manual,然后快去改
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-11-28 15:53:00
对,快改,反正想办法用prepared statement
作者: tsao1211 (Sunday)   2017-11-28 17:51:00
现在学php,一定是要学pdo
作者: st1009 (前端攻城师)   2017-11-28 19:41:00
所以一样可以用$row = mysqli_fetch_assoc($result)喔?!php manual有写怎用嘛...我研究研究...我忽然觉得不该问有没有可能,应该问怎做 :P是说htmlentities有任何破绽嘛?我自我测试感觉其实超安全
作者: jonlee (Jon)   2017-11-30 09:51:00
htmlentities 跟 sql injection 不相干~ :)
作者: st1009 (前端攻城师)   2017-11-30 14:21:00
有关吧(?htmlentities($v,ENT_QUOTES,'utf-8');这样处理过之后,我这测试injection和XSS都pass
楼主: tkdmaf (皮皮快跑)   2017-11-30 17:34:00
其实对于输入有filter_input()这个函式可以用。所以在土砲状态时我都不使用$_POST来处理但不管怎么说,对于任意来源还是用pdo或mysqli来prepare一定必须要这样处理,因为这已经是最后一道防线了

Links booklink

Contact Us: admin [ a t ] ucptt.com