Login   Register  
PHP Classes
elePHPant
Icontem

File: index.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of husson kevin  >  myFTP  >  index.php  >  Download  
File: index.php
Role: Example script
Content type: text/plain
Description: An good exemple to use the class..
Class: myFTP
Manage files and directories in an FTP server
Author: By
Last change: update
Date: 2008-12-21 05:26
Size: 8,017 bytes
 

Contents

Class file image Download
<?php

/*##################################################

# Class Name     : myFTP                                #
# Author         : HUSSON KEVIN                        #
# Email         : husson.kevin@gmail.com            #
# Version        : 1.0                                #

###################################################*/

session_start();

require_once(
'FtpPti.class.php');

require_once(
'upload.class.php');

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <title>myFTP : husson.kevin@gmail.com</title>
</head>
<body>
    <div id="headerFTP">
        Client FTP en PHP Orienté Objet<br /> Codé par HUSSON Kévin - 2008
    </div>


<?php
#################################################################################
#                                                                                #
#                            Formulaire De connection                            #
#                                                                                #
#################################################################################
function secu($t$num false){
    return (
$num) ? intVal($t) : htmlentities($t ENT_QUOTES);
}

if(!
$_SESSION['ftpConnect']){
    
?>
    <div id="Login">
        <?php
        
if(isset($_POST['connect']) && !empty($_POST['host']) && !empty($_POST['user'])){
        
// DATA TEST
            
$ftpU secu($_POST['user']);
            
$ftpP secu($_POST['pass']);
            
$ftpH secu($_POST['host']);
            
$ftpP2 = ($_POST['port'] != && $_POST['port'] != 21 && is_numeric($_POST['port'])) ? secu($_POST['port']) : 21;
            
$ftpM = ($_POST['mode'] == 'true') ? 'true' 'false';
        
// CONNECTION    
            
try{
                
$ftp = new myFTP($ftpH$ftpU$ftpP$ftpP2$ftpM);
                
                
$_SESSION['ftpConnect']['host'] = $ftpH;
                
$_SESSION['ftpConnect']['user'] = $ftpU;
                
$_SESSION['ftpConnect']['pass'] = $ftpP;
                
$_SESSION['ftpConnect']['port'] = $ftpP2;
                
$_SESSION['ftpConnect']['mode'] = $ftpM;
                echo
'<script>document.location.href="'.$_SERVER['PHP_SELF'].'"</script>';
            }
            catch(
exception $e){
                echo 
'Erreur: '.$e->getMessage;
                
$ftp->closit();
            }
        }
        
// FORM
        
?>
        <form method="POST" enctype="multipart/form-data">
        <table>
            <tr><td>Addresse :</td><td><input type="text" name="host" size="25"></td></tr>
            <tr><td>Pseudo :</td><td><input type="text" name="user" size="25"></td></tr>
            <tr><td>Password :</td><td><input type="password" name="pass" size="25"></td></tr>
            <tr><td>Port :</td><td><input type="text" name="port" size="5"></td></tr>
            <tr><td><input type="checkbox" value="true" name="mode" /><span style="font-size: 12px;">Mode passif</span></td>
                <td>
                    <input type="reset" name="annulation" value="Annuler">
                    <input type="submit" name="connect" value="Connection">
                </td>
            </tr>
        </table>
        </form>
    </div>
    <?php
}
else{
    try{
        
$ftp = new myFTP($_SESSION['ftpConnect']['host'],$_SESSION['ftpConnect']['user'],$_SESSION['ftpConnect']['pass'],$_SESSION['ftpConnect']['port'],$_SESSION['ftpConnect']['mode']);
    }
    catch(
exception $e){
        echo 
'Erreur: '.$e->getMessage;
    }


    
// QUIT
        
if(isset($_POST['seDeco'])){
            
session_destroy();
            unset(
$ftp);
            echo 
'<meta http-equiv="Refresh" content="0;URL='.$_SERVER['PHP_SELF'].'">';
        }
    
// MENU
    
?>
<div id="menu">
    MENU<br /><br />
    <LEGEND>Creer un Dossier : </LEGEND>
        <table>
            <form method="POST" enctype="multipart/form-data">
                <tr><td><input type="text" name="CreerDossier" size="25" /></td></tr>
                <tr>
                    <td>
                        <input type="reset" name="annulation" value="Annuler" />
                        <input type="submit" name="Creer" value="Creer le Dossier" />
                    </td>
                </tr>
            </form>
        </table>
    <br />

    <LEGEND>Uploader : </LEGEND>
        <table>
            <form method="POST" enctype="multipart/form-data">
                <tr><td><input type="file" name="uploadFichier" size="20" /></td></tr>
                <tr>
                    <td>
                        <input type="hidden" name="MAX_FILE_SIZE" value="500" />
                        <input type="reset" name="annulation" value="Annuler" />
                        <input type="submit" name="EnvoyerFichier" value="Envoyer le Fichier" />
                    </td>
                </tr>
            </form>
        </table>
    <br />

    <LEGEND>Se Deconnecter : </LEGEND>
        <table>
            <form method="POST" enctype="multipart/form-data">
                <tr>
                    <td><input type="submit" name="seDeco" value="Quitter le FTP" /></td>
                </tr>
            </form>
        </table>
</div>

<div id="contenuFTP">
    <?php

    
// GET THE ACTUAL FOLDER
        
if(!$_SESSION['ftpConnect']['folder'])
            
$dir '/';
        else
            
$dir $_SESSION['ftpConnect']['folder'];
        
$ftp->cd($dir); // --> Affecte le dossier !
        
echo '<div class="dossierActuel">Dossier Actuel : '.$ftp->pwd().'</div>';


    
// GET ACTION
        
if(isset($_GET['ftp'])){
            switch (
$_GET['ftp']){
                
// DELETE : FOLDER / FILE
                
case 'del':
                    if(
$ftp->delfolder(secu($_GET['fichier'])))
                        echo
'<p>Dossier correctement supprimé.</p>';
                    if(
$ftp->delfile(secu($_GET['fichier'])))
                        echo
'<p>Fichier correctement supprimé.</p>';
                    echo
'<meta http-equiv="Refresh" content="2;URL='.$_SERVER['PHP_SELF'].'">';
                break;

                
// LIST DIR
                
case 'parcourir':
                    
$ftp->cd($ftp->pwd().'/'.secu($_GET['dir']).'/');
                    
$_SESSION['ftpConnect']['folder'] = $ftp->pwd();
                    echo
'<meta http-equiv="Refresh" content="0;URL='.$_SERVER['PHP_SELF'].'">';
                break;

                
//default: throw new Exception('<strong>Page introuvable.</strong><br />');break;
            
}
        }


    
// CREATE FOLDER
        
if(isset($_POST['Creer']) && !empty($_POST['CreerDossier'])){
            
$fichieraCreer secu($_POST['CreerDossier']);
            if(
$userFTP->creer($fichieraCreer))
                echo
'<p>Dossier correctement créé.</p>';
            
//echo'<meta http-equiv="Refresh" content="2;URL='.htmlentities($_SERVER['PHP_SELF'],ENT_QUOTES).'">';
        
}


    
// UPLOAD DE FICHIER
        
if(isset($_POST['EnvoyerFichier']) && !empty($_FILES)){
            try{
                
// Instanciation
                    
$up = new Uploader($_FILES);
                
// Envoi du Fichier en HTTP + Verification Si Envoi == true
                    
if($up->envoiFichierTMP()){
                        
// Upload en FTP
                        
if($ftp->upload($_FILES["uploadFichier"]["name"],$_FILES["uploadFichier"]["tmp_name"]))
                            echo 
'<p>Fichier Correctement Envoyé.</p>';
                        else
                            throw new 
Exception('<strong>Impossible d\'envoyer le fichier sur le serveur FTP</strong>');
                    }
            }
            catch(
Exception $messageUp){
                echo 
$messageUp->getMessage();
                echo 
'<meta http-equiv="Refresh" content="2;URL='.$_SERVER['PHP_SELF'].'">';
            }
            
// Sécurité - Evite de lancer un fichier temporaire sur le serveur HTTP d'upload !
            
if(@file_exists($_FILES["uploadFichier"]["tmp_name"]))
                @
unlink($_FILES["uploadFichier"]["tmp_name"]);
        }

        
// LIST FILES/FOLDERS
        
?>
        <table>
            <tr>
                <th> Nom du fichier </th>
                <th> Timestamp </th>
                <th align="center"> Taille </th>
                <th> Permissions </th>
                <th> Suppression </th>
            </tr>
            <tr>
                <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?ftp=parcourir&dir=../">Parent</a></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        <?php
        
foreach ($ftp->list_hard($ftp->pwd())  as $c => $v){
            
$cc count($v);
            for (
$i=0$i $cc$i++){
                
$regex "^([^ ]+) +[^ ]+ +([^ ]+) +([^ ]+) + ([^ ]+) +([^ ]+ +[^ ]+ +[^ ]+) +(.+)$";
                
// Alternance de couleurs
                    
if ($i == 0)
                        
$bgcolor "bgcolor=\"#CCC\"";
                    else
                        
$bgcolor "bgcolor=\"#FFF\"";
                
// Jointure Expression réguliere
                    
ereg($regex$v[$i], $file_info);
                
// Affichage HTML
                
echo '<tr><td '.$bgcolor.'><a href="'.$_SERVER['PHP_SELF'].'?ftp=parcourir&dir='.$file_info[6].'">'.$file_info[6].'</a></td>';
                echo 
"<td $bgcolor>$file_info[5]</td>";
                echo 
'<td align="center" '.$bgcolor.'>'.$ftp->taille2($file_info[4]).'</td>';
                echo 
"<td $bgcolor>$file_info[1]</td>";
                echo 
'<td '.$bgcolor.'><a href="'.$_SERVER['PHP_SELF'].'?ftp=del&fichier='.$file_info[6].'">Supprimer</a></td>';
            }
        }
        
?>
        </table>
    </div>
    <?php
}
?>
</body>
</html>