PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 01-07-2018 09:52:00

contremaitre
Membre

[Résolu] Login après passage 2.0.5

Bonjour
J'étais en 2.0.3 et j'ai executé le script de passage 2.0.3->2.0.4 mais ça m'a passé directement en 2.0.5, j'espere que ce n'est pas un soucis ?
Depuis je ne sais pas me connecter car avant j'entrais un mot de passe seul et maintenant il me demande email et mot de passe... ?

Hors ligne

#2 01-07-2018 10:04:34

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Bonjour Contremaître

Je ne crois pas à la stabilité de l installation en l état
Il serait bon de refaire une installation complète

Sinon le mail est celui de l admin et qui est utilisé pour les envois par défaut
Le mot de passe n a pas changé

Bonne journée
Arnaud


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#3 01-07-2018 10:08:40

contremaitre
Membre

Re : [Résolu] Login après passage 2.0.5

Lorsque j'essaye de me connecter j'attéris sur une page blanche.
SI je fait une installation complete je vais retrouver mes reglages, listes, etc...?

Hors ligne

#4 01-07-2018 11:08:26

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Je dois réfléchir avec expertise

Il faut que je recrée la situation pour répondre
Mais en l état il faut tout de suite faire un export de la base newsletter des données sans la structure et un export avec la structure

Ensuite et pour test : faire une installation complète normale de la 2.0.5 avec un préfixe test
-copier l export des données sur un autre nom et ajuster les préfixes des tables par rapport à la nouvelle installation en test
- importer ces nouvelles données via phpmyadmin
Se connecter


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#5 01-07-2018 11:47:55

contremaitre
Membre

Re : [Résolu] Login après passage 2.0.5

Par contre je peux ajouter que j'ai les sauvegardes effectués par le script :
backup_2.0.3.zip  backup-pmnl-20180701-104238.sql.gz  ZPDIQ.zip
Peut etre cela change la méthode pour remettre ça en ordre ?
Merci

Dernière modification par contremaitre (01-07-2018 11:48:56)

Hors ligne

#6 01-07-2018 12:26:52

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Garder les sauvegardes oui mais faire une copie pour travailler dessus
Nettoyer et installer


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#7 02-07-2018 13:50:16

contremaitre
Membre

Re : [Résolu] Login après passage 2.0.5

Je ne suis pas sur d'avoir bien compris :
- J'ai fait l'installation propre de la 2.0.5 avec un prefixe a part
- j'importe la sauvegarde sql de la 2.0.3 avec l'ancien préfixe dans phpmyadmin
- je modifie les préfixe de la 2.0.5 avec ceux de la 2.0.3 dans phpmynewsletter ?
Par contre la 2.0.5 a plus de tables différentes donc certaines je ne pourrais pas faire la correspondance
Merci

Dernière modification par contremaitre (02-07-2018 13:53:56)

Hors ligne

#8 02-07-2018 14:51:00

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Pas tout à fait.
Je vais être plus exhaustif, hier j'étais sur  mon tel...
Je reprends donc :
1/ est ce que tu as la sauvegarde des fichiers et du sql 2.0.3 ?
Très important, car cela permet de travailler une migration le temps de tout remettre à plat.

2/ si oui, reposer les fichiers et le sql, donc remonter la version 2.0.3 qui fonctionne bien et que tu avais avant.
Franchement, c'est le mieux

Ensuite, tu vas faire la migration en 2.0.4.
J'ai donc adapté le script pour aller chercher la bonne version 2.0.4 !
Ca indiquera version 2.0.5 disponible (fonction checkVersion) mais ça téléchargera la 2.0.4, car URL inscrite en dur dans le script :

Script à enregistrer à la racine sous upgrade.php :

<?php
/*
V.1.2
name : upgrade.php :
description :
- script de mise à jour automatique d'une version de phpmynewsletter
V.1.2 : mise à jour des erreurs $ZIP_ERROR
V.1.1 : correction de checkVersionCurl pour compat sur les mutu ayant un open_basedir restrictif
suite à topic totorigolo56 :https://www.phpmynewsletter.com/forum/viewtopic.php?id=436
portage curl sur les fonctions du script, maj de pmnl_fonctions.php
V.1.0 : écriture initiale

*/
session_start();
set_time_limit(0);
ini_set('memory_limit','2048M');
function zipData($source, $destination) {
    $ZIP_ERROR = [
        ZipArchive::ER_OK           => 'No error',
        ZipArchive::ER_MULTIDISK    => 'Multi-disk zip archives not supported',
        ZipArchive::ER_RENAME       => 'Renaming temporary file failed',
        ZipArchive::ER_CLOSE        => 'Closing zip archive failed',
        ZipArchive::ER_SEEK         => 'Seek error',
        ZipArchive::ER_READ         => 'Read error',
        ZipArchive::ER_WRITE        => 'Write error',
        ZipArchive::ER_CRC          => 'CRC error',
        ZipArchive::ER_ZIPCLOSED    => 'Containing zip archive was closed',
        ZipArchive::ER_NOENT        => 'No such file',
        ZipArchive::ER_EXISTS       => 'File already exists',
        ZipArchive::ER_OPEN         => 'Can\'t open file',
        ZipArchive::ER_TMPOPEN      => 'Failure to create temporary file',
        ZipArchive::ER_ZLIB         => ' Zlib error',
        ZipArchive::ER_MEMORY       => 'Malloc failure',
        ZipArchive::ER_CHANGED      => 'Entry has been changed',
        ZipArchive::ER_COMPNOTSUPP  => 'Compression method not supported',
        ZipArchive::ER_EOF          => 'Premature EOF',
        ZipArchive::ER_INVAL        => 'Invalid argument',
        ZipArchive::ER_NOZIP        => 'Not a zip archive',
        ZipArchive::ER_INTERNAL     => 'Internal error',
        ZipArchive::ER_INCONS       => 'Zip archive inconsistent',
        ZipArchive::ER_REMOVE       => 'Can\'t remove file',
        ZipArchive::ER_DELETED      => 'Entry has been deleted',
    ];
    if (extension_loaded('zip')) {
        if (file_exists($source)) {
            $zip = new ZipArchive();
            $result_code=$zip->open($destination, ZIPARCHIVE::CREATE);
            if( $result_code !== true ){
                $msg = isset($ZIP_ERROR[$result_code])? $ZIP_ERROR[$result_code] : 'Unknown error.';
                echo $msg;
                return false;
            } else {
                $source = realpath($source);
                if (is_dir($source)) {
                    $iterator = new RecursiveDirectoryIterator($source);
                    // skip dot files while iterating 
                    $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
                    $files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
                    foreach ($files as $file) {
                        $file = realpath($file);
                        if (is_dir($file) && $file!=$destination) {
                            $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
                        } else if (is_file($file)&& $file!='upgrade.php') {
                            $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
                        }
                    }
                } else if (is_file($source)) {
                    $zip->addFromString(basename($source), file_get_contents($source));
                }
            }
            return $zip->close();
        }
    }
    return false;
}
function unzip($src_file, $dest_dir=false, $create_zip_name_dir=true, $overwrite=true) {
    if ($zip = zip_open($src_file)) {
        if ($zip) {
            $splitter = ($create_zip_name_dir === true) ? "." : "/";
            if ($dest_dir === false) {
                $dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
            }
            create_dirs($dest_dir);
            while ($zip_entry = zip_read($zip)) {
                $pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");
                if ($pos_last_slash !== false) {
                    create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));
                }
                if (zip_entry_open($zip,$zip_entry,"r")) {
                    $file_name = $dest_dir.zip_entry_name($zip_entry);
                    if ($overwrite === true || $overwrite === false && !is_file($file_name)){
                        $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
                        file_put_contents($file_name, $fstream);
                        // chmod($file_name, 0777);
                        // echo "Extraction : ".$file_name." OK<br />";
                    }
                    zip_entry_close($zip_entry);
                }       
            }
            zip_close($zip);
        }
    } else {
        return false;
    }
    return true;
}
function create_dirs($path){
    if (!is_dir($path))    {
        $directory_path = "";
        $directories = explode("/",$path);
        array_pop($directories);
        foreach($directories as $directory)    {
            $directory_path .= $directory."/";
            if (!is_dir($directory_path))    {
                mkdir($directory_path);
                chmod($directory_path, 0777);
            }
        }
    }
}
function getVersion(){
    $header=checkVersionCurl();
    return $header['content'];
}
function checkVersion(){
    $VL=file_get_contents('VERSION');
    if($VL===FALSE) {
        echo '<span class="error">fichier version non détecté</span>';
    } else {
        $header=checkVersionCurl();
        $Vcurrent=intval(str_replace('.','',$VL));
        $Vdisponible=intval(trim(str_replace('.','',$header['content'])));
        if ($Vdisponible>$Vcurrent) {
            echo '<h4 class="alert_success">Version '.$header['content'].' disponible / available</h4>';
        } else {
            die ('<h4 class="alert_error">Pas de nouvelle version disponible / no update available</h4>');
        }
    }
}
function checkVersionCurl() {
    (function_exists('curl_init')) ? '' : die('cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini');
    $h[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
    $h[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $h[] = "Cache-Control: max-age=0";
    $h[] = "Connection: keep-alive";
    $h[] = "Keep-Alive: 300";
    $h[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $h[] = "Accept-Language: en-us,en;q=0.5";
    $h[] = "Pragma: ";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://www.phpmynewsletter.com/versions/current_version');
    curl_setopt($curl, CURLOPT_USERAGENT, 'Check Version PhpMyNewsLetter');
    curl_setopt($curl, CURLOPT_HTTPHEADER, $h);
    curl_setopt($curl, CURLOPT_REFERER, 'https://www.phpmynewsletter.com/versions/current_version');
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($curl, CURLOPT_AUTOREFERER, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled...
    curl_setopt($curl, CURLOPT_TIMEOUT, 60);
    $header['errno']   = curl_errno($curl);
    $header['errmsg']  = curl_error($curl);
    $header['content'] = curl_exec($curl);
    curl_close($curl);
    return $header;
}
class BackupMySQL extends mysqli {
    protected $gz_fichier;
    public $host = '';
    public $username = '';
    public $passwd = '';
    public $dbname = '';
    public $port = '';
    public $socket = '';
    public $token = '';
    public $dossier = '';
    public $nom_fichier = '';
    public $prefixe = '';
    public function __construct($options = array()) {
        $default = array(
            'host' => ini_get('mysqli.default_host'),
            'username' => ini_get('mysqli.default_user'),
            'passwd' => ini_get('mysqli.default_pw'),
            'dbname' => '',
            'port' => ini_get('mysqli.default_port'),
            'socket' => ini_get('mysqli.default_socket'),
            'dossier' => './',
            'nom_fichier' => 'backup-pmnl',
            'prefixe' => '',
        );
        $options = array_merge($default, $options);
        extract($options);
        parent::__construct($host, $username, $passwd, $dbname, $port, $socket);
        if ($this->connect_error) {
            $this->message('error', 'Erreur de connexion (' . $this->connect_errno . ') '. $this->connect_error);
            return;
        }
        $this->dossier = $dossier;
        if (!is_dir($this->dossier)) {
            $this->message('error', 'Erreur de dossier &quot;' . htmlspecialchars($this->dossier) . '&quot;');
            return;
        }
        $this->nom_fichier = $nom_fichier . '-' . date('Ymd-His') .'.sql.gz';
        $this->gz_fichier = @gzopen($this->dossier . $this->nom_fichier, 'w');
        if (!$this->gz_fichier) {
            $this->message('error', 'Erreur de fichier &quot;' . htmlspecialchars($this->nom_fichier) . '&quot;');
            return;
        }
        $this->prefixe = $prefixe;
        if ($this->sauvegarder()) {
            $this->message('success', $this->nom_fichier);
        }
    }
    protected function message($level, $message = '&nbsp;'){
        if ($level=='success') {
            echo "<h4 class='alert_success'>Backup SQL OK : $this->nom_fichier</h4>";
        } else {
            die("<h4 class='alert_error'>Backup SQL erreur / error : $message</h4>");
        }
    }
    protected function insertclean($string){
        $s1 = array( "\\"    , "'"    , "\r", "\n", );
        $s2 = array( "\\\\"    , "''"    , '\r', '\n', );
        return str_replace($s1, $s2, $string);
    }
    protected function sauvegarder(){
        $sql  = '--' ."\n";
        $sql .= '-- '. $this->nom_fichier ."\n";
        gzwrite($this->gz_fichier, $sql);
        $result_tables = $this->query('SHOW TABLE STATUS WHERE name LIKE "' . $this->prefixe . '%"');
        if ($result_tables && $result_tables->num_rows) {
            while ($obj_table = $result_tables->fetch_object()) {
                $sql  = "\n\n";
                $sql .= 'DROP TABLE IF EXISTS `'. $obj_table->{'Name'} .'`' .";\n";
                $result_create = $this->query('SHOW CREATE TABLE `'. $obj_table->{'Name'} .'`');
                if ($result_create && $result_create->num_rows) {
                    $obj_create = $result_create->fetch_object();
                    $sql .= $obj_create->{'Create Table'} .";\n";
                    $result_create->free_result();
                }
                $result_insert = $this->query('SELECT * FROM `'. $obj_table->{'Name'} .'`');
                if ($result_insert && $result_insert->num_rows) {
                    $sql .= "\n";
                    while ($obj_insert = $result_insert->fetch_object()) {
                        $virgule = false;
                        $sql .= 'INSERT INTO `'. $obj_table->{'Name'} .'` VALUES (';
                        foreach ($obj_insert as $val) {
                            $sql .= ($virgule ? ',' : '');
                            if (is_null($val)) {
                                $sql .= 'NULL';
                            } else {
                                $sql .= '\''. $this->insertclean($val) . '\'';
                            }
                            $virgule = true;
                        }
                        $sql .= ')' .";\n";
                    }
                    $result_insert->free_result();
                }
                gzwrite($this->gz_fichier, $sql);
            }
            $result_tables->free_result();
        }
        if (gzclose($this->gz_fichier)) {
            return true;
        }
    }
}
?>
<!DOCTYPE HTML>
<html lang="fr">
<head>
<meta charset="utf-8" />
<title>UPDATE / Mise à jour - PhpMyNewsLetter</title>
<link rel="stylesheet" href="css/layout.css" type="text/css" media="screen"/>
</head>
<body id="main">
<style>
body{margin:50px;padding:50px;}
hr{height:10px;border:0;box-shadow:0 5px 5px -5px #8c8b8b inset;}
p{margin:10px;padding:10px;}
</style>
<?php
$op =(empty($_GET['op'])?"init":$_GET['op']);
echo '<h1>PhpMyNewsLetter</h1>';
echo '<p>Pour mettre à jour PhpMyNewsLetter, cliquez sur le lien qui vous est proposé.<br>
    Chaque lien amènera à une action de mise à jour.<br>
    Ce script est fait pour vous aider, il a été testé et est fonctionnel.<br>
    Toutefois, selon votre installation, des bugs peuvent survenir. Merci de passer par le forum pour support : 
    <a href="https://www.phpmynewsletter.com/forum/">Forum</a>.</p>';
echo '<p>To update PhpMyNewsLetter, please click the link that is offered<br>
    Each link will be an update step.<br>
    This script is done to help you, it has been tested and is fully functional.<br>
    However, depending on your installation, bugs may occur. Thank you to pass through the support forum : 
    <a href="https://www.phpmynewsletter.com/forum/">Forum</a>.</p>';
echo '<hr/>';
switch($op) {
    case 'init':
        if (version_compare(PHP_VERSION, '5.3.0', '>')) {
            echo "<h4 class='alert_success'>PHP : ".phpversion()." OK</h4>";
        } else {
            echo "<h4 class='alert_error'>PHP : ".phpversion()." obsolète / obsolete</h4>";
        }
        if (extension_loaded('imap')) {
            echo "<h4 class='alert_success'>module imap OK</h4>";
        } else {
            echo "<h4 class='alert_error'>module imap absent / missing</h4>";
        }
        if (extension_loaded('curl')) {
            echo "<h4 class='alert_success'>module curl OK</h4>";
        } else {
            echo "<h4 class='alert_error'>module curl absent / missing</h4>";
        }
        if(is_file('include/config.php')){
            include_once('include/config.php');
            echo "<h4 class='alert_success'>config.php OK</h4>";
            $VERSION_TO_UPGRADE = $pmnl_version;
            echo "<h4 class='alert_info'>Version à upgrader / Version to upgrade : $VERSION_TO_UPGRADE </h4>";
            if (version_compare($VERSION_TO_UPGRADE, '2.0.3', '>=')) {
                echo "<h4 class='alert_success'>PhpMyNewsLetter : mise à jour possible / upgrade possible</h4>";
            } else {
                echo "<h4 class='alert_error'>Version de PhpMyNewsLetter obsolète / obsolete version (2.0.3 min)</h4>";
            }
            checkVersion();
            $PREFIX=str_replace('config','',$table_global_config);
            echo "<h4 class='alert_info'>Préfixe des tables / tables prefix : $PREFIX</h4>";
        } else {
            die("<h4 class='alert_error'>config.php non trouvé, merci de placer upgrade.php à la racine de votre installation PhpMyNewsLetter !<br>
            config.php not found, please move upgrade.php in the PhpMyNewsLetter installation path !</h4>");
        }
        echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=files' style='color:black'>
			Cliquer pour continuer / click to continue : sauvegarde des fichiers / backup files</a></h4></div>";
    break;
    case 'files':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION = '203';
        if (mkdir($PATH_BACKUP_CURRENT_VERSION, 0755)) {
            if (!zipData('.', $PATH_BACKUP_CURRENT_VERSION.'/backup_'.$VERSION_TO_UPGRADE.'.zip')){
                unlink($PATH_BACKUP_CURRENT_VERSION.'/backup_'.$VERSION_TO_UPGRADE.'.zip');
                rmdir($PATH_BACKUP_CURRENT_VERSION);
                die("<h4 class='alert_error'>Erreur lors du zip de la version courante !<br>
                Error while create zip of current version !</h4>");
            } else {
                echo "<h4 class='alert_success'>Sauvegarde des fichiers de la version courante OK !<br>
                Backup current version OK !<br>
                $PATH_BACKUP_CURRENT_VERSION/backup_$VERSION_TO_UPGRADE.zip</h4>";
                echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=sql&p=$PATH_BACKUP_CURRENT_VERSION' 
                style='color:black'>Cliquer pour continuer / click to continue : sauvegarde de la base de données / backup database</a></h4></div>";
            }
        } else {
            die("<h4 class='alert_error'>Erreur à la création du répertoire de sauvegarde : $PATH_BACKUP_CURRENT_VERSION/ ! 
            Vérifiez les droits et relancez la procédure d'upgrade uniquement par un F5 (rafraichissement de la page)<br>
            Error while create path for backup : $PATH_BACKUP_CURRENT_VERSION/ ! Check your config and restart upgrade only with F5 ! (refresh the page)</h4>");
        }
    break;
    case 'sql':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION =(empty($_GET['p'])?"":$_GET['p']);
        if(!is_dir($PATH_BACKUP_CURRENT_VERSION)) {
            die("<h4 class='alert_error'>Erreur répertoire de sauvegarde : $PATH_BACKUP_CURRENT_VERSION/ ! Répertoire inconnu<br>
            Error while create path for backup : $PATH_BACKUP_CURRENT_VERSION/ ! Bad path</h4>");
        }
        $PREFIX=str_replace('config','',$table_global_config);
        new BackupMySQL(array(
            'host' => $hostname,
            'username' => $login,
            'passwd' => $pass,
            'dbname' => $database,
            'dossier' => $PATH_BACKUP_CURRENT_VERSION.'/',
            'prefixe' => $PREFIX
        ));
        echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=wget&p=$PATH_BACKUP_CURRENT_VERSION' 
			style='color:black'>Cliquer pour continuer / click to continue : téléchargement nouvelle version / Download new version</a></h4></div>";
    break;
    case 'wget':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION =(empty($_GET['p'])?"":$_GET['p']);
        if(!is_dir($PATH_BACKUP_CURRENT_VERSION)) {
            die("<h4 class='alert_error'>Erreur sur vérification du répertoire de travail : $PATH_BACKUP_CURRENT_VERSION/ ! Répertoire inconnu<br>
            Error while checking for working path : $PATH_BACKUP_CURRENT_VERSION/ ! Bad path</h4>");
        }
        $URL_FILE_NEW_VERSION = 'https://www.phpmynewsletter.com/versions/2.0.4/phpmynewsletter.zip';
        $FILE_TO_UNZIP = $PATH_BACKUP_CURRENT_VERSION.'/' . $PATH_BACKUP_CURRENT_VERSION . '.zip';
        if ($data=file_get_contents($URL_FILE_NEW_VERSION)) {
            if (file_put_contents($FILE_TO_UNZIP,$data)) {
                echo "<h4 class='alert_success'>Téléchargement nouvelle version OK !<br>
                Download new version OK !</h4>";
            } else {
                die("<h4 class='alert_error'>Erreur sur écriture du fichier téléchargé !<br>
                Error while writing downloaded file !</h4>");
            }
        } else {
            die("<h4 class='alert_error'>Erreur sur téléchargement du nouveau fichier !<br>
            Error while downloading new file !</h4>");
        }
        echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=uncompress&p=$PATH_BACKUP_CURRENT_VERSION' 
			style='color:black'>Cliquer pour continuer / click to continue : décompression de la nouvelle version / Uncompress new version</a></h4></div>";
    break;
    case 'uncompress':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION =(empty($_GET['p'])?"":$_GET['p']);
        if(!is_dir($PATH_BACKUP_CURRENT_VERSION)) {
            die("<h4 class='alert_error'>Erreur sur vérification du répertoire de travail : $PATH_BACKUP_CURRENT_VERSION/ ! Répertoire inconnu<br>
            Error while checking for working path : $PATH_BACKUP_CURRENT_VERSION/ ! Bad path</h4>");
        }
        $FILE_TO_UNZIP = $PATH_BACKUP_CURRENT_VERSION.'/' . $PATH_BACKUP_CURRENT_VERSION . '.zip';
        if (unzip($FILE_TO_UNZIP, __DIR__."/" /*$PATH_BACKUP_CURRENT_VERSION.'/t/'*/ )){
            echo "<h4 class='alert_success'>Unzip et installation nouvelle version OK !<br>
                Unzip and install new version OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Erreur sur décompression et installation de la nouvelle version !<br>
            Error while unzip and install new version !</h4>");
        }
        echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=upgradesql&p=$PATH_BACKUP_CURRENT_VERSION' 
			style='color:black'>Cliquer pour continuer / click to continue : mise à jour de la base de données / Update database</a></h4></div>";
    break;
    case 'upgradesql':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION =(empty($_GET['p'])?"":$_GET['p']);
        $PREFIX=str_replace('config','',$table_global_config);
        $link_create_db = mysqli_connect($hostname, $login, $pass,$database);
        $sql_config_sending="ALTER TABLE `" . $PREFIX . "config` 
            CHANGE  `sending_method` `sending_method` ENUM( 'smtp','lbsmtp','php_mail','php_mail_infomaniak','smtp_gmail_tls',
					'smtp_gmail_ssl','smtp_mutu_ovh','smtp_mutu_1and1','smtp_mutu_gandi','smtp_mutu_online','smtp_mutu_infomaniak' )";
        if(mysqli_query($link_create_db, $sql_config_sending)){
            echo "<h4 class='alert_success'>Mise à jour / update table " . $PREFIX . "config  sending_method OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " . $PREFIX . "config sending_method en erreur / failed !<br>
            $sql_config_sending</h4>");
        }
        
        $sql_config_port="ALTER TABLE `" . $PREFIX . "config` ADD `smtp_port` VARCHAR(5) NOT NULL AFTER `smtp_host`";
        if(mysqli_query($link_create_db, $sql_config_port)){
            echo "<h4 class='alert_success'>Mise à jour / update table " 
				. $PREFIX . "config smtp_port OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " 
				. $PREFIX . "config smtp_port en erreur / failed !<br>
            $sql_config_port</h4>");
        }
        
        $sql_config_fields="ALTER TABLE `" . $PREFIX . "config` 
            ADD  `table_email_deleted` VARCHAR( 255 ) NOT NULL DEFAULT '',
            ADD  `table_smtp` varchar(255) NOT NULL DEFAULT '',
            ADD  `alert_sub` ENUM(  '0',  '1' ) NOT NULL default '1',
            ADD  `active_tracking` enum('0','1') NOT NULL DEFAULT '1'";
        if(mysqli_query($link_create_db, $sql_config_fields)){
            echo "<h4 class='alert_success'>Mise à jour / update table " 
                . $PREFIX . "config table_email_deleted, table_smtp, alert_sub, active_tracking OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " . $PREFIX 
                . "config table_email_deleted, table_smtp, alert_sub, active_tracking en erreur / failed !<br>
            $sql_config_fields</h4>");
        }
        
        $sql_update_config="UPDATE `" . $PREFIX . "config` SET table_email_deleted='" 
			. $PREFIX . "email_deleted',table_smtp='" . $PREFIX . "smtp';";
        if(mysqli_query($link_create_db, $sql_update_config)){
            echo "<h4 class='alert_success'>Mise à jour nouvelles valeurs / update table new values " 
				. $PREFIX . "config OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour nouvelles valeurs / update table new values " 
				. $PREFIX . "config en erreur / failed !<br>
            $sql_update_config</h4>");
        }
        
        $sql_email_fields="ALTER TABLE `" . $PREFIX . "email`
            ADD `campaign_id` INT(7) DEFAULT NULL,
            ADD KEY `categorie` (`categorie`),
            ADD KEY `campaign_id` (`campaign_id`)";
        if(mysqli_query($link_create_db, $sql_email_fields)){
            echo "<h4 class='alert_success'>Mise à jour / update table " . $PREFIX . "email OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " . $PREFIX . "email en erreur / failed !<br>
            $sql_email_fields</h4>");
        }
        
        $sql_create_deleted="CREATE TABLE IF NOT EXISTS `" . $PREFIX . "email_deleted` (
            `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
            `email` varchar(255) NOT NULL DEFAULT '',
            `list_id` int(5) unsigned NOT NULL DEFAULT '0',
            `hash` varchar(40) NOT NULL DEFAULT '',
            `error` enum('N','Y') NOT NULL DEFAULT 'N',
            `status` varchar(255) DEFAULT NULL,
            `type` enum('','autoreply','blocked','generic','soft','hard','temporary','unsub','by_admin') NOT NULL,
            `categorie` varchar(255) NOT NULL,
            `short_desc` text NOT NULL,
            `long_desc` text NOT NULL,
            `campaign_id` int(7) unsigned NOT NULL DEFAULT '0',
            PRIMARY KEY (`id`),
            UNIQUE KEY `unique_email_by_list` (`email`,`list_id`),
            KEY `hash` (`hash`),
            KEY `error` (`error`),
            KEY `status` (`status`),
            KEY `type` (`type`),
            KEY `categorie` (`categorie`),
            KEY `campaign_id` (`campaign_id`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
        if(mysqli_query($link_create_db, $sql_create_deleted)){
            echo "<h4 class='alert_success'>Création / create table " . $PREFIX . "email_deleted OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Création / create table " . $PREFIX . "email_deleted en erreur / failed !<br>
            $sql_create_deleted</h4>");
        }
        $sql_create_smtp="CREATE TABLE IF NOT EXISTS `" . $PREFIX . "smtp` (
            `smtp_id` int(7) NOT NULL AUTO_INCREMENT,
            `smtp_name` text NOT NULL,
            `smtp_url` varchar(255) NOT NULL,
            `smtp_user` text NOT NULL,
            `smtp_pass` text NOT NULL,
            `smtp_port` int(5) unsigned NOT NULL,
            `smtp_secure` text NOT NULL,
            `smtp_limite` int(4) unsigned NOT NULL,
            `smtp_used` int(4) unsigned NOT NULL,
            `smtp_date_create` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
            `smtp_date_update` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
            `id_use` int(6) unsigned NOT NULL DEFAULT '0',
            PRIMARY KEY (`smtp_id`),
            UNIQUE KEY `smtp_url` (`smtp_url`,`smtp_port`),
            KEY `smtp_used` (`smtp_used`),
            KEY `smtp_limite` (`smtp_limite`)
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
        if(mysqli_query($link_create_db, $sql_create_smtp)){
            echo "<h4 class='alert_success'>Création / create table " . $PREFIX . "smtp OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Création / create table " . $PREFIX . "smtp en erreur / failed !<br>
            $sql_create_smtp</h4>");
        }
        $sql_track_fields="ALTER TABLE `" . $PREFIX . "track`
            ADD `browser` varchar(150) NOT NULL,
            ADD `version` varchar(150) NOT NULL,
            ADD `platform` varchar(255) NOT NULL,
            ADD `useragent` text NOT NULL,
            ADD `devicetype` varchar(10) NOT NULL,
            ADD KEY `ip` (`ip`),
            ADD KEY `browser` (`browser`),
            ADD KEY `version` (`version`),
            ADD KEY `platform` (`platform`),
            ADD KEY `devicetype` (`devicetype`)";
        if(mysqli_query($link_create_db, $sql_track_fields)){
            echo "<h4 class='alert_success'>Mise à jour / update table " . $PREFIX . "track OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " . $PREFIX . "track en erreur / failed !<br>
            $sql_track_fields</h4>");
        }
        $sql_track_links_cpt="ALTER TABLE `" . $PREFIX . "track_links` CHANGE `cpt` `cpt` INT( 7 ) UNSIGNED NOT NULL DEFAULT  '0'";
        if(mysqli_query($link_create_db, $sql_track_links_cpt)){
            echo "<h4 class='alert_success'>Mise à jour / update table " . $PREFIX . "track_links OK !</h4>";
        } else {
            die("<h4 class='alert_error'>Mise à jour / update table " . $PREFIX . "track_links en erreur / failed !<br>
            $sql_track_links_cpt</h4>");
        }
        echo "<div align='center'><h4 class='alert_info'><a href='upgrade.php?op=thatsallfolks&p=$PATH_BACKUP_CURRENT_VERSION' 
            style='color:black'>Cliquer pour continuer / click to continue : terminer la mise à jour / finish updating</a></h4></div>";
    break;
    case 'thatsallfolks':
        include_once('include/config.php');
        $VERSION_TO_UPGRADE = $pmnl_version;
        $PATH_BACKUP_CURRENT_VERSION =(empty($_GET['p'])?"":$_GET['p']);
        echo "<h4 class='alert_success'>Fin de la mise à jour / End of the update OK !</h4>";
        echo '<p>La mise à jour est terminée !<br>
            Vous devez vous connecter avec votre email administrateur et votre mot de passe.<br>
            Les anciens fichiers de la version mise à jour ont été sauvegardés dans le répertoire '.$PATH_BACKUP_CURRENT_VERSION
            .'/, fichiers et base de données.<br>
            En cas de problèmes, le support est sur le forum : <a href="https://www.phpmynewsletter.com/forum/">Forum</a><br>
            Je souhaite sincèrement que vous apprécierez la nouvelle version de PhpMyNewsLetter !</p><br><br>
            Arnaud';
        echo '<p>Update is OK !<br>
            Now, you have to connect with your email admin and your password.<br>
            Backup files and database are stored in '.$PATH_BACKUP_CURRENT_VERSION
            .'/ directory.
            If troubles, please feel free to ask for support on the official board : <a href="https://www.phpmynewsletter.com/forum/">Forum</a><br>
            I really hop you will enjoy to use this new version of PhpMyNewsLetter !<br><br>
            Arnaud</p>';
        echo '<hr/>';
    break;
    default:
        die("<h4 class='alert_error'>Oups ! Page inconnue !<br>
            Oups ! Unknown page</h4>");
    break;
}
?>
</body>
</html>

En cas d'erreur, merci de reporter le message ici.
Donc attention à bien tout remettre ce qui a été sauvegardé de 2.0.3 !!


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#9 02-07-2018 15:23:17

contremaitre
Membre

Re : [Résolu] Login après passage 2.0.5

Ok, le passage 203 à 204 s'est bien passé.
Par contre si je lance le script pour passer en 205 j'ai ça qui s'affiche :
Version à upgrader / Version to upgrade : 2.0.3
Version disponible : 2.0.5
PhpMyNewsLetter obsolète / obsolete (2.0.4 min)

Dernière modification par contremaitre (02-07-2018 15:23:31)

Hors ligne

#10 02-07-2018 15:51:58

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Tu as bien pris le upgrade de 2.0.5 ?
Si oui alors changer la version dans le fichier include/config.php à 2.0.4


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#11 02-07-2018 16:30:52

contremaitre
Membre

Re : [Résolu] Login après passage 2.0.5

Super merci beaucoup pour ton aide cela fonctionne correctement maintenant

Hors ligne

#12 02-07-2018 17:04:37

Arnaud
Administrateur

Re : [Résolu] Login après passage 2.0.5

Parfait !


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB