在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询(二)
来源:互联网 发布:autocad软件销售合同 编辑:程序博客网 时间:2024/05/10 09:04
===> 如何一劳永逸的解决Cannot send session cache limiter - headers already sent 这种错误
当用header()转向或者session_start()之前有输出,会有Cannot send session cache limiter - headers already sent的错误,可以用ob_start(),这样会在页面全部执行完毕才输出.
- <?php
- session_start();
- ob_start();
- ...
- ?>
===> 如何表单填写错误时返回后以前填写的内容消失?
当使用session后会出现这种情况,我们可以使用session_cache_limiter();强制生效.
- <?php
- session_cache_limiter("private, must-revalidate");
- session_start();
- ...
- ?>
===> 判断邮件地址是否合法!
判断邮件地址是否合法!
- <?php
- if(!ereg("^[-a-zA-Z0-9_/.]+/@([0-9A-Za-z][0-9A-Za-z-]+/.)+[A-Za-z]{2,3}$",$mail_from)){
- echo "<script>alert('E-mail Error!');location.replace('javascript:history.back(1)');</script>";
- exit;
- }
- ?>
===> 数组存储到MySQL数据库
数组存储到mysql中要用serialize() 产生一个可存储的值
- <?php
- $array_in = serialize($data);
- ...
- ?>
出库时
- <?php
- ...
- $array_out = unserialize($data);
- ?>
===> 取来源页面地址
如果是通过<script language="javascript" src="filename.php"></script>调用,取到的只是filename.php,而非来源页面.这时候可以用js来取.
- <?php
- echo $_SERVER['HTTP_REFERER'];
- ?>
===> 实现任意文件的下载
用header可以实现任意文件的下载,而不是打开,比如txt和图片等.自己找一下Content-type,根据相应的类型替换就可以了.
- <?php
- // We'll be outputting a gif
- header('Content-type: image/gif');
- // It will be called pic.gif
- header('Content-Disposition: attachment; filename="pic.gif"');
- // The gif source is in pic.gif
- readfile('pic.gif');
- ?>
===> 为什么 $foo[bar] 错了?[摘自php手册]
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?你可能在老的脚本中见过如下语法:
- <?php
- $foo[bar] = 'enemy';
- echo $foo[bar];
- // etc
- ?>
这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。
注: 这并不意味着总是给键名加上引号。用不着给键名为常量 或 变量的加上引号,否则会使 PHP 不能解析它们。
===> 刚写了一个用MySQL保存图片和取出图片的例子
方法并不可取,因为保存图片的数据量是很大的,对宝贵的数据库资源太浪费,可以将图片存储到目录中,用数据库存储路径和文件名.
Database table:
- CREATE TABLE `image_table` (
- `id` int(4) NOT NULL auto_increment,
- `image` blob NOT NULL,
- PRIMARY KEY (`id`)
- ) TYPE=MyISAM;
上传图片存储到MySQL:
- <?php
- // pic_database_upload.php By Bleakwind
- $Host = "localhost";
- $User = "bleakwind";
- $Password = "bleakwind";
- $Database = "test";
- mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error());
- mysql_select_db($Database) or die("Could not select database!");
- if(!empty($_FILES['image']['name'])){
- $image_data = addslashes(fread(fopen($_FILES['image']['tmp_name'], "rb"), filesize($_FILES['image']['tmp_name'])));
- $sql = "INSERT INTO `image_table` (`image`) VALUES ('".$image_data."')";
- if(mysql_query($sql)){ echo "成功!"; }else{ echo "失败!"; }
- }
- ?>
- <form action="" method="post" name="form" enctype="multipart/form-data">
- <input type="file" name="image" size="30">
- <input type="submit" value="Upload">
- </form>
从数据库中取出图片.
注意:
1.可能具体应用你还要分配一个字段来存储图片类型,这样下面的header( "content-type: image/gif");这句的gif用相应的类型替换掉.
2.如果想取出多个图片可以将下面的文件存成一个文件,在另外的文件遍历ID后调用此文件输出.
- <?php
- // pic_database_output.php By Bleakwind
- header( "content-type: image/gif");
- $Host = "localhost";
- $User = "bleakwind";
- $Password = "bleakwind";
- $Database = "test";
- $id = 1;
- mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error());
- mysql_select_db($Database) or die("Could not select database!");
- $sql = "SELECT * FROM `image_table` WHERE `id`=" . $id;
- $result = mysql_query($sql) or die("Could not perform query!");
- $row = mysql_fetch_array($result);
- echo $row['image'];
- ?>
- 在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询(二)
- 在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询(二)
- 在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询操作基础
- c盘减肥//请在阅读本文之前查看你C盘的可用空间
- 学习Internet Explorer之前需要掌握的一些知识
- 应聘测试工程师之前需要掌握的一些知识
- 在使用vue脚手架之前你必须掌握的:vue的模版以及路由用法
- 请确保你正在设计或优化您的网站之前,深知这些战术!
- EntityContainer 的外部,请确保已调用 AddReference 建立了外部链接
- 硬件工程师必备的知识,看看你掌握了多少?
- 如果你看了!哭了!请写下爱人的名字! (转)
- 本文我们将探讨一些技巧教你如何创建iPhone App以及在创建应用时应该避免的一些错误认知
- web前端你需要掌握的一些个知识(一)
- [Microsoft][ODBC SQL Server Driver][SQL Server]无法连接到 XXXXX上的调试程序(错误 = 0x800401f3)。请确保已在
- 对象的初始化:确保对象在使用之前被初始化 `
- 确保 PHP 应用程序的安全二
- PHP基本的东西你掌握了吗
- 分析器错误信息: 未能加载程序集 app_Web _**** 请确保在访问该页之前已经编译了此程序
- 十款PHP开发框架横向比较
- 会计要素与会计科目
- DRY编程原则
- ORACLE穿透防火墙问题
- 在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询操作基础
- 在看本文之前,请确保你已掌握了PHP的一些知识以及MYSQL的查询(二)
- 管理处理器的亲和性(affinity)
- 限制文字框输入长度的JS
- date -d datestring 详解
- JS如何实现点击文本框弹出DIV层
- 高效的表单验证js代码
- iBatis 操作数据库【简单的一对多映射】,简单例子之二
- Sequence 简单介绍
- [翻译]SQL Relay中PHP API参考手册