手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

看到一篇误人子弟的PHP代码

首页 > PHP >

原文地址:http://hi.baidu.com/hi_bai_du_com/blog/item/fd297b89b318a8b20e24444a.html

原文:

PHP代码
  1. <?  
  2. /* 
  3. # 
  4. # 数据表的结构 `images` 
  5. # 
  6.  
  7. CREATE TABLE images ( 
  8.     picid int(3) NOT NULL auto_increment, 
  9.     picdata longblob NOT NULL, 
  10.     pictext varchar(100) NOT NULL default '', 
  11.     PRIMARY KEY    (picid) 
  12. ) TYPE=MyISAM; 
  13.  
  14. */  
  15. if(trim($picfile[0])!=""){  
  16.   $link=@mysql_connect("localhost","root","root");  
  17.   //连接,用你的具体连接名替换root,具体连接密码替换root  
  18.   if($link==false) {  
  19.     echo "<script>alert('连接数据库时发生错误,请稍后再试!')</script>";  
  20.   }  
  21.   $res=mysql_select_db("kkk");  
  22.   if($res==false){  
  23.     echo "<script>alert('打开数据库时发生错误,请稍后再试!')</script>";  
  24.   }  
  25.   $tmpset=0;  
  26.   // 存放成功加入的图片数目  
  27.   for($i=0;$i<=3;$i++){  
  28.     // picfile[i]存放所提交的图片信息(文件路径)  
  29.     if(trim($picfile[$i])!=""){  
  30.      //读取数据  
  31.       $fp=fopen($picfile[$i],"r");  
  32.       $picdata=fread($fp,filesize($picfile[$i]));  
  33.       fclose($fp);  
  34.       //加上必要的标志符号  
  35.       $picdata=addslashes($picdata);  
  36.       //用具体的数据表名代替images  
  37.       //pictext[i]存放所提交的图片的文字说明  
  38.       $qu="insert into images(picdata,pictext) values('$picdata','$pictext[$i]')";  
  39.       $res=@mysql_query($qu,$link);  
  40.          if($res==false){  
  41.            echo "<script>alert('图片 ".$i." 提交失败!')</script>";  
  42.            continue;  
  43.         }  
  44.       $tmpset=$tmpset+1;  
  45.     }  
  46.   }  
  47.   echo "<script>alert('操作成功!实际入库图片数 ".$tmpset." 张')</script>";  
  48. }  
  49. ?>  
  50. <html>  
  51. <head>  
  52. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
  53. <title>无标题文档</title>  
  54. </head>  
  55.   
  56. <body>  
  57. <form action="<? echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data" name="form1">  
  58. <input type="file" name="picfile[]">文件说明<input type="text" name="pictext[]"><br/>  
  59. <input type="file" name="picfile[]">文件说明<input type="text" name="pictext[]"><br/>  
  60. <input type="file" name="picfile[]">文件说明<input type="text" name="pictext[]"><br/>  
  61. <input type="file" name="picfile[]">文件说明<input type="text" name="pictext[]"><br/>  
  62. <input type="submit" name="Submit" value="提交">  
  63. </form>  
  64. </body>  
  65. </html>  

 

 

显示存在mysql中的图片
  1. <?  
  2. /* 
  3. * 在外部用<img src="displayimg.php?picid=1">来调用数据库中的第一张图片 
  4. */  
  5.   
  6. $link=@mysql_connect("localhost","root","root");  
  7. mysql_select_db("kkk");  
  8. $qu="select picid,picdata from images where picid=$picid";  
  9. $res=@mysql_query($qu,$link);  
  10. $num=mysql_num_rows($res);  
  11.   if($num==0){  
  12.     print "<br/><br/><br/>";  
  13.     print "<p><b>没有这张图片!</b></p>";  
  14.     exit();  
  15.   }  
  16. $row=@mysql_fetch_row($res);  
  17. header("Content-type:image/");  
  18. echo $row[1];  
  19. ?>  

——END——
仔细看看吧。。。是怎么误人子弟的。唉。
1、上传没有上传(大哥,你这是读本地文件呐,如果是这样的话,那。。。要那个enctype有啥用?)
2、变量直接全局(。。。。。。。。)
3、二进制字段是可以直接echo输出的吗??不谈别的,刚才你都addslashes了,为什么输出的时候没有stripslashes??
4、header头。。。。
5、for循环,直接就是3了。。这个居然就写死了
6、$tmpset的加法。。。都用了for了,用这个有意义吗??直接用$i不就完了?(这个就不算他的问题,算是习惯吧)
7、BLOB字段的插入。。。直接插的吗???看这里
MySQL 5 中 blob 类型字段的插入




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: php, 上传, 误人子弟

« 上一篇 | 下一篇 »

只显示10条记录相关文章

使用PHP得到所有的HTTP请求头 (浏览: 63608, 评论: 3)
我为什么会选用phpstorm (浏览: 53816, 评论: 5)
快速生成目录树 (浏览: 47616, 评论: 7)
通过file_get_contents来Post数据的实例 (浏览: 47268, 评论: 5)
PHP导入导出Excel方法 (浏览: 46091, 评论: 3)
PHP的XSS攻击过滤函数 (浏览: 43620, 评论: 2)
PHP中Eval的作用 (浏览: 42475, 评论: 4)
超详细:在Mac OS X中配置Apache + PHP + MySQL (浏览: 41820, 评论: 1)
PHP常见错误(二) (浏览: 40735, 评论: 1)
PHP sendmail (浏览: 38715, 评论: 7)

1条记录访客评论

wokao,这么差的代码,谁写的啊,还得谢谢膘叔老师的分析一一指出.大有长进.

Post by 懒宝宝 on 2008, August 13, 2:03 PM 引用此文发表评论 #1


发表评论

评论内容 (必填):