用PHP实现把图象上传到数据库

php实现上传图片保存到数据库的方法。分享给大家供大家参考。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)

阅读全文

将Oracle内置的安全特性用于PHP

当今大多数 Web 应用程序都需要至少采用某种基本的安全策略。例如,提供用口令保护的内容的网站、仅具有治理员后端的网站、网志和个人杂志、电子商务网站、企业内联网,等等。
  

  构建这些类型的 Web 应用程序最常用的设计方法是将安全策略整合到 Web 应用程序的业务逻辑中,即由应用程序决定某个用户是否有权访问数据库中的某个数据。在这种情形下,数据库的角色仅为存储数据和依请求提供数据。换句话说,假如 Web 应用程序命令数据库提供特定信息,则数据库会直接执行该命令而不检查用户的权限。


  在该文中,您将学习如何利用 Oracle 内置的安全特性在数据库级执行应用程序安全规则,以提高应用程序的整体安全性。作为附带的好处,直接在数据库中实现数据访问安全不但有助于提高应用程的安全性,而且有助于降低复杂性。


  对数据库端安全性的需求


  从 Web 应用程序控制数据访问会怎么样?大多数情况下没有问题;这是个不错的解决方案,尤其是在涉及的数据为非任务要害或绝密的时候。许多书和在线资源中都用到了该方法。实际上,有本很受欢迎的 PHP/MySQL 书明确反对每个应用程序创建一个以上的数据库用户帐户,这是因为“额外的用户或复杂的权限会因某个操作在继续前要检查更多的信息而降低 MySQL 的执行速度”。确实如此;但是,在放弃将安全性整合到数据库逻辑中的想法前可能要考虑几件事情。我们来看以下示例。


  假设创建一个内容治理系统 (CMS)。其中使用数据库来存储网站上发布的内容。大部分数据是公开的,答应匿名 Web 用户读取;但只答应编辑更改数据。使用单一数据库帐户访问和修改数据库中的记录,并通过用口令保护仅治理员可以访问的页面的访问权限用 PHP 代码控制安全性。


  假如 Web 应用程序的公共端遭受了一个诸如公共搜索表单(即编码不够严密的表单)上的 SQL 注入的攻击,则该入侵者可能能够对该公共帐户可以访问的数据库对象执行任意 SQL 语句。当然,就这里的情形而言,执行 SELECT 语句不会造成什么大问题,这是因为数据本来就是公共的。但由于公共权限和治理权限使用同一数据库帐户,因此入侵者还能执行 UPDATE 和 DELETE 语句,甚至是从数据库中删除表。


  怎么才能防止该情况的发生呢?最简单的方法就是彻底限制公共数据库帐户修改数据的权限。我们来看看 Oracle 是如何解决这个问题的。


  Oracle 安全性基本概述


  Oracle 数据库为 Web 开发人员提供了控制数据访问的许多方法,从治理对特定数据库对象(如表、视图和过程)的访问到控制个别行或列的数据的访问。很显然,对 Oracle 每个安全特性或可用选项的讨论超出了本文的范围。在这里,我们将不涉及过多细节,而仅介绍 Oracle 数据访问安全性的最基本方面:


  验证和用户帐户


  权限


  角色


  验证和用户帐户。 与其他数据库一样,请求访问 Oracle 的每个用户(数据库帐户)必须通过验证。验证工作可以由数据库、操作系统或网络服务来做。除基本的验证(口令验证)外,Oracle 还支持强验证机制,如Kerberos、CyberSafe、RADIUS,等等。


  角色。 Oracle 角色是一个权限的有名集。尽管可以直接授予用户帐户权限,但使用角色可以极大简化用户治理,尤其是需要治理大量用户时。创建易治理的小角色,然后根据用户的安全级别授予用户一个或多个角色,这样做的效率非常高。更不用说修改权限变得如何简单了

阅读全文

用PHP调用数据库的存贮过程

大家知道,存储过程是在服务器端的一个脚本程序,执行起来速度很快,但它也有一个缺点,就是依靠与一个固定数据库,移植性不好!
我的上回文章,提到了用com组件是可以访问ado以及相关的组件,无论是自己建的还是系统带的,都可以扩展系统的功能,但现在php不支持dcom/com ,但相信它的下一个版本应该是支持的。
不说这么多了,我们马上试一下吧。

下面是我的一个简单的存贮过程
CREATE PROCEDURE [sp_mystoreprocedure] AS
select companyname, contactname, city from customers

其实,还可以写比较复杂的,可惜我对此研究不深,只好取简单了!

下面是我的php文件
<?
define ("OLEDB_CONNECTION_STRING",
"Provider=SQLOLEDB; Data Source=zzb; Initial Catalog=Northwind; User ID=sa; Password=");
$dbc = new COM("ADODB.Connection");
$dbc->Open(OLEDB_CONNECTION_STRING);
$command = "sp_mystoreprocedure";
$rs = $dbc->Execute($command); // Recordset
$i = 0;

echo '<table cellSpacing="1" cellPadding="3" width="600" align="center" bgColor="#000000" border="0">
<tr vAlign="bottom" bgColor="#9999cc">
<th>Directive</th>
<th>Local Value</th>
<th>Master Value</th>
</tr>';

while (!$rs->EOF) {
$i = 1;
$fld0 = $rs->Fields(0);
$fld1 = $rs->Fields(1);
$fld2 = $rs->Fields(2);
print '<tr vAlign="baseline" bgColor="#cccccc">
<td bgColor="#ccccff"><b>';
print $fld0->value;
print '</b><br></td>
<td align="middle">';
print $fld1->value;
print '</td><td align="middle">';
print $fld2->value;
print '</td></tr>';

$rs->MoveNext();
}
print '</TABLE>';

$rs->Close();
?>

注重的是,你的服务器必须打开!另外,就是不能写错存贮过程的名称。否则会出项致命的错误,而且,你根本就不知道错误在那里,这就是php文件对错误处理的不好之处,但相信它以后是会改进的。

我学php需然有很长时间了,但发现要真正用好它,不那么轻易,但它确实也超出了我的想象,有些东西真的很奇妙,真是,不用不知道,一用真奇妙!

阅读全文

Warning: mssql_query() [function.mssql-query]:

Warning: mssql_query() [function.mssql-query]: message: 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode 排序规则的 Unicode 数据发送到客户端。 (severity 16) in F:myweblzljcn.php on line 21

Warning: mssql_query() [function.mssql-query]: Query failed in F:myweblzljcn.php on line 21

阅读全文

PHP 与 数据库 ODBC

PHP的数据库的ODBC

的ODBC是一种应用编程接口( API ) ,允许您连接到一个数据源(如MS Access资料库) 。


-------------------------------------------------- ------------------------------

创建一个ODBC连接
由于ODBC连接,可以连接到任何数据库,在任何电脑上,在您的网络,只要一个ODBC连接可用。

以下是如何创建ODBC连接到MS Access资料库:

打开管理工具图标在您的控制面板。
双击数据源( ODBC )图标内。
选择系统DSN标签。
点击添加系统DSN标签。
选择的Microsoft Access驱动程序。单击完成。
在接下来的画面中,按一下选择找到数据库。
给数据库的数据源名称( DSN ) 。
单击确定。
请注意,此配置需要做的计算机上您的网站上的位置。如果您正在运行Internet信息服务器( IIS )在您自己的电脑,上面的指示,将工作,但如果您的网站位于远程服务器上,你必须要有实际接触到该服务器,或要求您的网页主机,以向建立一个DSN的供您使用。


-------------------------------------------------- ------------------------------

连接到一个ODBC
该odbc_connect ( )函数是用来连接到ODBC数据源。该函数四个参数:数据源名称,用户名,密码和一个可选的游标类型。

该odbc_exec ( )函数是用来执行SQL语句。

例如
下面的例子创建了一个连接的DSN所谓北风,没有用户名和密码没有。然后它创建了一个数据库并执行它:

阅读全文

PHP mysql_data_seek() 函数教程

PHP mysql_data_seek() 函数教程

定义和用法
该mysql_data_seek ( )函数移动内部行指针。

连续的内部指针是目前排在返回结果的mysql_query ( )函数。

此函数返回TRUE成功,或FALSE的失败。

语法

阅读全文