当前位置:  编程技术>php
本页文章导读:
    ▪Php注入点构造代码       把下面保存成 Test.asp 代码如下:<?   $mysql_server_name = "localhost";      $mysql_username    = "root";      $mysql_password    = "password";      $mysql_database    = "phpzr";    //??ݿ??    .........
    ▪介绍php设计模式中的工厂模式       问题 你如何能轻松方便地建立这么" 复杂 " 的对象即操作中不需要粘贴复制呢? 解决方法 建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同.........
    ▪php mysql索引问题            显然这是一个凡是使用MySQL的朋友都会遇到的问题。     回忆一下当初在配置环境时提到的MySQL GUI工具,对了,就是它,大家可以到http://www.mysql.com中找到它。因为sunec也只是一名.........

[1]Php注入点构造代码
    来源: 互联网  发布时间: 2013-11-30
把下面保存成 Test.asp

代码如下:

<? 
 $mysql_server_name = "localhost"; 
    $mysql_username    = "root"; 
    $mysql_password    = "password"; 
    $mysql_database    = "phpzr";    //??ݿ?? 
    $conn=mysql_connect( $mysql_server_name, $mysql_username, $mysql_password ); 
    mysql_select_db($mysql_database,$conn); 
$id=$_GET['id']; 
    $sql = "select username,password from admin where id=$id"; 
    $result=mysql_db_query( $mysql_database, $sql,$conn );     
    $row=mysql_fetch_row($result); 
?> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Php Sql Injection Test </title> 
</head> 
<body> 
<p align="center"><b><font color="#FF0000" size="5" face="华文行楷"> </font><font color="#FF0000" size="5" face="华文新魏">PHP  
注入测试专用</font></b></p> 
<table width="100%" height="25%" border="1" align="center" cellpadding="0" cellspacing="0"> 
<tr> 
<td><?=$row[0]?></td> 
</tr> 
<tr> 
<td><?=$row[1]?></td> 
</tr> 
</table> 
<p><u><font color="#0000FF">BY:孤狐浪子 QQ:393214425 </font></u></p> 
<p><font color="#0000FF">Blog: Http://itpro.blog.163.com</font></p> 
<p> </p> 
</body> 
</html>  

创建数据库代码:保存成test.sql 使用phpmyadmin执行就ok了

代码如下:

CREATE DATABASE `phpzr` ; //创建数据库名称 


CREATE TABLE admin ( 
  id int(10) unsigned NOT NULL auto_increment, 
  username char(10) NOT NULL default '', 
  password char(10) NOT NULL default '', 
  useremail char(20) NOT NULL default '', 
  groupid int(11) NOT NULL default '0', 
  PRIMARY KEY  (id) 
) TYPE=MyISAM; 

  

INSERT INTO admin VALUES (1, 'admin', 'itpro.blog.163.com','itpro@163.com', 1); 
INSERT INTO admin VALUES (2, 'admin1', 'itpro.blog.163.com','itpro@163.com', 2); 
INSERT INTO admin VALUES (3, 'admin2', 'itpro.blog.163.com','itpro@163.com', 3); 
INSERT INTO admin VALUES (4, 'admin3', 'itpro.blog.163.com','itpro@163.com', 4); 
INSERT INTO admin VALUES (5, 'admin4', 'itpro.blog.163.com','itpro@163.com', 5); 

CREATE TABLE admin1 ( 
  id int(10) unsigned NOT NULL auto_increment, 
  username char(10) NOT NULL default '', 
  password char(10) NOT NULL default '', 
  useremail char(20) NOT NULL default '', 
  groupid int(11) NOT NULL default '0', 
  PRIMARY KEY  (id) 
) TYPE=MyISAM; 

  

INSERT INTO admin1 VALUES (1, 'admin', 'itpro.blog.163.com','itpro@163.com', 1); 
INSERT INTO admin1 VALUES (2, 'admin1', 'itpro.blog.163.com','itpro@163.com', 2); 
INSERT INTO admin1 VALUES (3, 'admin2', 'itpro.blog.163.com','itpro@163.com', 3); 
INSERT INTO admin1 VALUES (4, 'admin3', 'itpro.blog.163.com','itpro@163.com', 4); 
INSERT INTO admin1 VALUES (5, 'admin4', 'itpro.blog.163.com','itpro@163.com', 5); 

    
[2]介绍php设计模式中的工厂模式
    来源: 互联网  发布时间: 2013-11-30
问题

你如何能轻松方便地建立这么" 复杂 " 的对象即操作中不需要粘贴复制呢?

解决方法

建立一个工厂(一个函数或一个类方法)来制造新的对象。为了理解工厂的用处, 试想以下的不同之处……

代码:

代码如下:

$connection =& new MySqlConnection($user, $password, $database); 

……使你的代码可扩展和更简洁……

代码如下:

$connection =& create_connection(); 

后者的代码片断集中在和数据库连接的create_connect()工厂上 ,就像刚才说的一样,使创造数据库连接的过程成为一个简单的操作—就像new操作一样。工厂模式的优点就在创建对象上。 它的任务就是把对象的创建过程都封装起来,然后返回一个所需要的新类。

想改变对象的结构和建立对象的方式吗? 你只需选择对象工厂,对代码的改变只需要一次就够了。( 工厂模式的功能是如此强大, 它处于是应用的底层, 所以在许多其余的复杂模式和应用中它会不停地出现。)

样本代码

工厂模式封装了对象的建立过程。 你可以在对象本身创建对象工厂或者是一个额外的工厂类——这要看你具体的应用。让我们看一个工厂对象的例子。

我们发现下面代码中,数据库连接的那部分屡次出现:

代码如下:

// PHP4 
class Product { 
function getList() { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

function getByName($name) { $db =& new MysqlConnection(DB_USER, DB_PW, DB_NAME); 
//... 

//... 

为什么这样做不好? 数据库连接的参数出现的地方太多了,当你把这些参数设成常量,意味着你统一定义并对他们进行赋值,显然这种做法不是很妥当:

你可以轻松地改变连接数据库的参数,但你不能增加或改变这些参数地顺序,除非你把所有连接代码都改了。
你不能轻松的实例化一个新类去连接另一种数据库,比如说PostgresqlConnection。
这样很难单独测试和证实连接对象的状态。
使用工厂设计模式,代码将得到很大的改进:

代码如下:

class Product { 
function getList() { 
$db =& $this->_getConnection(); 
//... 

function &_getConnection() { 
return new MysqlConnection(DB_USER, DB_PW, DB_NAME); 


先前的类中存在很多调用new MysqlConnection(DB_USER,  DB_PW,  DB_NAME)的方法,现在都被集中到的_getConnection()方法上。


    
[3]php mysql索引问题
    来源: 互联网  发布时间: 2013-11-30
 

    显然这是一个凡是使用MySQL的朋友都会遇到的问题。

    回忆一下当初在配置环境时提到的MySQL GUI工具,对了,就是它,大家可以到http://www.mysql.com中找到它。因为sunec也只是一名程序爱好者,远没有达到程序员水平,所以借助一些工具的帮助还是很有必要的~相信一些朋友也和我一样~

    用GUI工具创建表,建立REF字段,把REF设置为主键,定义类型为int,并在AUTO INC选项上打勾。好了,在MySQL端的工作就结束了。

    接下去就交给PHP了,用之前专题中介绍过的insert命令为此表添加数据,注意,不用去自行添加REF的值,因为之前在AUTO INC选项上打了勾,那么,每添加一条记录,REF都会自动生成,而且是按顺序递增,这样,是不是就能实现你的需求了呢?

    另外,从这次主题开始,我把一些技术归纳到PHP技术区,敬请大家留意!

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪php二维数组排序(实例) iis7站长之家
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3