Créer une classe pour se connecter au ftp
Splagadou
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Splagadou Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Splagadou Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voilà, je suis en train de monter un petit projet perso (on reste dans le débutant) dans lequel j'ai besoin de créer un module qui va chercher tout seul des infos sur mon ftp pour les afficher, les traiter etc.
J'ai écrit le code suivant pour me connecter et ça fonctionne (enfin, c'est surtout le code du manuel php, j'ai pas fait grand-chose non plus) :
Du coup, pour réutiliser plus facilement ce code sur d'autres modules, je voudrais le transformer en classe. Malheureusement, j'y connais pas grand-chose vu que ça ne marche pas tellement.
J'ai créé deux fichiers : FTP.class.php et index.php pour tester rapido sur un serveur, mais rien ne se passe (je pense que c'est au niveau de la transmission des infos que ça plante, mais évidemment je n'en sais rien). Voici le code :
FTP.class.php
Index.php
Je ne suis pas du tout sûr de ce code là, c'est ici que j'ai le moins de connaissance, j'ai commencé à lire des trucs sur les classes y a un mois environ et je n'arrive à rien. Mais j'ai bon espoir que ça change :). Le truc c'est que index.php devrait se connecter au FTP et m'afficher le message "youpi je suis connecté" comme sur le premier exemple.
Si j'ai bien compris, le __construct me permet de mettre à 0 les valeurs de l'objet à chaque instance, et il faudrait donc que je passe mes params de connexion quand je crée un objet, comme sur le index.php. Mais je me trompe peut-être sur l'endroit où les passer ? ou juste sur le code en lui-même, mais là, je vois pas où du tout.
Voilà voilà, donc si quelqu'un avait une idée, un conseil, n'importe quoi qui me permette d'avancer sur ce problème, merci bien.
Voilà, je suis en train de monter un petit projet perso (on reste dans le débutant) dans lequel j'ai besoin de créer un module qui va chercher tout seul des infos sur mon ftp pour les afficher, les traiter etc.
J'ai écrit le code suivant pour me connecter et ça fonctionne (enfin, c'est surtout le code du manuel php, j'ai pas fait grand-chose non plus) :
<?php
$ftp_server = "ftpAA";
$ftp_user = "BB@BB.fr";
$ftp_pass = "CC";
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
// Tentative d'identification
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
echo "Connecté en tant que $ftp_user@$ftp_server\n";
} else {
echo "Connexion impossible en tant que $ftp_user\n";
}
// Fermeture de la connexion
ftp_close($conn_id);
?>
Du coup, pour réutiliser plus facilement ce code sur d'autres modules, je voudrais le transformer en classe. Malheureusement, j'y connais pas grand-chose vu que ça ne marche pas tellement.
J'ai créé deux fichiers : FTP.class.php et index.php pour tester rapido sur un serveur, mais rien ne se passe (je pense que c'est au niveau de la transmission des infos que ça plante, mais évidemment je n'en sais rien). Voici le code :
FTP.class.php
<?php
// INITIALISATION
class FTP{
private $ftp_stream;
private $ftp_host;
private $ftp_user;
private $ftp_password;
private $ftp_port;
function __construct() {
$this->ftp_stream="";
$this->ftp_host="";
$this->ftp_user="";
$this->ftp_password="";
$this->ftp_port="";
}
function __destruct() {}
// METHODES
protected function connexion() {
$conn_id = ftp_connect($this->ftp_stream;) or die("Couldn't connect to $ftp_stream");
if (@ftp_login($conn_id, $ftp_user, $ftp_password)) {
echo "Connecté en tant que $ftp_user sur le serveur $ftp_stream\n";
}
else {
echo "Connexion impossible en tant que $ftp_user\n";
}
}
} ?>
Index.php
<?php
require 'FTP.class.php';
$ftp = new FTP;
$ftp->connexion('ftpAA', 'BB', 'CC');
?>
Je ne suis pas du tout sûr de ce code là, c'est ici que j'ai le moins de connaissance, j'ai commencé à lire des trucs sur les classes y a un mois environ et je n'arrive à rien. Mais j'ai bon espoir que ça change :). Le truc c'est que index.php devrait se connecter au FTP et m'afficher le message "youpi je suis connecté" comme sur le premier exemple.
Si j'ai bien compris, le __construct me permet de mettre à 0 les valeurs de l'objet à chaque instance, et il faudrait donc que je passe mes params de connexion quand je crée un objet, comme sur le index.php. Mais je me trompe peut-être sur l'endroit où les passer ? ou juste sur le code en lui-même, mais là, je vois pas où du tout.
Voilà voilà, donc si quelqu'un avait une idée, un conseil, n'importe quoi qui me permette d'avancer sur ce problème, merci bien.
A voir également:
- Créer une classe pour se connecter au ftp
- Se connecter à gmail sur téléphone - Guide
- Créer un lien pour partager des photos - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer une adresse hotmail - Guide
1 réponse
Ca ça marche :
Index.php
Connexion.class.php
Index.php
<?php
require 'connexion.class.php';
//(hote, utilisateur, mdp, port)
$connexion = new Connexion("", "", "", "");
?>
Connexion.class.php
<?php
class Connexion {
private $_ftp_host;
private $_ftp_user;
private $_ftp_pass;
private $_ftp_port;
function __construct($a, $b, $c, $d) {
$this->setHost($a);
$this->setUser($b);
$this->setPass($c);
$this->setPort($d);
$this->connexion_ftp();}
//GETTERS - SETTERS
function ftp_host() {return $this->_ftp_host;}
function ftp_user() {return $this->_ftp_user;}
function ftp_pass() {return $this->_ftp_pass;}
function ftp_port() {return $this->_ftp_port;}
function setHost($ftp_host) {$this->_ftp_host = $ftp_host;}
function setUser($ftp_user) {$this->_ftp_user = $ftp_user;}
function setPass($ftp_pass) {$this->_ftp_pass = $ftp_pass;}
function setPort($ftp_port) {$this->_ftp_port = $ftp_port;}
//METHODES
function connexion_ftp()
{
// Mise en place d'une connexion basique
$conn_id = ftp_connect($this->_ftp_host, $this->_ftp_port) or die("Impossible de se connecter à $this->_ftp_host");
// Tentative d'identification
if (@ftp_login($conn_id, $this->_ftp_user, $this->_ftp_pass)) {
echo "Connecté en tant que $this->_ftp_user sur le serveur $this->_ftp_host sur le canal $this->_ftp_port\n";
} else {
echo "Connexion impossible en tant que $this->_ftp_user\n";
}
// Fermeture de la connexion
ftp_close($conn_id);
}
}
?>