|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
SAUVEGARDE D'UNE BASE DE DONNÉE, RESULTAT ENVOYER PAR EMAIL, SUR FTP OU BIEN SAVEGARDER EN LOCAL
Information sur la source
Description
Ma classe SaveBD() permet de faire des sauvegarder a l'aide de cron. Vous pouvez choisir le type de média voulu, soit un envoie a un courriel, soit dans un répertoir local de votre site, soit sur un site ftp distant. Prendre note que les fichier .sql son en texte lisible, donc n'oubliez pas de sécurisé le répertoire de destination.
Source
- <?php
-
-
- /*************************************************/
- /* SAUVEGARDE DE BASE DE DONNEES */
- /* STRUCTURE ET CONTENU */
- /* Option d'envoie par email, */
- /* Option de sauvegarde local, */
- /* Option de sauvegarde sur ftp distant */
- /*************************************************/
-
- /*
- utilisation:
- sauvegarde simple
- ---> save_db.php?db=nom_de_la_base
- */
-
- class saveBD {
-
- const Producteur_nom = "1030";
- const Producteur_commentaire = "Service de sauvegarde MySql";
- const Producteur_HTTP = "www.monsite.com";
- const Producteur_email = "webmaster@monsite.com";
- const Producteur_version = "1.0";
-
- private $sql_export = "";
- private $ini = array();
-
- public function __construct($db,$host="",$user="",$pass="") {
- $this->ini["db_host"] = !empty($host) ? $host : "localhost";
- $this->ini["db_user"] = !empty($user) ? $user : "root";
- $this->ini["db_pass"] = !empty($pass) ? $pass : "";
- $this->ini["db_name"] = $db;
-
- $this->ini["email_adresse"] = "votre@email.com";
-
- $this->ini["ftp_url"] = "ftp.monsite.com";
- $this->ini["ftp_login"] = "user";
- $this->ini["ftp_pass"] = "password";
- $this->ini["ftp_filename"] = "Backup_MySql_".$db;
-
- $this->ini["file_name"] = "Backup_MySql";
-
- $this->dbconnect();
- $this->sql_export = $this->contenu();
- }
- public function __destruct()
- {
- @mysql_close();
- }
- private function get_table_structure($db, $table)//$db=nom de la base,$table=nom de la table
- {
- //CREATE TABLE
- $result = mysql_db_query($db, "SHOW CREATE TABLE `$table`") or mysql_die();
- $row = mysql_fetch_array($result);
- $schema_create = $row[1];
-
- $schema_create = str_replace("\n","\r\n",$schema_create).";";
- return (stripslashes($schema_create));
- }
-
- private function get_table_content($db, $table)//$db=nom de la base,$table=nom de la table
- {
- $result = mysql_db_query($db, "SELECT * FROM `$table`") or mysql_die();
- $i = 0;
- $search = array("\x00", "\x0a", "\x0d", "\x1a"); //on remplace: NULL, LF, CR
- $replace = array('\0', '\n', '\r', '\Z');
-
- //INSERT INTO
- $table_list = "(";
- for($j=0; $j<mysql_num_fields($result);$j++)
- $table_list .= "`".mysql_field_name($result,$j)."`, ";
-
- $table_list = substr($table_list,0,-2);
- $table_list .= ")";
-
- $schema_insert = "INSERT INTO `$table` $table_list VALUES \r\n";
-
- //VALUE
-
- $value_insert = array();
- while($row = mysql_fetch_row($result))
- {
- $values = array();
- for($j=0; $j<mysql_num_fields($result);$j++)
- {
-
- if(!isset($row[$j])) {
- $values[] = "NULL";
- }
- elseif($row[$j] != "") {
- $values[] = "'".str_replace($search, $replace, addslashes($row[$j]))."'";
- }
- else {
- $values[] = " ''";
- }
- }
- $value_insert[] ='(' . implode(', ', $values) . ')';
- $i++;
- }
-
- $schema_insert = count($value_insert) > 0 ? $schema_insert . implode(",\r\n",$value_insert) .";" : "";
-
- return trim($schema_insert)."\r\n";
- }
- private function contenu()
- {
- $sql_export = "\r\n";
- $sql_export .= "# --------------------------------------------------------\r\n";
- $sql_export .= "# -- ".self::Producteur_nom." - ".self::Producteur_commentaire."\r\n";
- $sql_export .= "# -- Version ".self::Producteur_version."\r\n";
- $sql_export .= "# -- http://".self::Producteur_HTTP."\r\n";
- $sql_export .= "# -- \r\n";
- $sql_export .= "# -- Serveur : ".$this->ini["db_host"]."\r\n";
- $sql_export .= "# -- Généré le : ". format_date(Date("Y-m-d"))." à ". Date("H:i") ."\r\n";
- $version_mysql = explode("-", mysql_get_server_info());
- $sql_export .= "# -- Version de MySql : ". $version_mysql[0] ."\r\n";
- $sql_export .= "# -- Version de PHP : ".phpversion()."\r\n";
- $sql_export .= "# -- \r\n";
- $sql_export .= "# -- Base de donnée : ". $this->ini["db_name"] ."\r\n";
-
- $i = 0;
- while($i < $this->ini["num_tables"])
- {
- $table = mysql_tablename($this->ini["tables"], $i);//Lit le nom de la table qui contient le champs spécifié
-
- $sql_export .= "# --------------------------------------------------------\r\n";
- $sql_export .= "\r\n";
- $sql_export .= "# -- \r\n";
- $sql_export .= "# -- Structure de la table `".$table."`\r\n";
- $sql_export .= "# -- \r\n";
- $sql_export .= "\r\n";
- $sql_export .= $this->get_table_structure($this->ini["db_name"], $table)."\r\n\r\n";
-
- $sql_export .= "# -- \r\n";
- $sql_export .= "# -- Contenu de la table `".$table."`\r\n";
- $sql_export .= "# -- \r\n";
- $sql_export .= "\r\n";
- $sql_export .= $this->get_table_content($this->ini["db_name"], $table);
-
- $i++;
-
- }
- return $sql_export;
- }
- //Connexion à la base de donnée
- private function dbconnect() {
-
- @set_time_limit(600);
- @mysql_connect($this->ini["db_host"],$this->ini["db_user"],$this->ini["db_pass"])
- or die("Impossible de se connecter - Problème sur le 'Hostname' ou sur le 'User' ou sur le 'Password'");
- @mysql_select_db($this->ini["db_name"])
- or die("Impossible de se connecter à la base ou nom de base inconnu");
-
- header("Expires: 0");
-
- $this->ini["tables"] = mysql_list_tables($this->ini["db_name"]);//Liste les tables d'une base de données.
- $this->ini["num_tables"] = mysql_num_rows($this->ini["tables"]);//Retourne le nombre de lignes d'un résultat
- }
- //Imprime à l'écrant le contenue pour la création de la BD
- public function print_db()
- {
- return str_replace("\r\n","<BR>",$this->sql_export);
- }
- //envoie un email avec le fichier joint
- public function confirme_email()
- {
- //Sujet du courriel
- $sujet = Producteur_commentaire." le ".date("d/m/Y");
-
- //Entete du courriel
- $boundary = '-----='.md5(uniqid(rand()));
- $headers = "From: ".Producteur_nom."<".Producteur_email.">\n";
- $headers .= "MIME-Version: 1.0\n";
- $headers .= "Content-Type: multipart/mixed;";
- $headers .= " boundary=\"----=".$boundary."\"\n\n";
-
-
- //Ajoute le message au courriel
- $message = "------=".$boundary."\n";
- $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
- $message .= "Content-Transfer-Encoding: 32bit\n\n";
- $message .= "
- Techno-Vie - Service de sauvegarde mensuelle de votre base de donnée
- ";
- $message .= "\n\n";
-
- //Ajoute la pièce jointe
- $attachement = "------=".$boundary."\n";
- $attachement .= "Content-Type: text/plain; name=\"Backup_MySql_aprmq_".date("Ymd-Hi").".sql\"\n";
- $attachement .= "Content-Transfer-Encoding: base64\n";
- $attachement .= "Content-Disposition: attachment; filename=\"Backup_MySql_aprmq_".date("Ymd-Hi").".sql\"\n\n";
- $attachement .= chunk_split(base64_encode($this->sql_export));
-
- mail($this->ini["email_adresse"],$sujet,$message.$attachement,$headers);
- }
- //save le fichier sur le serveur
- public function save_file($file="")
- {
- $this->ini["file_name"] = empty($file) ? $this->ini["file_name"] : $file;
-
- if (!$handle = fopen($this->ini["file_name"].'.sql', 'w'))
- echo('Impossible d\'ouvrir en écriture le fichier sql : '.$this->ini["file_name"].".sql\n");
- if (fwrite($handle, $this->sql_export) == FALSE)
- echo('Erreur d\'exportation de la base '.$this->ini["db_name"]."\n");
- fclose($handle);
- }
- //save le fichier sur un serveur externe
- public function save_ftp($url="",$login="",$pwd="",$file="")
- {
- $this->ini["ftp_url"] = empty($url) ? $this->ini["ftp_url"] : $url;
- $this->ini["ftp_login"] = empty($login) ? $this->ini["ftp_login"] : $login;
- $this->ini["ftp_pass"] = empty($pwd) ? $this->ini["ftp_pass"] : $pwd;
- $this->ini["ftp_filename"] = empty($file) ? $this->ini["ftp_filename"] : $file;
-
-
- $conn_id = ftp_connect($this->ini["ftp_url"]);
-
- // Identification avec un nom d'utilisateur et un mot de passe
- $login_result = ftp_login($conn_id, $this->ini["ftp_login"], $this->ini["ftp_pass"]);
-
- // Efface l'ancien fichier
- $del_result = ftp_delete($conn_id,$this->ini["ftp_filename"].".sql");
-
- // Fermeture de la connexion et du pointeur de fichier
- ftp_close($conn_id);
-
- $ftp = "ftp://".$this->ini["ftp_login"].":".$this->ini["ftp_pass"]."@".$this->ini["ftp_url"]."/".$this->ini["ftp_filename"].".sql";
-
- $handle = fopen($ftp, "w") or die("FTP - Impossible d'ouvrir en écriture le fichier : ".$this->ini["file_name"].".sql\n");
-
- if(fwrite($handle, $this->sql_export) == FALSE)
- {
- echo "Erreur d'exportation de la base ".$this->ini["db_name"]."\n";
- }
- fclose($handle);
- }
- }
-
- /*************************************
- * Variable pour des dates
- *************************************/
- define("VAR_JAN","Janvier");
- define("VAR_FEV","Février");
- define("VAR_MAR","Mars");
- define("VAR_AVR","Avril");
- define("VAR_MAI","Mai");
- define("VAR_JUN","Juin");
- define("VAR_JUI","Juillet");
- define("VAR_AOU","Août");
- define("VAR_SEP","Septembre");
- define("VAR_OCT","Octobre");
- define("VAR_NOV","Novembre");
- define("VAR_DEC","Décembre");
-
- function format_date($date) {
- $mois = array(VAR_JAN, VAR_FEV, VAR_MAR, VAR_AVR, VAR_MAI, VAR_JUN, VAR_JUI, VAR_AOU, VAR_SEP, VAR_OCT, VAR_NOV, VAR_DEC);
-
- $jour = strftime("%d", strtotime($date));
- $mois2 = intval(strftime("%m", strtotime($date))) -1;
- $mois2 = $mois[$mois2];
- $annee = strftime("%Y", strtotime($date));
-
- $date = $jour." ".$mois2.", ".$annee;
- return $date;
- }
-
- /*************************************************/
- /* Programme principal */
- /*************************************************/
-
- $DB = new saveBD($_GET["db"]);
- $DB->print_db();
- //$DB->save_ftp();
- //$DB->save_file();
- //$DB->confirme_email();
-
-
- ?>
<?php
/*************************************************/
/* SAUVEGARDE DE BASE DE DONNEES */
/* STRUCTURE ET CONTENU */
/* Option d'envoie par email, */
/* Option de sauvegarde local, */
/* Option de sauvegarde sur ftp distant */
/*************************************************/
/*
utilisation:
sauvegarde simple
---> save_db.php?db=nom_de_la_base
*/
class saveBD {
const Producteur_nom = "1030";
const Producteur_commentaire = "Service de sauvegarde MySql";
const Producteur_HTTP = "www.monsite.com";
const Producteur_email = "webmaster@monsite.com";
const Producteur_version = "1.0";
private $sql_export = "";
private $ini = array();
public function __construct($db,$host="",$user="",$pass="") {
$this->ini["db_host"] = !empty($host) ? $host : "localhost";
$this->ini["db_user"] = !empty($user) ? $user : "root";
$this->ini["db_pass"] = !empty($pass) ? $pass : "";
$this->ini["db_name"] = $db;
$this->ini["email_adresse"] = "votre@email.com";
$this->ini["ftp_url"] = "ftp.monsite.com";
$this->ini["ftp_login"] = "user";
$this->ini["ftp_pass"] = "password";
$this->ini["ftp_filename"] = "Backup_MySql_".$db;
$this->ini["file_name"] = "Backup_MySql";
$this->dbconnect();
$this->sql_export = $this->contenu();
}
public function __destruct()
{
@mysql_close();
}
private function get_table_structure($db, $table)//$db=nom de la base,$table=nom de la table
{
//CREATE TABLE
$result = mysql_db_query($db, "SHOW CREATE TABLE `$table`") or mysql_die();
$row = mysql_fetch_array($result);
$schema_create = $row[1];
$schema_create = str_replace("\n","\r\n",$schema_create).";";
return (stripslashes($schema_create));
}
private function get_table_content($db, $table)//$db=nom de la base,$table=nom de la table
{
$result = mysql_db_query($db, "SELECT * FROM `$table`") or mysql_die();
$i = 0;
$search = array("\x00", "\x0a", "\x0d", "\x1a"); //on remplace: NULL, LF, CR
$replace = array('\0', '\n', '\r', '\Z');
//INSERT INTO
$table_list = "(";
for($j=0; $j<mysql_num_fields($result);$j++)
$table_list .= "`".mysql_field_name($result,$j)."`, ";
$table_list = substr($table_list,0,-2);
$table_list .= ")";
$schema_insert = "INSERT INTO `$table` $table_list VALUES \r\n";
//VALUE
$value_insert = array();
while($row = mysql_fetch_row($result))
{
$values = array();
for($j=0; $j<mysql_num_fields($result);$j++)
{
if(!isset($row[$j])) {
$values[] = "NULL";
}
elseif($row[$j] != "") {
$values[] = "'".str_replace($search, $replace, addslashes($row[$j]))."'";
}
else {
$values[] = " ''";
}
}
$value_insert[] ='(' . implode(', ', $values) . ')';
$i++;
}
$schema_insert = count($value_insert) > 0 ? $schema_insert . implode(",\r\n",$value_insert) .";" : "";
return trim($schema_insert)."\r\n";
}
private function contenu()
{
$sql_export = "\r\n";
$sql_export .= "# --------------------------------------------------------\r\n";
$sql_export .= "# -- ".self::Producteur_nom." - ".self::Producteur_commentaire."\r\n";
$sql_export .= "# -- Version ".self::Producteur_version."\r\n";
$sql_export .= "# -- http://".self::Producteur_HTTP."\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "# -- Serveur : ".$this->ini["db_host"]."\r\n";
$sql_export .= "# -- Généré le : ". format_date(Date("Y-m-d"))." à ". Date("H:i") ."\r\n";
$version_mysql = explode("-", mysql_get_server_info());
$sql_export .= "# -- Version de MySql : ". $version_mysql[0] ."\r\n";
$sql_export .= "# -- Version de PHP : ".phpversion()."\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "# -- Base de donnée : ". $this->ini["db_name"] ."\r\n";
$i = 0;
while($i < $this->ini["num_tables"])
{
$table = mysql_tablename($this->ini["tables"], $i);//Lit le nom de la table qui contient le champs spécifié
$sql_export .= "# --------------------------------------------------------\r\n";
$sql_export .= "\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "# -- Structure de la table `".$table."`\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "\r\n";
$sql_export .= $this->get_table_structure($this->ini["db_name"], $table)."\r\n\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "# -- Contenu de la table `".$table."`\r\n";
$sql_export .= "# -- \r\n";
$sql_export .= "\r\n";
$sql_export .= $this->get_table_content($this->ini["db_name"], $table);
$i++;
}
return $sql_export;
}
//Connexion à la base de donnée
private function dbconnect() {
@set_time_limit(600);
@mysql_connect($this->ini["db_host"],$this->ini["db_user"],$this->ini["db_pass"])
or die("Impossible de se connecter - Problème sur le 'Hostname' ou sur le 'User' ou sur le 'Password'");
@mysql_select_db($this->ini["db_name"])
or die("Impossible de se connecter à la base ou nom de base inconnu");
header("Expires: 0");
$this->ini["tables"] = mysql_list_tables($this->ini["db_name"]);//Liste les tables d'une base de données.
$this->ini["num_tables"] = mysql_num_rows($this->ini["tables"]);//Retourne le nombre de lignes d'un résultat
}
//Imprime à l'écrant le contenue pour la création de la BD
public function print_db()
{
return str_replace("\r\n","<BR>",$this->sql_export);
}
//envoie un email avec le fichier joint
public function confirme_email()
{
//Sujet du courriel
$sujet = Producteur_commentaire." le ".date("d/m/Y");
//Entete du courriel
$boundary = '-----='.md5(uniqid(rand()));
$headers = "From: ".Producteur_nom."<".Producteur_email.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;";
$headers .= " boundary=\"----=".$boundary."\"\n\n";
//Ajoute le message au courriel
$message = "------=".$boundary."\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 32bit\n\n";
$message .= "
Techno-Vie - Service de sauvegarde mensuelle de votre base de donnée
";
$message .= "\n\n";
//Ajoute la pièce jointe
$attachement = "------=".$boundary."\n";
$attachement .= "Content-Type: text/plain; name=\"Backup_MySql_aprmq_".date("Ymd-Hi").".sql\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"Backup_MySql_aprmq_".date("Ymd-Hi").".sql\"\n\n";
$attachement .= chunk_split(base64_encode($this->sql_export));
mail($this->ini["email_adresse"],$sujet,$message.$attachement,$headers);
}
//save le fichier sur le serveur
public function save_file($file="")
{
$this->ini["file_name"] = empty($file) ? $this->ini["file_name"] : $file;
if (!$handle = fopen($this->ini["file_name"].'.sql', 'w'))
echo('Impossible d\'ouvrir en écriture le fichier sql : '.$this->ini["file_name"].".sql\n");
if (fwrite($handle, $this->sql_export) == FALSE)
echo('Erreur d\'exportation de la base '.$this->ini["db_name"]."\n");
fclose($handle);
}
//save le fichier sur un serveur externe
public function save_ftp($url="",$login="",$pwd="",$file="")
{
$this->ini["ftp_url"] = empty($url) ? $this->ini["ftp_url"] : $url;
$this->ini["ftp_login"] = empty($login) ? $this->ini["ftp_login"] : $login;
$this->ini["ftp_pass"] = empty($pwd) ? $this->ini["ftp_pass"] : $pwd;
$this->ini["ftp_filename"] = empty($file) ? $this->ini["ftp_filename"] : $file;
$conn_id = ftp_connect($this->ini["ftp_url"]);
// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $this->ini["ftp_login"], $this->ini["ftp_pass"]);
// Efface l'ancien fichier
$del_result = ftp_delete($conn_id,$this->ini["ftp_filename"].".sql");
// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
$ftp = "ftp://".$this->ini["ftp_login"].":".$this->ini["ftp_pass"]."@".$this->ini["ftp_url"]."/".$this->ini["ftp_filename"].".sql";
$handle = fopen($ftp, "w") or die("FTP - Impossible d'ouvrir en écriture le fichier : ".$this->ini["file_name"].".sql\n");
if(fwrite($handle, $this->sql_export) == FALSE)
{
echo "Erreur d'exportation de la base ".$this->ini["db_name"]."\n";
}
fclose($handle);
}
}
/*************************************
* Variable pour des dates
*************************************/
define("VAR_JAN","Janvier");
define("VAR_FEV","Février");
define("VAR_MAR","Mars");
define("VAR_AVR","Avril");
define("VAR_MAI","Mai");
define("VAR_JUN","Juin");
define("VAR_JUI","Juillet");
define("VAR_AOU","Août");
define("VAR_SEP","Septembre");
define("VAR_OCT","Octobre");
define("VAR_NOV","Novembre");
define("VAR_DEC","Décembre");
function format_date($date) {
$mois = array(VAR_JAN, VAR_FEV, VAR_MAR, VAR_AVR, VAR_MAI, VAR_JUN, VAR_JUI, VAR_AOU, VAR_SEP, VAR_OCT, VAR_NOV, VAR_DEC);
$jour = strftime("%d", strtotime($date));
$mois2 = intval(strftime("%m", strtotime($date))) -1;
$mois2 = $mois[$mois2];
$annee = strftime("%Y", strtotime($date));
$date = $jour." ".$mois2.", ".$annee;
return $date;
}
/*************************************************/
/* Programme principal */
/*************************************************/
$DB = new saveBD($_GET["db"]);
$DB->print_db();
//$DB->save_ftp();
//$DB->save_file();
//$DB->confirme_email();
?>
Conclusion
J'attends vos impression, la perfection n'existe point hélas dans notre monde.
Historique
- 17 avril 2008 14:38:16 :
- Correction de la description
- 17 avril 2008 14:58:32 :
- Correction mineur du code source
- 17 avril 2008 15:01:24 :
- Correction mineur du code source
- 18 avril 2008 01:04:08 :
- Modification des constants pour utilisé const aulieu de define dans ma class
- 18 avril 2008 01:08:48 :
- j'ai effectuer une petit mise a jour de la section save_ftp() pour effacer l'ancien fichier et le remplacer par le nouveau.
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
verif existance dans bdd [ par cseagle ]
Bonjour à tous,J'ai une table MySql membres qui contient les infos des membres. A l'inscription je vérifie si l'email existe déjà dans la base auquel
Sauvegarde base mysql ? [ par Joez ]
Salut je voudrais savoir comment sauvegarder une base mysql en cliquant sur une urlMerciet est il possible d'envoyer cette base par email ?
Probleme d'update checkbox [ par Alpha911 ]
Bonjour,j'ai une base de donnée avec le champ Compte_FTP de type TINYINT j'ai réalisé le fichier php mise a jour permettant l'update&nb
aide recup de variables [ par actinetwork ]
Bonjour,je m'explik, j'ai un petit script php sui veut envoyer un mail a une personne de ma base. Mais je n'arrive pas à lui faire prendre l'email par
fonction mysql_num_rows() [ par cladx ]
Bon voila je veus savoir si l'email est present dans la base de donnée donc justilise tous naturelement la fonction mysql_num_rows() dont voici u
pb SQL2 [ par kyript ]
$row_keyA = $row_key1['email']; echo "$row_keyA"; mysql_select_db($database_roots, $roots); $query_pass = "SELECT password FROM mb_membres_verif W
formulaire html, base de données MySQL , mail par php [ par a_sophie ]
Voilà, j'ai nune base de données sous MySQL, un formulaire html où une fois les champs remplis devront aller ds la base. Par contre par
fonction mail [ par refkaben ]
salut tous le monde!j'ai un formulaire d'inscription, si un membre vient de s'inscrire on lui envoi un mail lui demandant de me contacter, voila le co
page Php+ Mysql qui galère [ par felix_12 ]
Voila, cela fait quelques heures que je galère ssur ce petit code de rien du toutr qui ne marche pas , il n'affiche aucune erreur mais il najoute
redirection et session [ par sparh ]
Bonjour,je bloque sur un problème de session.J'essai de créer une zone membre à l'aide des sessions. Pour l'instant tout va bien et j'ai donc un lien
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|