日志标签:php

php 7.3.7安装Mcrypt扩展

分类:网站技术日期:2019-07-16 - 21:45:17评论:4条作者:老谢

  又是闲来无事,把php 5.x升到了7.3.7,升级后明显感觉wp后台快多了,但是用tiny tiny rss的时候报错没有mcrypt函数,经过一番搜索,由于php7已经将此扩展移除到pecl,虽然不知道pecl是个啥,但目前要用到的mcrypt就需要手动安装了,顺手记录一下。

Autoconf的版本

  rpm -qf /usr/bin/autoconf,如果低于2.68则需要升级,否则后面无法编译Mcrypt。

rpm -qf /usr/bin/autoconf
rpm -e --nodeps autoconf-2.63
 
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar zxvf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure --prefix=/usr/
make && make install
 
[root@laoxie mcrypt-1.0.1]# /usr/bin/autoconf -V
autoconf (GNU Autoconf) 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
Written by David J. MacKenzie and Akim Demaille.
开始搞Mcrypt
wget  http://pecl.php.net/get/mcrypt-1.0.1.tgz
tar xf mcrypt-1.0.1.tgz
cd mcrypt-1.0.1
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config  && make && make install

  编译完编辑php.ini,添加extension=mcrypt.so,然后重启php-fpm即可。

Tags:

PHP自动删除字符串中的空格和换行

分类:程序设计日期:2016-02-01 - 0:35:44评论:1条作者:老谢

//来自 www.yanqing.cc
//删除空格和回车
function trimall($str){
    $qian=array(" "," ","\t","\n","\r");
    return str_replace($qian, '', $str);   
}
Tags:

使用implode()函数将数组逗号隔开连接为字符串

分类:程序设计日期:2016-01-02 - 14:43:59评论:0条作者:老谢

  checkbox提交过来一个数组,为了将数组中的值插入到SQL语句执行,需要将数组的键值使用逗号隔开:

index.html
<form action="2.php" method="post">
<input name="select[]" type="checkbox" value="1" />1
<input name="select[]" type="checkbox" value="2" />2
<input name="select[]" type="checkbox" value="3" />3
<input type="submit" value="submie" />
</form>
2.php
<?php
	$array = $_POST["select"];
	$select = implode(",", $array);
	echo $select;
?>

  3个checkbox全都选择提交后,输出的结果为:1,2,3,可以直接插入到SQL语句执行。

Tags: ,

PHP使用Session防止表单重复提交

分类:程序设计日期:2015-12-27 - 1:44:50评论:1条作者:老谢

  最近一段时间实在太忙,很多东西想发到博客一直抽不出时间好好的写出来,比如新换的罗技MX ANYWHERE2的使用体验以及电动牙刷的使用体验还有健身几个月的成果等等等,趁着工作刚结束把刚刚解决掉的表单重复提交的问题的处理方法贴出来,以便共同学习进步:)

  问题背景是用户在网络不好等异常情况下,反复点击submit提交表单,导致同一表单被重复提交写入到数据库,经过一番搜索,本来打算使用JS实现点击submit后,将submit按钮设置为不可用,但是实现过程中遇到很多问题,无奈JS一点都不懂,于是便使用更好的Session的方式来解决这个问题。

  使用Session解决的原理是:Session保存在服务器端,在PHP运行过程中可以改变Session变量,下次访问这个变量时,得到的是新赋的值,所以,可以用一个Session变量记录表单提交的值,如果不匹配,则认为是用户在重复提交。

from.php
<?php  
session_start();                //根据当前SESSION生成随机数  
$code = mt_rand(0,1000000);  
$_SESSION['code'] = $code;      //将此随机数暂存入到session  
?>  
<form id="form1" name="form1" method="post" action="action.php">  
    <p>说明 <input type="text" name="titile" />  
        <input type="hidden" name="originator" value="<?=$code;?>"></p>  
    <p><input type="submit" name="Submit" value="提交" /></p>  
</form>

  使用mt_rand函数生成一个随机值给变量code,把变量code的值复给$_SESSION[‘code’],提交后比对两个值是否一致即可。

action.php
<?php  
session_start();  
if(isset($_POST['originator'])) {  
    if($_POST['originator'] == $_SESSION['code']){  
        echo "ok";  
        unset($_SESSION["code"]);               //将其清除掉此时再按F5则无效  
    }else{  
        echo "请不要刷新本页面或重复提交表单";  
    }  
}?>

  特别注意:必须要使用unset($_SESSION[“code”]);销毁$_SESSION[“code”]!

本文参考(感谢以下两篇文章的原作者):

解析php防止form重复提交的方法
php 防止表单重复提交

Tags:

PHP获取服务器在线时间

分类:网站技术日期:2013-05-25 - 14:40:40评论:6条作者:老谢

想在页脚加上服务器的uptime,于是乎搜相关php代码,用exec函数可以很轻松搞定,但是为了安全,该函数早在配置vps环境后就被我在php.ini里面禁用了,经过一番搜索,找到下面一段代码,希望对大家有用

调用:

<?php echo $uptime ?>

PHP获取服务器在线时间

<?php
function sys_linux()
{
if (false === ($str = @file("/proc/uptime"))) return false;
$str = explode(" ", implode("", $str));
$str = trim($str[0]);
$min = $str / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days !== 0) $res['uptime'] = $days."天";
if ($hours !== 0) $res['uptime'] .= $hours."小时";
$res['uptime'] .= $min."分钟";
return$res;
}
$sysInfo = sys_linux();
$uptime = $sysInfo['uptime'];
echo$uptime;
?>
 
源码源于:http://www.linuxidc.com/Linux/2012-12/75977.htm
Tags:

Nginx 1.1.9配置PHP 5.3.10(php-fpm+fastcgi)

分类:运维技术日期:2012-03-03 - 15:04:43评论:7条作者:老谢

本文只介绍PHP的安装以及整合到Nginx,至于Nginx的安装教程请看:CentOS编译安装Nginx(附:管理脚本)

Nginx 1.1.9配置PHP 5.3.10(php-fpm+fastcgi)

wget http://vps.xj123.info/usr/lamp/php-5.3.10.tar.gz
tar -zxf php-5.3.10.tar.gz
cd php-5.3.10
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm
make && make install
cp php.ini-production /usr/local/php/etc/php.ini

继续阅读…

Tags: , ,

php获取访问者ip地址

分类:程序设计日期:2012-03-03 - 12:08:45评论:10条作者:老谢

老谢目前需要这个功能来做点小东西,于是就网上找了一番,下面的代码直接复制走即可,如需要自己可以美化一下,摘抄自andrew_659的空间
演示地址http://67.215.236.139/ip.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>公网ip查询</title>
</head>
<body>
<?php
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP."<br>";
?>
</body>
</html>