zoukankan      html  css  js  c++  java
  • php_bu

    一、上传图片

      1、上传图片必须代码“enctype="multipart/form-data”,还必须是post提交

        写法:<form action="提交网页地址" method=“post” enctype="multipart/form-data">

      2、固定的选择文件按钮

         <input type="file" name="uploadFile" id="upload"/>

        显示样式:

      3、$file = $_FILES['uploadFile'];  uploadFile为选择按钮的name=" ";

         获得你选择上传图片的信息,是一个二维数组

        var_dump($file);输出获得的值,显示如下:   

     array (size=5)
    
         'name' => string '1.jpg' (length=5)   //图片名
    
         'type' => string  'image/jpeg' (length=10)   //图片类型
    
          'tmp_name' =>  string  'E:Program FilesApache2.2wamp	mpphpCCE1.tmp' (length=47)  //图片虚拟路径
          'error' =>  int 0    //代表上传成功
         'size' =>  int 6542   //代表图片大小

      4、将文件上传到服务器的哪里

        move_uploaded_file($tmp_name,"img/".$name);

        img是建在统一路径下的空文件夹,意思是将上传的图片上传到文件夹img下

    二、验证验证码

      1、随机生成验证码    

    <?php
    session_start();   //打开session
    $arr = array(   //创建一个数组
        'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x',
        'y','z','0','1','2','3','4','5','6','7','8','9'
    );
    $rand = "";
    for($i=1;$i<=4; $i++){
        $rand .= $arr[rand(0,count($arr)-1)];
    }
    $_SESSION['check_pic'] = $rand;
    //生成图片
    $im = imagecreatetruecolor(100,30);
    //生成颜色,当第一次调用生成颜色的方法,是生成背景颜色,默认是黑色
    //如果想自定义背景颜色,用到imagefill函数
    $bg = imagecolorallocate($im,200,200,200);
    //$aa = imagecolorallocate($im,123,543,100);
    $ss = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    
    imagefill($im,0,0,$bg);
    //第二次调用这个方法,是可以生成图片上面的文字或其他样式的颜色
    $te = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    
    $te2 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    
    //生成干扰线,就是画线
    $posLineX1 = rand(6,30);
    $posLineX2 = rand(30,60);
    for($i=0;$i<5;$i++){
        $posLinY1=rand(2,10);
        $posLinY2=rand(11,28);
        imageline($im,$posLineX1,$posLinY1,$posLineX2,$posLinY2,$te2);
        $posLineX1 += rand(30,60);
        $posLineX2 += rand(61,98);
    }
    
    for($i=0;$i<90;$i++){   //随机生成字体颜色
        $te3 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
        imagesetpixel($im,rand(2,100),rand(2,30),$te3);
    }
    
    //在图片上面生成文字
    //imagestring($im,5,rand(3,70),rand(3,15),$rand,$te);
    
    $posX = rand(6,45);
    for($i=0;$i<4;$i++){
        $posY = rand(2,15);
        imagestring($im,rand(2,5),$posX,$posY,substr($rand,$i,1),$te);
        $posX += rand(8,20);
    }
    
    //要把php当成图片输出,必须给文件一个头申明
    
    ob_clean();
    header("Content-type:image/jpeg");   //固定写法,头申明
    //最终生成图片
    imagejpeg($im);   //生成图片格式jpeg,png等都行
    ?>

      2、验证上面生成的验证码

    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
    </head>
    <body>
    <?php
    session_start();
    if(isset($_POST['check'])){
        if($_POST['check'] == $_SESSION['check_pic']){
            echo "验证成功";
        }else{
            echo "验证失败";
        }
    }
    ?>
    
    <form action="check2.php" method="post">
        <input type="text" name="check"/>
        <img src="check1.php" alt="" onclick="refreshImg()" id="chk" style="cursor: pointer"/>
        <br/>
        <input type="submit" value="提交"/>
    </form>
    <script>
    function refreshImg(){
    ////避免浏览器认为一直访问的同一个页面,所以用随机数传一个值,让它以为访问的是不同页面
        var rand = Math.round(Math.random()*10000);   //固定写法
        var chk = document.getElementById("chk");
        chk.src = "check1.php?num="+rand;  //赋给num的值是为了让浏览器误以为访问的是不同的页面,才可以一直不停地访问
    //  chk.src = "check1.php";
    }
    </script>
    </body>
    </html>

    三、封装函数,方便调用

     <?php
     function test1($str1="",$str2=array()){
         //把数组分割成字符串 implode
         //下个这个方法的意思是:$str2应该是个数组
         //然后把这个数组按照逗号来分割组成一个新的字符串
         $s1 = implode(",",$str2);
     //    echo $s1;
     
         //把字符串分割成数组 explode
         //这个函数的意思就是:首先$str1是一个字符串,这个字符串是按照一个规格组装出来的
         //这个规格就是必须符合前面第一个参数的样式
         $s2 = explode("-",$str1);
     
         print_r($s2);
     }
     
    //函数的默认值
     function test2($db="bbs"){
         $conn = mysql_connect(HOST,USER,PWD) or die(mysql_error());
         mysql_select_db($db,$conn);
         mysql_query("set names 'utf8'");
     }
     
     function test3($str="hello world"){
         echo $str;
     }
     
     function formatDateTime($date){
         $arr = explode("-",$date);
         $str = vsprintf("%04d-%02d-%02d",$arr);
         return $str;
     }
     //获取函数全部参数
     //获取传过来的所有参数
     function test4(){
         //获取传过来参数的数量
         $num = func_num_args();
         //获取所有传入的参数,返回的是一个数组
         $arr = func_get_args();
         var_dump($arr);
     }
     
     function mysql_ping(){
         //获取传入的所有参数的数组
         $arr = func_get_args();
         //获取第一个参数,在我们这个列子里面,第一个参数其实就是sql语句
         $sql = $arr[0];
         //传入的sql语句,其实开始是用?替代的变量的位置
         //这里需要将变量转化为可以替换格式化字符串的'%s'这样的符号
         //替换
         $sql = str_replace("?","'%s'",$sql);
     
         //array_shift,是将数组最开始的元素移出。返回移出的值,然后数组剩下其余的部分
         $values = array_shift($arr);
     
         $sql = vsprintf($sql,$arr);
     
         echo $sql;
     }
     ?>
  • 相关阅读:
    士兵杀死(两)(南阳116)
    Android 墙纸设置代码 详细说明
    Laravel nginx 伪静态规则
    STL源代码分析——STL算法merge合并算法
    第29周六
    第29周五
    第29周四
    第29周三
    2014第29周二
    第29周一
  • 原文地址:https://www.cnblogs.com/Waiting-for-you/p/3739552.html
Copyright © 2011-2022 走看看