Forum Linux.débutant code php pour stocké des données sur une base de données

Posté par  .
Étiquettes : aucune
-2
10
oct.
2012

bonjour
en premier je m'excuse si mon français n'es pas correct ( je ne suis pas français ).
j'ai un scripte avec le quelle j'active des accès a distance est c'est base sur des code php, les information des accès sans stocker dans un fichier xml.
mon souhait c'est de stocker les information de ces accès dans une base de données

url pour visualise le scripte

code php:

    <?
    $GLOBALS['file_codes']="proxy.codes";
    $GLOBALS['file_act']="proxy.act";
    $GLOBALS['file_user']="User.xml";   

    $GLOBALS['IDENT']="Super-Code";

    function sh_scr($user,$pass,$msg,$enddate=0)
    {
        $_GET['LastName']=$user;
        //==========================================================================================
        //!!!!!!!!!  must always be there do not delete this line!!!!
        //==========================================================================================
        echo "Attend Redemarer Le DreamBox\n\n";
        //echo "\ncp /tmp/actv.tmp /tmp/aaa\n";
        //==========================================================================================
        echo "\ngrep -v \"#\"  /var/tuxbox/plugins/D�marche4.cfg > /tmp/actv.cfg";
        echo "\necho \"#LastName={$_GET['LastName']}\" >> /tmp/actv.cfg";
        echo "\nmv /tmp/actv.cfg /var/tuxbox/plugins/D�marche4.cfg";
        echo "\necho \"CWS_KEEPALIVE = 300\" > /var/keys/newcamd.list";
        echo "\necho \"CWS_INCOMING_PORT = 21010\" >> /var/keys/newcamd.list";
        echo "\necho \"CWS = host.no-ip.org 5000 {$user} {$pass} 01 02 03 04 05 06 07 08 09 10 11 12 13 14\" >> /var/keys/newcamd.list";
        echo "\necho \"M: { 01 }\" >> /var/keys/mg_cfg";
        echo "\necho \"C: { 01 }\" >> /var/keys/mg_cfg";
        echo "\necho \"A: { 00 }\" >> /var/keys/mg_cfg";
        echo "\necho \"U: { 01 }\" >> /var/keys/mg_cfg";
        echo "\necho \"T: { 00 }\" >> /var/keys/mg_cfg";
        echo "\necho \"G: { 01 }\" >> /var/keys/mg_cfg";
        echo "\necho \"N: { 07 } 5 30\" >> /var/keys/mg_cfg";
        echo "\necho \"K: { 05 }\" >> /var/keys/mg_cfg";
        echo "\necho \"Q: { 600}\" >> /var/keys/mg_cfg";
        echo "\necho \"O: { 02 } root dreambox\" >> /var/keys/mg_cfg";
        echo "\necho \"S: { 08 } 80\" >> /var/keys/mg_cfg";
        echo "\necho \"E: { 15 }\" >> /var/keys/mg_cfg";
        echo "\necho \"H: { 07 }\" >> /var/keys/mg_cfg";
        echo "\necho \"R: { 00 }\" >> /var/keys/mg_cfg";
        //==========================================================================================
        // !!!!!!!!! must always be there do not delete this lines below!!!!
        //==========================================================================================
        echo "\necho -n \"{$msg}\" > /tmp/actv.msg\n";  
        echo "\nrm /tmp/actv.tmp\n";
        //==========================================================================================

        //==========================================================================================
        // u can only edit here !!!!!!!!! 
        //==========================================================================================

            echo "\nreboot";
        }

    function html_scr($user,$pass,$msg)
    {   
        echo $msg;
    ?>  
            </b></p>
            </div>
            <div class="login-form">                    
                <div class="form-block">
                    <div class="inputlabel">Username:</div>
                    <div><? echo $user; ?></div>    
                    <div class="inputlabel" style="margin-top:10px;">Password:</div>
                    <div><? echo $pass; ?></div>    
                </div>          
            </div>
            <div class="clr"></div>
            <form action="" method="get" name="loginForm" id="loginForm">
                <div align="center" style="margin-top:20px;"><input type="submit" class="button" value="   Enter New code   " /></div>
            </form>
        </div>
    </div>
    <?
        html_footer();
        exit;

    }

    function html_main()
    {
    ?>
        <div id="ctr" align="center">
        <div class="login">
            <div class="login-form">        
                <form action="" method="get" name="loginForm" id="loginForm">
                <div class="form-block">
                    <div class="inputlabel">Activation code:</div>
                    <div><input name="actvcode" type="text" class="inputbox" size="15" /></div> 
                    <div align="center"><input type="submit" class="button" value="   Activate   " /></div>
                </div>
                </form>
            </div>
            <div class="login-text">            
                <p>Welcome to Activation system!</p>
                <p>Enter code to activete user.</p>
            </div>
            <div class="clr"></div>
        </div>
    </div>
    <?      
    }


    function html_main_re1()
    {
    ?>
        <div id="ctr" align="center">
        <div class="login">
            <div class="login-text">            
                <p style="color:red"><b>
    <?      
    }


    function html_main_re2()
    {
    ?>
        </b></p>
            </div>
            <div class="login-form">        
                <form action="" method="get" name="loginForm" id="loginForm">
                <div class="form-block">
                    <div class="inputlabel">Activation code:</div>
                    <div><input name="actvcode" type="text" class="inputbox" size="15" /></div> 
                    <div align="center"><input type="submit" class="button" value="   Activate   " /></div>
                </div>
                </form>
            </div>
            <div class="clr"></div>
        </div>
    </div>
    <?      
    }

    function html_header()
    {
    ?>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <html lang="en-US">
        <head>      
            <title>Private Activation</title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


            <style type="text/css">
            body{margin:0;padding:0;color:#333;background-color:#FFF;font-size:11px;font-family:Arial,Helvetica,sans-serif;}#wrapper{border:0;margin:0;margin-left:auto;margin-right:auto;padding:0;}#header{background-color:#FFF;background-position:right top;border-bottom:4px solid #80B5D7;}#mambo{position:relative;width:100%;background-color:#30569D;margin:0;padding:0;font-size: 18px;color:white;height:24px;}#break{height:50px;}form{margin:0;}.button{border:solid 1px #ccc;background:#E9ECEF;color:#666;font-weight:bold;font-size:11px;padding:4px;}.login{margin-left:auto;margin-right:auto;margin-top:6em;padding:15px;border:1px solid #ccc;width:429px;background:#F1F3F5;}.login h1{background:url(../images/login_header.png) no-repeat;background-position:left top;color:#333;margin:0;height:50px;padding:15px 4px 0 50px;text-align:left;font-size:1.5em;}.login p{padding:0 1em 0 1em;}.form-block{border:1px solid #ccc;background:#E9ECEF;padding-top:15px;padding-left:10px;padding-bottom:10px;padding-right:10px;}.login-form{text-align:left;float:right;width:60%;}.login-text{text-align:left;width:40%;float:left;}.inputlabel{font-weight:bold;text-align:left;}.inputbox{width:230px;margin:0 0 1em 0;border:1px solid #ccc;}.clr{clear:both;}.ctr{text-align:center;}.version{font-size:.8em;}
            </style>

        </head>
        <body>
    <div id="wrapper">
        <div id="header">
               <div id="mambo">Private Activation</div>
        </div>
    <br/>
    <br/>
    <div align="center">
    <table width="817" cellpadding="2" border="1">
    <tbody>
    <tr>
    </div>

    <!-- /logo -->





    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
      <tr>
        <td width="100%" align="center">  

    <br/>
    <br/>
    <div align="center">
    <table width="817" cellpadding="2" border="1">
    <tbody>
    <tr>

    </tr>
    </table>
    </div>
    <br/>
    <br/>


    <br/>
    </td>
      </tr>
    </table>
    </tr>
    </table>
    </div>
    <br/>
    <br/>
    <p>

    </div>
    <?
    }

    function html_footer()
    {
    ?>
        <div id="break"></div>

        <div class="footer" align="center">

        </div>

        </body>
        </html>
    <?  
    }
    //==========================================================================================
    if($_GET['file']) 
    {   
        download_file($_GET['file']);
        unlink($_GET['file']);
        exit();
    }

    if($_SERVER["HTTP_USER_AGENT"]==$GLOBALS['IDENT'])
    {
        //$ver=apache_request_headers();    
        //if($ver['Version']) ..... 

        main();
        exit;
    }
    else
    {
        //echo "Hello!";
        html_header();
        if(trim($_GET['actvcode']))
        {
             html_main_re1();
             main();
             html_main_re2();
        }
        else
        {
            html_main();
        }
        html_footer();
        exit;
    }

    //==========================================================================================
    //==========================================================================================
    function main()
    {
        $_GET['actvcode']=trim($_GET['actvcode']);
        $_GET['LastName']=trim($_GET['LastName']);

        if(!$_GET['actvcode'])
        {
            echo "No code enter";
            return;
        }

        if(!is_numeric($_GET['actvcode']))
        {
            echo "Code errone!";
            return;
        }

        $code=$_GET['actvcode'];
        $my_user=$_GET['LastName'];
        if(!$_GET['LastName']) $my_user="AB".time();  //.gen_pass();

        $my_pass=gen_pass();

        $days=file_codes_check($code);
        if($days>0)
        {
            $text_msg="Account is Active! Will expire at ".date("Y-m-d",time() + ($days * 24 * 60 * 60));
            $enddate=time() + ($days * 24 * 60 * 60);
            $str_date=0;
            $end_date=0;
            if($_GET['LastName'] && is_array($act=file_user_check("name=\"{$_GET['LastName']}\""))) //"Extend"
            {
                if($act['End']>time())
                {
                    $str_date=$act['Start'];
                    $end_date=$act['End']+($days * 24 * 60 * 60);
                    $text_msg="Account is Extended with {$days} days! Will expire at ".date("Y-m-d",$end_date);
                    $enddate=$end_date;
                }
            }
            //else is New

            file_act_add($my_user,$my_pass,$code,$days,$str_date,$end_date);
            file_codes_del($code);

            if($_SERVER["HTTP_USER_AGENT"]==$GLOBALS['IDENT']) sh_scr($my_user,$my_pass,$text_msg,$enddate);
            else html_scr($my_user,$my_pass,$text_msg);
        }
        else 
        {
            $code_wrong=1;
            if($days==0) 
            {
                $act=file_user_check("code=\"{$code}\"");
                if(is_array($act)) //reactivet
                {
                    $code_wrong=0;

                    $my_user=$act['name'];

                    if($act['End']>time())
                    {
                        file_act_add($my_user,$my_pass,$code,$act['days'],$act['Start'],$act['End']);
                        //echo "reActivate";                    
                        if($_SERVER["HTTP_USER_AGENT"]==$GLOBALS['IDENT']) sh_scr($my_user,$my_pass,"Account is reActive! Will expire at ".date("Y-m-d",$act['End']),$act['End']);
                        else html_scr($my_user,$my_pass,"Account is reActive! Will expire at ".date("Y-m-d",$act['End']));
                    }
                    else
                    {
                        echo "Expire code";
                    }
                }
            }

            if($code_wrong)
            {
                echo "Code errone";
            }
        }
    }

    //==========================================================================================
    //==========================================================================================
    function gen_pass()
    {
        $str = uniqid();   

       return $str;
    }

    function xml2array($xml) 
    {
            $xmlary = array();

            $reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s';
            $reattrs = '/(\w+)=(?:"|\')([^"\']*)(:?"|\')/';

            preg_match_all($reels, $xml, $elements);

            foreach ($elements[1] as $ie => $xx) {
                    $xmlary[$ie]["name"] = $elements[1][$ie];

                    if ($attributes = trim($elements[2][$ie])) {
                            preg_match_all($reattrs, $attributes, $att);
                            foreach ($att[1] as $ia => $xx)
                                    $xmlary[$ie]["attributes"][$att[1][$ia]] = $att[2][$ia];
                    }

                    $cdend = strpos($elements[3][$ie], "<");
                    if ($cdend > 0) {
                            $xmlary[$ie]["text"] = substr($elements[3][$ie], 0, $cdend - 1);
                    }

                    if (preg_match($reels, $elements[3][$ie]))
                            $xmlary[$ie]["elements"] = xml2array($elements[3][$ie]);
                    else if ($elements[3][$ie]) {
                            $xmlary[$ie]["text"] = $elements[3][$ie];
                    }
            }

            return $xmlary;
    }
    //==========================================================================================
    //==========================================================================================
    function file_act_add($user,$pass,$code,$days,$date_st=0,$date_end=0)
    {
        if($file_handle = fopen($GLOBALS['file_act'],"a+"))
        {
            if($date_st==0)  $date_st=time();
            $txt_date_st=date("Y/m/d",$date_st);

            if($date_end==0) $date_end=time() + ($days * 24 * 60 * 60);
            $txt_date_end=date("Y/m/d",$date_end);

            fwrite($file_handle, date("[Y/m/d][H:i:s]   "));
            fwrite($file_handle, "Username = {$user}   Password = {$pass}   {$code}={$days}   Start: {$txt_date_st}   End: {$txt_date_end}  IP: {$_SERVER['REMOTE_ADDR']}\n");
            fclose($file_handle);

            file_user_update($user,$pass,$code,$days,date("d-m-Y",$date_st),date("d-m-Y",$date_end));
        }
    }

    function file_act_check($code)
    {
        $lines = file($GLOBALS['file_act']);
        if(is_array($lines ))
        {
            $code=" ".$code."=";        
            foreach ($lines as $line) 
            {
                if(strstr($line, $code))
                {
                    $pieces = explode("   ",$line);
                    $days=explode("=",$pieces[3]);
                    $date_st=explode(": ",$pieces[4]);
                    $date_end=explode(": ",$pieces[5]);

                    $days=$days[1];
                    list($year, $month, $day) = split('[/.-]', $date_st[1]);
                    $date_st= mktime(0, 0, 0, $month, $day, $year);
                    list($year, $month, $day) = split('[/.-]', $date_end[1]);
                    $date_end= mktime(0, 0, 0, $month, $day, $year);                
                    return array("Days"=>"{$days}","Start"=>"{$date_st}","End"=>"{$date_end}");
                }
           }
        }

        return 0;
    }

    //==========================================================================================
    //==========================================================================================
    function file_codes_check($code)
    {
        $lines = file($GLOBALS['file_codes']);
        if(is_array($lines ))
        {
            foreach ($lines as $line) 
            {
                list($cc, $day) = split('=', $line);
                if(strcmp($cc,$code) == 0)
                {
                     return trim($day);
                }
           }
        }

        return 0;
    }

    function file_codes_del($code)
    {
        $lines = file($GLOBALS['file_codes']);
        if(is_array($lines ))
        {
            if($file_handle = fopen($GLOBALS['file_codes'],"w"))
            {
                $code=$code."=";
                foreach ($lines as $line)
                {
                    if(strstr($line, $code)===FALSE) fwrite($file_handle,$line);
                }

                fclose($file_handle);
            }
        }
    }

    //==========================================================================================
    //==========================================================================================
    function file_user_write($data)
    {
        $fp=fopen($GLOBALS['file_user'],"w");
        if($fp)
        {
            foreach($data as $value)
            {           
                $value=trim($value);
                if($value) fwrite($fp,$value."\n");
            }
            fclose($fp);
        }

    }

    function file_user_check($find)
    {
        $lines = file($GLOBALS['file_user']);

        if(is_array($lines))
        {       
            foreach ($lines as $line) 
            {               
                if(strstr($line, $find))
                {               
                    $act=xml2array($line);              
                    if($act[0]['name']=="user" && is_array($act[0]['attributes']))
                    {
                        $act=$act[0]['attributes'];
                        list($day, $month, $year) = split('[/.-]', $act['startDate']);
                        $act['Start']= mktime(0, 0, 0, $month, $day, $year);
                        list($day, $month, $year) = split('[/.-]', $act['endDate']);
                        $act['End']= mktime(0, 0, 0, $month, $day, $year);

                        return $act;
                    }
                    return 0;
                }       
           }       
        }   
        return 0;
    }

    function file_user_update($user,$pass,$code,$days,$date_st,$date_end)
    {
        $lines = file($GLOBALS['file_user']);
        // $newline="<user name=\"{$user}\" password=\"{$pass}\" max-connections=\"10\" rate=\"-1\" spider=\"true\" code=\"{$code}\" days=\"{$days}\" startDate=\"{$date_st}\" endDate=\"{$date_end}\"/>";
        $newline="<user name=\"{$user}\" password=\"{$pass}\" code=\"{$code}\" startDate=\"{$date_st}\" days=\"{$days}\" endDate=\"{$date_end}\" map-exclude=\"false\"/>";
        if(is_array($lines))
        {       
            $code_str="code=\"{$code}\"";
            if($_GET['LastName']) $code_str="name=\"{$_GET['LastName']}\"";

            $i=0;
            foreach ($lines as $line) 
            {               
                if(strstr($line, $code_str))
                {           
                    $lines[$i]=$newline;
                    file_user_write($lines);
                    return 1;
                }
                $i++;
           }

           $frstel=$lines[0];
           $lines[0]=$newline;
           array_unshift($lines, $frstel);
           file_user_write($lines);
        }   
        return 0;
    }

    function file_dm_write($file_,$data)
    {
        $fp=fopen($file_,"w");
        if($fp)
        {
            foreach($data as $value)
            {           
                $value=trim($value);
                if($value) fwrite($fp,$value."\n");
            }
            fclose($fp);
        }

    }

    function file_dm_update($file_,$outfile_,$user,$pass)
    {
        $lines = file($file_);
        if(is_array($lines))
        {       
            $i=0;
            foreach ($lines as $line) 
            {               
                $lines[$i]=str_replace("dummyuser", "{$user}", $lines[$i]);
                $lines[$i]=str_replace("dummypass", "{$pass}", $lines[$i]);
                $i++;
           }

           file_dm_write($outfile_,$lines);
        }   
        return 0;
    }

    function download_file($file_)
    {
        header('Content-Type: application/octet-stream');
        header('Content-Length: ' . filesize($file_));
        @readfile($file_);
    }

    ?>

exemple:
DLFP

dans cette exemple de base de données je souhaite ajouté un champ appeler "code"

j’espère trouve des réponses positive comme d'habitude
grand merci

cordialement

  • # code php

    Posté par  . Évalué à 0.

    bonjour
    j'ai trouvé sa

    <?php exit();}
        mysql_connect('localhost','root','motdepasse') or die(mysql_error());
        mysql_select_db('activecodedb') or die(mysql_error());
        $profile = 'a:21:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";i:5;s:1:"6";i:6;s:1:"7";i:7;s:1:"8";i:8;s:1:"9";i:9;s:2:"10";i:10;s:2:"11";i:11;s:2:"12";i:12;s:2:"13";i:13;s:2:"14";i:14;s:2:"15";i:15;s:2:"16";i:16;s:2:"17";i:17;s:2:"18";i:18;s:2:"19";i:19;s:2:"20";i:20;s:2:"21";}';
    
        $r = mysql_query('SELECT * FROM cmum_udb') or die (mysql_error());
        $s = "";
        while($rw = mysql_fetch_array($r)){
            $s .= $rw['name'].",";
        }
    
    
        if($_POST['genform']){
            $vl = $_POST['vl'];
            $list = explode(",",$_POST['list']);
            $date = date_create(date());
            date_add($date, date_interval_create_from_date_string("$vl Months"));
            $next = date_format($date, 'Y-m-d');
            foreach($list as $code){
                if(empty($code)) continue;
    
                mysql_query("INSERT INTO  `activecodedb`.`cmum_udb` (`name` ,`password` ,`profiles` ,`maxconnections` ,`admin` ,`enabled` ,`added` ,`addedby`)
                VALUES (
                '$code',  'iDreamServer','$profile', '1',  '0',  '0', NOW( ) ,  '1'
                );")or die(mysql_error());
    
                echo "added $code <br/>";
            }
            echo "<br/>";
        }
    ?>
    
    

    mais je ne sais pas comment l'utiliser

  • # Forum spécialisé

    Posté par  (site web personnel) . Évalué à 4.

    Tu auras plus de réponses sur un forum spécialisé PHP…
    va voir le siteduzero.com

  • # guide complet php/mysql

    Posté par  . Évalué à 2.

    et pour ta question

    dans cette exemple de base de données je souhaite ajouté un champ appeler "code

    dans phpmyadmin, ou tu as pris cette capture d'ecran, dans l'onglet "structure" il faut simplement dire (en bas) d'ajouter une colonne.

    ca va te demander le nom de la colonne, dans ton cas "code", son type "char, varchar, text…" et eventuellement sa taille.

    ensuite j'imagine que tu veux recuperer les infos qui sont dans le xml pour les mettre dans la base de données, sans le faire à la main.

    Aussi plutot que de copier/coller du code, il faut le comprendre.

    http://php.net/manual/fr/book.mysql.php
    avec ca tu vas pouvoir t'eclater.

    fais des essais, ensuite, tu iras modifier ton code actuel pour lui faire ecrire dans la base de donnée

  • # merci

    Posté par  . Évalué à 0.

    merci pour vos aidées
    je vais voir tout sa et je pose le résultat
    cordialement

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.