Browsed by
标签: PHP

php实现base64加密解密的代码

php实现base64加密解密的代码

在PHP中我们可以直接使用PHP自带的函数 base64_encode() 和 base64_decode() 进行加密和解密,废话不说了,我们直接进入正题:

例子 1. base64_encode() 示例

[cc lang=”php”]

[/cc]

此示例将显示:VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

例子 2. base64_decode() 示例

[cc lang=”php”]

[/cc]

此示例将显示:This is an encoded string

PHP参数调用整合。

[cc lang=”php”]

[/cc]

PHP写的提交表单到E-mail邮箱程序

PHP写的提交表单到E-mail邮箱程序

最近网站改版,想弄一个在线提交表单到邮箱的程序,找了很多都用不了,最后自己研究了一个。
<html><body><?phpfunction spamcheck($field)  {  //filter_var() sanitizes the e-mail   //address using FILTER_SANITIZE_EMAIL  $field=filter_var($field, FILTER_SANITIZE_EMAIL);    //filter_var() validates the e-mail  //address using FILTER_VALIDATE_EMAIL  if(filter_var($field, FILTER_VALIDATE_EMAIL))    {    return TRUE;    }  else    {    return FALSE;    }  }if (isset($_REQUEST['w_14']))  {//if "email" is filled out, proceed  //check if the email address is invalid  $mailcheck = spamcheck($_REQUEST['w_14']);  $w_1_check = $_REQUEST['w_1'];  $w_8_check = $_REQUEST['w_8'];  $w_13_check = $_REQUEST['w_13'];  if ($mailcheck==FALSE)    {    echo "<script language=\"JavaScript\">\r\n";     echo " alert(\"请您认真填写 E-Mail,以便工作人员与您取得联系。谢谢合作!\");\r\n";     echo " history.back();\r\n";     echo "</script>";     }          if ($w_1_check=='')    {    echo "<script language=\"JavaScript\">\r\n";     echo " alert(\"请您认真填写公司名称,以便工作人员与您取得联系。谢谢合作!\");\r\n";     echo " history.back();\r\n";     echo "</script>";     }          if ($w_8_check=='')    {    echo "<script language=\"JavaScript\">\r\n";     echo " alert(\"请您认真填写姓名,以便工作人员与您取得联系。谢谢合作!\");\r\n";     echo " history.back();\r\n";     echo "</script>";     }             if ($w_13_check=='')    {    echo "<script language=\"JavaScript\">\r\n";     echo " alert(\"请您认真填写QQ/MSN号码,以便工作人员与您取得联系。谢谢合作!\");\r\n";     echo " history.back();\r\n";     echo "</script>";     }  else    {//send email    $email = $_REQUEST['w_14'] ;     $subject = $_REQUEST['w_1'] . " " . $_REQUEST['w_8'] ;    $message = "公司名称 :". $_REQUEST['w_1'] . "\r\n" . "网页语种 :". $_REQUEST['w_2_1'] . "/" . $_REQUEST['w_2_2'] . "/" . $_REQUEST['w_2_3'] . "/" . $_REQUEST['w_2_4'] . "/" . $_REQUEST['w_2_5'] . "/" . "\r\n" . "需要借鉴的站点 :". $_REQUEST['w_3'] . "\r\n" . "主要业务介绍 :". $_REQUEST['w_4'] . "\r\n" . "建站费用预算 :". $_REQUEST['w_5'] . "-" . $_REQUEST['w_6'] . "\r\n" . "要求建站完成时间 :". "希望完工的日期" . $_REQUEST['w_7'] . "\r\n" . "                  希望完工的天数" . $_REQUEST['w_7_1'] . "\r\n" . "网站建设其他要求 :". $_REQUEST['w_7_2'] . "\r\n" . "=============================================================" . "\r\n" . "姓名 :". $_REQUEST['w_8'] . "\r\n" . "性别 :". $_REQUEST['w_9'] . "\r\n" . "电话 :". $_REQUEST['w_11'] . "\r\n" . "手机 :". $_REQUEST['w_12'] . "\r\n" . "QQ/MSN :". $_REQUEST['w_13'] . "\r\n" . "电子邮箱 :". $_REQUEST['w_14'] . "\r\n" . "Skype :". $_REQUEST['w_15'] . "\r\n" . "邮编 :". $_REQUEST['w_16'] . "\r\n" . "详细地址 :". $_REQUEST['w_17'] . "\r\n";    mail("jinpaiwww@126.com", "$subject 填写的网站建设意向表。",    $message, "From: $email");    echo "<script language=\"JavaScript\">\r\n";       echo "alert(\"信息提交成功!请等待工作人员与您取得联系。自动返回首页\");\r\n";       echo "location.replace(\"http://www.jinpaiwww.com/\");\r\n";       echo "</script>";    }  }else  {//if "email" is not filled out, display the form  echo "<form id='form1' action='http://www.jinpaiwww.com/b/b.php' method='post' name='form1'>    <table class='table_1' cellspacing='0' cellpadding='0' width='675' border='0'>        <tbody>            <tr>                <th colspan='2'>网站建设申请表</th>            </tr>            <tr>                <td class='input_1' width='125'>公司名称</td>                <td class='input_2' width='550'><input class='input_text' style='width: 300px' name='w_1' type='text' /></td>            </tr>            <tr>                <td class='input_1' width='125'>网页语种</td>                <td class='input_2' width='550'><input type='checkbox' checked='checked' name='w_2_1' value='中文简体' /> <label for='w_2_1'>中文简体</label> <input type='checkbox' name='w_2_2' value='中文繁体' /> <label for='w_2_2'>中文繁体</label> <input type='checkbox' name='w_2_3' value='英文' /> <label for='w_2_3'>英文</label> <input type='checkbox' name='w_2_4' value='日文' /> <label for='w_2_4'>日文</label> <input type='checkbox' name='w_2_5' value='其它语言' /> <label for='w_2_5'>其它语言</label></td>            </tr>            <tr>                <td class='input_1' width='125'>希望借鉴的站点</td>                <td class='input_2' width='550'><input style='width: 300px' name='w_3' type='text' /></td>            </tr>            <tr>                <td class='input_1' width='125'>主要业务介绍</td>                <td class='input_2' width='550'><textarea class='input_text' style='width: 300px' name='w_4'></textarea></td>            </tr>            <tr>                <td class='input_1' width='125'>建站费用预算</td>                <td class='input_2' width='550'><input class='input_text' name='w_5' type='text' /> -- <input class='input_text' name='w_6' type='text' /> 元</td>            </tr>            <tr>                <td class='input_1' width='125'>要求建站完成时间</td>                <td class='input_2' width='550'><input class='input_text' name='w_7' value='希望完工的日期' type='text' /> <input class='input_text' name='w_7_1' value='希望完工的天数' type='text' /> 天</td>            </tr>            <tr>                <td class='input_1' width='125'>网站建设其它要求</td>                <td class='input_2' width='550'><textarea class='input_text' style='width: 300px' name='w_7_2'></textarea></td>            </tr>        </tbody>    </table>    <table class='table_1' cellspacing='0' cellpadding='0' width='675' border='0'>        <tbody>            <tr>                <th colspan='4'>联系人信息</th>            </tr>            <tr>                <td class='input_1' width='129'>姓  名</td>                <td class='input_2' width='202'><input name='w_8' type='text' /></td>                <td class='input_1' width='96'>性  别</td>                <td class='input_2' width='246'><input type='radio' checked='checked' name='w_9' value='小姐' />小姐 <input type='radio' name='w_9' value='先生' />先生</td>            </tr>            <tr>                <td class='input_1' align='left'>电  话</td>                <td class='input_2'><input class='input_text' name='w_11' type='text' /></td>                <td class='input_1'>手  机</td>                <td class='input_2'><input name='w_12' type='text' /></td>            </tr>            <tr>                <td class='input_1'>QQ / MSN</td>                <td class='input_2'><input class='input_text' name='w_13' type='text' /></td>                <td class='input_1'>电子邮箱</td>                <td class='input_2'><input name='w_14' type='text' /></td>            </tr>            <tr>                <td class='input_1'>Skype</td>                <td class='input_2'><input class='input_text' name='w_15' type='text' /></td>                <td class='input_1'>邮  编</td>                <td class='input_2'><input name='w_16' type='text' /></td>            </tr>            <tr>                <td class='input_1'>详细地址</td>                <td class='input_2'><input name='w_17' type='text' /></td>                <td class='input_1'>公司地址</td>                <td class='input_2'><input name='w_172' type='text' /></td>            </tr>        </tbody>    </table>                <table class='table_1' cellspacing='0' cellpadding='0' width='675' border='0'>        <tbody>            <tr>                <td class='input_2'>                <div align='center'><input id='send_mail_agent' type='submit' name='w_18' value='Submit' /></div>                </td>            </tr>        </tbody>    </table>  </form>";  }?></body></html>

php Undefined index和Undefined variable的解决方法

php Undefined index和Undefined variable的解决方法

这段时间在做项目过程中老是出现这个提示
Notice: Undefined index: act in *:\***\***.php on line *
另外,有时还会出现
引用内容
Notice: Undefined variable: Submit ……
等一些这样的提示
原因:由于变量未定义引起的
解决方法:
1) error_reporting设置:
找到error_reporting = E_ALL
修改为error_reporting = E_ALL & ~E_NOTICE
2) register_globals设置:
找到register_globals = Off
修改为register_globals = On

Windows 2003下IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置

Windows 2003下IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置

一、软件准备

1、windos2003
2、IIS6.0
3、php-5.0.4-Win32
4、mysql-5.1.6-alpha-win32
5、ZendOptimizer-2.6.0-Windows-i386
6、phpMyAdmin-2.7.0-pl2

二、开始安装

请确认已经安装好了windos2003+IIS6.0

第一步:安装PHP

1、将下载得到的php-5.0.4-Win32解压移动到自己需要放置的目录;

2、将PHP目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:\Windows目录下;

3、将C:\Windows\php.ini-dist改名为php.ini,然后用记事本打开,

(1)利用记事本的查找功能搜索

register_globals = Off 将 Off 改成 On ;

(2)再搜索

extension_dir = 并将其路径指到你的 PHP 目录下的 ext 目录,比如:extension_dir = “C:\Inetpub\php\ext”

(3)搜索找到

;Windows Extensions 将下面列举的

;extension=php_dbase.dll

;extension=php_gd2.dll (这是用来支持GD库的)

;extension=php_ldap.dll

;extension=php_mbstring.dll (这不选一般用PHPMYADMIN会出红色提示,故必选)

;extension=php_mssql.dll (这个是用来支持MSSQL的,可选)

;extension=php_mysql.dll (这个是用来支持MYSQL的,要支持MYSQL必选)

将这些前的”;”去掉,其他的你需要的也可以去掉前面的;然后关闭保存该文件。

4、配置 IIS 使其支持 PHP:

打开 IIS 后停止服务,然后在左侧默认Web站点上单击右键选择“属性”,
在打开的“ Web 站点属性”窗口的“ISAPI 筛选器”标签里找到并点击“添加”按钮,
在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将可执行文件指向 php5isapi.dll
所在路径,如:C:\Inetpub\php\php5isapi.dll 。

[attachment=888]

打开“Web 站点属性”窗口的“主目录”标签,找到并点击“配置”按钮,
在弹出的“应用程序配置”窗口中找到并点击“添加”按钮,
在弹出的窗口中新增一个扩展名映射,扩展名为 .php ,单击“浏览”将可执行文件指向 php5isapi.dll
所在路径,如:C:\Inetpub\php\php5isapi.dll,然后一路确定即可。

[attachment=889]

再打开“Web 站点属性”窗口的“文档”标签,找到并点击“添加”按钮,向默认的 Web
站点启动文档列表中添加 index.php 项。
您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。

[attachment=890]

确定 Web 目录的应用程序设置和执行许可中选择为“纯脚本”,然后关闭 Internet 信息服务管理器,

在命令提示符中执行如下命令:

net stop w3svc
net stop iisadmin
net start w3svc

然后在“Internet 服务管理器”左边的“WEB服务扩展”中设置
ISAPI 扩展 允许,
Active Server Pages 允许。

[attachment=891]

在 IIS 根目录下新建一个 phpinfo.php ,命名为:index.php 内容如下:

打开浏览器,输入:http://localhost/,
将显示当前服务器所支持 PHP 的全部信息。

[attachment=892]

第二步:安装 MySQL

将下载得到的 mysql-5.1.6-alpha-win32 直接双击安装即可(注意安装目录不要太深,路径中不要出现空格)。

安装过程中会提示你是不是立即进行配置,选择否即可完成安装。

安装完毕后,在“开始”菜单里面有配置向导MySQL Server Instance Config Wizar,
运行后按下面步骤配置设置ROOT密码即可

[attachment=893]

[attachment=894]

ROOT密码,建议社设置复杂点,确保服务器安全!

[attachment=895]

第三步:安装 Zend Optimizer

将下载后得到 ZendOptimizer-2.6.0-Windows-i386 直接双击安装即可,
安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。

Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。

打开 php.ini 搜索:
zend_optimizer.optimization_level=15

优化程度,这里定义启动多少个优化过程,默认值是 15 ,
表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023,表示开启全部10个优化过程。

第四步:安装GD库

这一步在前面PHP.INI配置中实际上已经安装好了,

在php.ini里找到

“extension_dir”,然后将路径指向extension,如下(假设你的php安装路
径为:C:\Inetpub\php,设置extension_dir = “C:\Inetpub\php\ext”,完成这步后,
在 php.ini 里找到 “extension=php_gd2.dll” 这一行,并且去掉前面的分号,gd库安装完成。

第五步:安装 phpMyAdmin

将下载得到的 phpMyAdmin-2.7.0-pl2 ,解压到 IIS 默认网站根目录,
找到并打开 config.default.php,做以下修改:

1、搜索 $cfg[‘PmaAbsoluteUri’] ,设置你的phpmyadmin的URL,
如: $cfg[‘PmaAbsoluteUri’] = ‘http://localhost/phpmyadmin/’;

注意这里假设phpmyadmin在默认站点的根目录下

2、搜索$cfg[‘blowfish_secret’],设定好root密码后这里也要填写mysql设置时的密码

3、搜索 $cfg[‘DefaultLang’] ,将其设置为 zh-gb2312

4、搜索 $cfg[‘DefaultCharset’] ,将其设置为 gb2312

5、搜索 $cfg[‘Servers’][$i][‘auth_type’] ,默认为config,是不安全的,不推荐,推荐使用cookie,
将其设置为 $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

打开浏览器,输入:http://localhost/phpMyAdmin/ ,若 IIS 和 MySQL
均已启动,输入用户ROOT密码即可浏览数据库内容。

这段时间来,陆续大约有10多位落伍兄弟通过QQ加我咨询相关问题和询问PHP安装使用过程中的解决办法,大部分我都一一解答并给予帮助解决,一般都是通过远程直接给予帮助并都完满解决,个别仅仅通过QQ给予安装不成功的部分描述,由于失败因素很多没能帮忙分析出问题所在而成功解决,这里表示歉意。下面把配置过程中的一些通用解决方法予以总结,再有相关问题的请直接参阅本贴解决,若还不能解决的再加我QQ帮忙解决(PS:由于最近要期末考试再加有些业务比较忙,请尽量自己寻求解决方法,实在不行请联系我QQ后直接给我临时远程权限,我帮忙给予远程操作解决,不再接受QQ描述式探讨解决!至于是否愿意给我临时远程权限请自行斟酌)

废话不多说安装过程中涉及到的主要问题和解决方案如下:
1.IASPI筛选器加载不成功,这个一般是由于 PHP.INI的配置导致的,请在加载PHP的IASPI筛选器前配置好PHP.INI并确保复制到了系统目录(2000系统一般C:\WINNT目录下,XP和2003的一般C:\WINDOWS目录),还有一个原因好象PHP目录是不能放C:\Program Files这种带空格的目录下的,所以最好直接放系统根目录下如C:\PHP

2.PHP配置后导致IIS锁死现象,请重新启动系统后直接卸载IIS后重装IIS,因此建议配置PHP前自己先在本机测试,再到服务器配置,并且配置前注意备份IIS,一般建议XP和2003系统尝试配置 PHP5.x版本,因为2003的是IIS6.0版本,一般存在IIS 6.0中早期版本的 ISAPI 筛选器不能加载,所以有可能PHP4.x的版本ISAPI 筛选器不能加载导致无法完成PHP配置,2000系统一般装PHP5.X版本也很少有问题,当然有人说PHP4.X版本比较稳定,可以自行选择合适版本配置,若装PHP5.X不成功也可以尝试配置4.X版本

3.MYSQL问题,若一次配置MYSQL不成功,请正确并完整卸载MYSQL后重装后多尝试几次进行配置一般就没问题了,强烈申明不要使用直接删除MYSQL文件夹的方法来重装MYSQL,这样的后果很严重,一般是无法再正常成功安装配置MYSQL了,因为系统服务里面会遗留MYSQL服务导致再安装MYSQL后无法启动MYSQL服务

4.PHPMYADMIN连接MYSQL的问题,有的连接登陆时会有下面的错误提示:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
这是由于MySQL 4.1 及其后版本验证协议使用的密码哈希算法与老的客户端不兼容,因此需要在MySQL Command Line Client里面用命令同步兼容密码:
进入MySQL Command Line Client后MYSQL的提示符是:mysql>
然后执行:

CODE:[Copy to clipboard]SET PASSWORD FOR ‘root’@’localhost’ = OLD_PASSWORD(‘你的ROOT管理密码’);
然后再登陆PHPMYADMIN就可以了,登陆后可以在权限里面添加修改设置帐号和访问权限

5.PHP运行失败或错误,如果运行PHP后出现普通的无法找到网页”一般是由于文件不存在错误或者PHP没有配置成功,请返回检查PHP配置!
其他失败表现为
1).运行PHP程序页面空白;
2)您没有权限查看该网页;
3)failed to open stream错误,如:
Warning: main(./libraries/grab_globals.lib.php): failed to open stream: No such file or directory in E:\phpMyAdmin\index.php on line 8

Fatal error: main(): Failed opening required ‘./libraries/grab_globals.lib.php’ (include_path=’.;c:\php4\pear’) in E:\phpMyAdmin\index.php on line 8

这些一般都是权限设置问题导致的,由于PHP对于权限比较敏感,因此经过本人尝试以下权限分配可以获得最佳权限限制和正常访问:
PHP安装文件目录需要添加EVERYONE读取和运行权限,如果你的系统做过安全和权限(相关问题可以参考本人收集整理的内容http://blog.xqin.com/index.asp?boardid=3), 磁盘的根目录只给了ADMIN权限,请将要运行的网站程序目录在IIS里面指向的时候要是在磁盘的二级目录下如D:\web\phpwind,并且父目录和自身目录都给IIS读取和运行权限 ,即WEB和PHPWIND都给IIS_USER权限,没做权限的可以随意指向目录

以上关于PHP 的问题的一些总结也适用于大部分PHP程序运行和PHP配置问题,特别failed to open stream这个错误用我介绍的权限设置方案可以完美解决,我在遇到这个错误后搜索了大量内容,都没给出详细解决办法,并且出现这个问题的人还很多,终于在我的尝试下解决了,如果还不能解决的请给EVEYONE权限试试

以上是一般遇到比较多的普遍问题,当然PHP配置和使用中还有很多问题的,欢迎大家探讨!