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 08-03-2015 15:49:03

dcrea
Membre

[Résolu] Pb avec subscription.php

Bonjour,

je souhaiterais inclure subscription.php en dessous de mon formulaire mais je ne suis pas douée en php, évidemment j'ai un message d'erreur qui est :

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/c/c/7/monsite.fr/httpd.www/index.php:78) in /customers/c/c/7/monsite.fr/httpd.www/mynewsletter/subscription.php on line 2

lien monsite.fr/mynewsletter/subscription.php

Un grand merci pour votre aide.

Dernière modification par dcrea (08-03-2015 19:53:19)

Hors ligne

#2 08-03-2015 16:06:44

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Bonjour et bienvenue à toi sur ce forum de support !

Dans le script subscription.php il faut commenter la ligne en tête de fichier :
// session_start();
Ou
/* session_start(); */

En PHP il ne peut y avoir qu une seule déclaration de session dans une page.

Tiens moi au courant !

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 08-03-2015 16:14:14

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

ca marche niquel enfin je n'ai plus de message d'erreur mais ça ouvre toujours une fenêtre

Hors ligne

#4 08-03-2015 16:25:33

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

changer le target ne change rien les messages s'affichent dans une nouvelle page et si je copie colle la page subscription là ou je souhaite qu'elle apparaisse et que je fasse une redirection index.php ??

Hors ligne

#5 08-03-2015 16:46:57

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Je vais aller jeter un oeil et je reviens te dire...


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

#6 08-03-2015 16:49:35

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

attends faut que je remette

Hors ligne

#7 08-03-2015 16:50:35

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

voila

Hors ligne

#8 08-03-2015 18:06:31

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Ouh là là !!!
Bon, c'est quoi ce code qui traîne au milieu de page :

<!DOCTYPE HTML>
<html lang="fr">
    <head>
        <meta charset="utf-8" />
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script>!window.jQuery && document.write(unescape('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
    </head>
    <body>
        <section id="main">
            <article>
                        </article>
        </section>
    </body>
</html>

Un simple appel à jquery dans la balise head suffit :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

Ensuite tu as mis :

 target="_parent"

Ça ce n'est pas bon, c'est un target="_blank" qu'il faut, c'est à dire, ouvrir la fenêtre dans une autre fenêtre.
Il faut que ça ouvre une autre fenêtre, la gestion de la souscription est indépendante.

Donc, est ce un souci par rapport au fait que l'on ouvre une autre fenêtre ?


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 08-03-2015 18:09:02

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

oui c'est un souci je souhaiterais que les messages apparaissent sous le formulaire d'inscription, après j'ai juste enlevé les css !

Hors ligne

#10 08-03-2015 18:16:35

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Donc dans la page index.php ?


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 08-03-2015 18:17:55

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

c'est cela

Hors ligne

#12 08-03-2015 18:19:20

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Alors je me permets de déplacer la discussion dans support général, et non dans bug, dans un premier temps !


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

#13 08-03-2015 18:20:23

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

très bien

Hors ligne

#14 08-03-2015 18:26:46

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Voilà qui est fait.

Je n'ai pas le code source de la page index, mais pour inclure la gestion du code d'inscription, ça va être un peu compliqué, et ne rentre pas vraiment dans mes attributions ici, mais en gros :
Tout le code :

<?php
session_start();
include("_loader.php");
include("include/lib/class.phpmailer.php");
if (!function_exists('iconv') && function_exists('libiconv')) {
    function iconv($input_encoding, $output_encoding, $string) {
        return libiconv($input_encoding, $output_encoding, $string);
    }
}
if (!function_exists('iconv') && !function_exists('libiconv')) {
    include_once("include/lib/ConvertCharset.class.php");
    function iconv($input_encoding, $output_encoding, $string) {
        $converter = new ConvertCharset();
        return $converter->Convert($string, $input_encoding, $output_encoding);
    }
}
$cnx->query("SET NAMES UTF8");
$row_config_globale = $cnx->SqlRow("SELECT * FROM $table_global_config");
include("include/lang/" . $row_config_globale['language'] . ".php");
$list_id    = (!empty($_POST['list_id']) ? $_POST['list_id'] : "");
$list_id    = (empty($list_id) && !empty($_GET['list_id']) ? $_GET['list_id'] : $list_id);
$email_addr = (!empty($_POST['email_addr']) ? $_POST['email_addr'] : "");
$email_addr = (empty($email_addr) && !empty($_GET['email_addr']) ? $_GET['email_addr'] : $email_addr);
$op         = (!empty($_POST['op']) ? $_POST['op'] : "");
$op         = (empty($op) && !empty($_GET['op']) ? $_GET['op'] : $op);
$hash       = (!empty($_POST['hash']) ? $_POST['hash'] : "");
$hash       = (empty($hash) && !empty($_GET['hash']) ? $_GET['hash'] : $hash);
$i          = (!empty($_POST['i']) ? $_POST['i'] : "");
$i          = (empty($i) && !empty($_GET['i']) ? $_GET['i'] : "");
$h          = (!empty($_POST['h']) ? $_POST['h'] : "");
$h          = (empty($h) && !empty($_GET['h']) ? $_GET['h'] : "");
if ($op == "leave" && !$row_config_globale['unsub_validation']) {
    $op = "leave_direct";
} else if ($op == "leave_direct" && $row_config_globale['unsub_validation']) {
    $op = "leave";
} else if ($op == "join" && !$row_config_globale['sub_validation']) {
    $op = "join_direct";
} else if ($op == "join_direct" && $row_config_globale['sub_validation']) {
    $op = "join";
}
?>
<!DOCTYPE HTML>
<html lang="fr">
    <head>
        <meta charset="utf-8" />
        <title><?=translate("NEWSLETTER_TITLE");?></title>
        <link rel="stylesheet" href="css/layout.css" type="text/css" media="screen" />
        <!--[if lte IE 8]>
        <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen" />
        <script src="js/html5shiv.js"></script><![endif]-->
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <script>!window.jQuery && document.write(unescape('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
    </head>
    <body>
        <section id="main" class="column">
            <article class="module width_full">
            <?php
            if (isset($list_id) && !empty($list_id) && isValidNewsletter($cnx, $row_config_globale['table_listsconfig'], $list_id) && isset($email_addr)) {
                if (!validEmailAddress($email_addr)) {
                    echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                    echo "<h4 class='alert_error'>" . translate("EMAIL_ADDRESS_NOT_VALID") . "</div>";
                    exit();
                }
                switch ($op) {
                    case "join":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $c = (empty($c) && !empty($_POST['c']) ? $_POST['c'] : "");
                        if (empty($c)||($_POST['c']!=$_SESSION['c'])) {
                            $_SESSION['new_sub']=$email_addr;
                            echo '<form method="post" action="">
                                    <div class="module_content">
                                        <fieldset>
                                            <label>Confirmer votre inscription en saisissant le code ci-dessous :</label>
                                            <label><img src="c.php" /></label>
                                            <input type="text" name="c" value="" />
                                            <input type="hidden" name="email_addr" value="'.$email_addr.'" />
                                            <input type="hidden" name="list_id" value="'.$list_id.'" />
                                            <input type="hidden" name="op" value="join" />
                                        </fieldset>
                                    </div>
                                    <footer>
                                        <div class="submit_link">
                                            <input type="submit" value="OK">
                                        </div>
                                    </footer>
                                </form>';
                        } elseif ($_POST['c']==$_SESSION['c']) {
                            if ($row_config_globale['mod_sub']=="0") {
                                $add  = addSubscriberTemp($cnx, $row_config_globale['table_email'], $row_config_globale['table_temp'], $list_id, $email_addr);
                                $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                                if (strlen($add) > 3) {
                                    $body = $news['subscription_body'];
                                    $body .= "\n\n" . translate("SUBSCRIPTION_MAIL_BODY") . ":\n";
                                    $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_join&email_addr=" . urlencode($email_addr) . "&hash=$add&list_id=$list_id'>Je m'abonne</a>";
                                    $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['subscription_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['subscription_subject']));
                                    $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                                    $mail = sendEmail($row_config_globale['sending_method'], $email_addr, $news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                                    echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE") . "</h4>";
                                } elseif ($add ==0)
                                    echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_ALREADY_SUBSCRIBER") . "</h4>";
                                else
                                    echo "<h4 class='alert_error'>" . translate("ERROR_SQL2") . "</h4>";
                            } elseif ($row_config_globale['mod_sub']=="1") {
                                $add = addSubscriberMod($cnx, $row_config_globale['table_email'], $row_config_globale['table_sub'], $list_id, $email_addr);
                                if ($add)
                                    echo "<h4 class='alert_success'>" . translate("Subscription requested recorded, waiting for moderation") . "</h4>";
                                else if ($add == 0)
                                    echo "<h4 class='alert_error'>" . translate("You are already a subscriber") . "</h4>";
                                else
                                    echo "<h4 class='alert_error'>" . translate("Error while SQL query") . "</h4>";
                            }
                            echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                            echo '<div class="spacer"></div>';
                        }
                    break;
                    case "leave":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                        $hash = isValidSubscriber($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                        if ($hash==$h&&!empty($hash)&&strlen($hash)==32) {
                            $body = $news['quit_body'];
                            $body .= "\n\n" . translate("UNSUBSCRIPTION_MAIL_BODY") . " :\n";
                            $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$hash&list_id=$list_id&i=$i'>Je me désabonne</a>";
                            $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['quit_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['quit_subject']));
                            $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                            if (sendEmail($row_config_globale['sending_method'],$email_addr,$news['from_addr'],$news['from_name'],$subj,
                                $body,$row_config_globale['smtp_auth'],$row_config_globale['smtp_host'],$row_config_globale['smtp_login'],
                                $row_config_globale['smtp_pass'],$row_config_globale['charset'])){
                                echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("ERROR_SENDING_CONFIRM_MAIL") . "</h4>";
                            }
                        } else {
                            echo "<h4 class='alert_error'>" . translate("You are not a subscriber of this newsletter") . "</h4>";
                        }
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                    case "confirm_join":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $add = addSubscriber($cnx, $row_config_globale['table_email'], $row_config_globale['table_temp'], $list_id, $email_addr, $hash);
                        if ($add==false) {
                            echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "! </h4>";
                        } elseif ($add==true) {
                            $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                            $body = $news['welcome_body'];
                            $body .= "\n\n" . translate("SUBSCRIPTION_UNSUBSCRIBE_LINK") . ":\n";
                            $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$hash&list_id=$list_id'>Je confirme mon désabonnement</a>";
                            $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['welcome_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['welcome_subject']));
                            $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                            $mail = sendEmail($row_config_globale['sending_method'], $email_addr, $news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                            echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_FINISHED") . "</h4>";
                        } else {
                            echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                        }
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                    case "confirm_leave":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $rm = removeSubscriber($cnx, $row_config_globale['table_email'], $row_config_globale['table_send'], $list_id, $email_addr, $hash, $i);
                        if ($rm == 1) {
                            echo "<h4 class='alert_success'>" . translate("UNSUBSCRIPTION_FINISHED") . ".</h4>";
                        } else if ($rm == -1) {
                            echo "<h4 class='alert_error'>" . translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "</h4>";
                        } else {
                            echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                        }
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                    case "join_direct":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        if (!$row_config_globale['sub_validation']) {
                            $add = addSubscriberDirect($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                            if($add){
                                $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                                $body = $news['welcome_body'];
                                $body .= "\n\n" . translate("UNSUBSCRIPTION_MAIL_BODY") . ":\n";
                                $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$add&list_id=$list_id'>Je me désabonne</a>";
                                $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['welcome_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['welcome_subject']));
                                $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                                $mail = sendEmail($row_config_globale['sending_method'],$email_addr,$news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                                echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_FINISHED") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_ALREADY_SUBSCRIBER") . "</h4>";
                            } 
                        }
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                    case "leave_direct":
                        echo '<header><h3>'.translate("UNSUBSCRIPTION_TITLE").'</h3></header>';
                        if (!$row_config_globale['unsub_validation']) {
                            $rm = removeSubscriberDirect($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                            if ($rm) {
                                echo "<h4 class='alert_success'>" . translate("UNSUBSCRIPTION_FINISHED") . ".</h4>";
                            } else if ($rm == -1) {
                                echo "<h4 class='alert_error'>" . translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                            }
                        }
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                    default:
                        echo '<h4 class="alert_info">Vous pouvez fermer cette fenêtre</h4>';
                        echo '<div class="spacer"></div>';
                    break;
                }
            }
            ?>
            </article>
        </section>
    </body>
</html>

va être à adapter à peu près comme cela :

<?php
session_start();
include("mynewsletter/_loader.php");
include("mynewsletter/include/lib/class.phpmailer.php");
if (!function_exists('iconv') && function_exists('libiconv')) {
    function iconv($input_encoding, $output_encoding, $string) {
        return libiconv($input_encoding, $output_encoding, $string);
    }
}
if (!function_exists('iconv') && !function_exists('libiconv')) {
    include_once("mynewsletter/include/lib/ConvertCharset.class.php");
    function iconv($input_encoding, $output_encoding, $string) {
        $converter = new ConvertCharset();
        return $converter->Convert($string, $input_encoding, $output_encoding);
    }
}
$cnx->query("SET NAMES UTF8");
$row_config_globale = $cnx->SqlRow("SELECT * FROM $table_global_config");
include("mynewsletter/include/lang/" . $row_config_globale['language'] . ".php");
$list_id    = (!empty($_POST['list_id']) ? $_POST['list_id'] : "");
$list_id    = (empty($list_id) && !empty($_GET['list_id']) ? $_GET['list_id'] : $list_id);
$email_addr = (!empty($_POST['email_addr']) ? $_POST['email_addr'] : "");
$email_addr = (empty($email_addr) && !empty($_GET['email_addr']) ? $_GET['email_addr'] : $email_addr);
$op         = (!empty($_POST['op']) ? $_POST['op'] : "");
$op         = (empty($op) && !empty($_GET['op']) ? $_GET['op'] : $op);
$hash       = (!empty($_POST['hash']) ? $_POST['hash'] : "");
$hash       = (empty($hash) && !empty($_GET['hash']) ? $_GET['hash'] : $hash);
$i          = (!empty($_POST['i']) ? $_POST['i'] : "");
$i          = (empty($i) && !empty($_GET['i']) ? $_GET['i'] : "");
$h          = (!empty($_POST['h']) ? $_POST['h'] : "");
$h          = (empty($h) && !empty($_GET['h']) ? $_GET['h'] : "");
if ($op == "leave" && !$row_config_globale['unsub_validation']) {
    $op = "leave_direct";
} else if ($op == "leave_direct" && $row_config_globale['unsub_validation']) {
    $op = "leave";
} else if ($op == "join" && !$row_config_globale['sub_validation']) {
    $op = "join_direct";
} else if ($op == "join_direct" && $row_config_globale['sub_validation']) {
    $op = "join";
}
?>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
        <section id="main" class="column">
            <article class="module width_full">
            <?php
            if (isset($list_id) && !empty($list_id) && isValidNewsletter($cnx, $row_config_globale['table_listsconfig'], $list_id) && isset($email_addr)) {
                if (!validEmailAddress($email_addr)) {
                    echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                    echo "<h4 class='alert_error'>" . translate("EMAIL_ADDRESS_NOT_VALID") . "</div>";
                    exit();
                }
                switch ($op) {
                    case "join":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $c = (empty($c) && !empty($_POST['c']) ? $_POST['c'] : "");
                        if (empty($c)||($_POST['c']!=$_SESSION['c'])) {
                            $_SESSION['new_sub']=$email_addr;
                            echo '<form method="post" action="">
                                    <div class="module_content">
                                        <fieldset>
                                            <label>Confirmer votre inscription en saisissant le code ci-dessous :</label>
                                            <label><img src="c.php" /></label>
                                            <input type="text" name="c" value="" />
                                            <input type="hidden" name="email_addr" value="'.$email_addr.'" />
                                            <input type="hidden" name="list_id" value="'.$list_id.'" />
                                            <input type="hidden" name="op" value="join" />
                                        </fieldset>
                                    </div>
                                    <footer>
                                        <div class="submit_link">
                                            <input type="submit" value="OK">
                                        </div>
                                    </footer>
                                </form>';
                        } elseif ($_POST['c']==$_SESSION['c']) {
                            if ($row_config_globale['mod_sub']=="0") {
                                $add  = addSubscriberTemp($cnx, $row_config_globale['table_email'], $row_config_globale['table_temp'], $list_id, $email_addr);
                                $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                                if (strlen($add) > 3) {
                                    $body = $news['subscription_body'];
                                    $body .= "\n\n" . translate("SUBSCRIPTION_MAIL_BODY") . ":\n";
                                    $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_join&email_addr=" . urlencode($email_addr) . "&hash=$add&list_id=$list_id'>Je m'abonne</a>";
                                    $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['subscription_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['subscription_subject']));
                                    $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                                    $mail = sendEmail($row_config_globale['sending_method'], $email_addr, $news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                                    echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE") . "</h4>";
                                } elseif ($add ==0)
                                    echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_ALREADY_SUBSCRIBER") . "</h4>";
                                else
                                    echo "<h4 class='alert_error'>" . translate("ERROR_SQL2") . "</h4>";
                            } elseif ($row_config_globale['mod_sub']=="1") {
                                $add = addSubscriberMod($cnx, $row_config_globale['table_email'], $row_config_globale['table_sub'], $list_id, $email_addr);
                                if ($add)
                                    echo "<h4 class='alert_success'>" . translate("Subscription requested recorded, waiting for moderation") . "</h4>";
                                else if ($add == 0)
                                    echo "<h4 class='alert_error'>" . translate("You are already a subscriber") . "</h4>";
                                else
                                    echo "<h4 class='alert_error'>" . translate("Error while SQL query") . "</h4>";
                            }
                            echo '<div class="spacer"></div>';
                        }
                    break;
                    case "leave":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                        $hash = isValidSubscriber($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                        if ($hash==$h&&!empty($hash)&&strlen($hash)==32) {
                            $body = $news['quit_body'];
                            $body .= "\n\n" . translate("UNSUBSCRIPTION_MAIL_BODY") . " :\n";
                            $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$hash&list_id=$list_id&i=$i'>Je me désabonne</a>";
                            $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['quit_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['quit_subject']));
                            $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                            if (sendEmail($row_config_globale['sending_method'],$email_addr,$news['from_addr'],$news['from_name'],$subj,
                                $body,$row_config_globale['smtp_auth'],$row_config_globale['smtp_host'],$row_config_globale['smtp_login'],
                                $row_config_globale['smtp_pass'],$row_config_globale['charset'])){
                                echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_SEND_CONFIRM_MESSAGE") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("ERROR_SENDING_CONFIRM_MAIL") . "</h4>";
                            }
                        } else {
                            echo "<h4 class='alert_error'>" . translate("You are not a subscriber of this newsletter") . "</h4>";
                        }
                        echo '<div class="spacer"></div>';
                    break;
                    case "confirm_join":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $add = addSubscriber($cnx, $row_config_globale['table_email'], $row_config_globale['table_temp'], $list_id, $email_addr, $hash);
                        if ($add==false) {
                            echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "! </h4>";
                        } elseif ($add==true) {
                            $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                            $body = $news['welcome_body'];
                            $body .= "\n\n" . translate("SUBSCRIPTION_UNSUBSCRIBE_LINK") . ":\n";
                            $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$hash&list_id=$list_id'>Je confirme mon désabonnement</a>";
                            $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['welcome_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['welcome_subject']));
                            $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                            $mail = sendEmail($row_config_globale['sending_method'], $email_addr, $news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                            echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_FINISHED") . "</h4>";
                        } else {
                            echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                        }
                        echo '<div class="spacer"></div>';
                    break;
                    case "confirm_leave":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        $rm = removeSubscriber($cnx, $row_config_globale['table_email'], $row_config_globale['table_send'], $list_id, $email_addr, $hash, $i);
                        if ($rm == 1) {
                            echo "<h4 class='alert_success'>" . translate("UNSUBSCRIPTION_FINISHED") . ".</h4>";
                        } else if ($rm == -1) {
                            echo "<h4 class='alert_error'>" . translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "</h4>";
                        } else {
                            echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                        }
                        echo '<div class="spacer"></div>';
                    break;
                    case "join_direct":
                        echo '<header><h3>'.translate("SUBSCRIPTION_TITLE").'</h3></header>';
                        if (!$row_config_globale['sub_validation']) {
                            $add = addSubscriberDirect($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                            if($add){
                                $news = getConfig($cnx, $list_id, $row_config_globale['table_listsconfig']);
                                $body = $news['welcome_body'];
                                $body .= "\n\n" . translate("UNSUBSCRIPTION_MAIL_BODY") . ":\n";
                                $body .= "<a href='".$row_config_globale['base_url'] . $row_config_globale['path'] . "subscription.php?op=confirm_leave&email_addr=" . urlencode($email_addr) . "&hash=$add&list_id=$list_id'>Je me désabonne</a>";
                                $subj = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $news['welcome_subject'] : iconv("UTF-8", $row_config_globale['charset'], $news['welcome_subject']));
                                $body = (strtoupper($row_config_globale['charset']) == "UTF-8" ? $body : iconv("UTF-8", $row_config_globale['charset'], $body));
                                $mail = sendEmail($row_config_globale['sending_method'],$email_addr,$news['from_addr'], $news['from_name'], $subj, $body, $row_config_globale['smtp_auth'], $row_config_globale['smtp_host'], $row_config_globale['smtp_login'], $row_config_globale['smtp_pass'], $row_config_globale['charset']);
                                echo "<h4 class='alert_success'>" . translate("SUBSCRIPTION_FINISHED") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("SUBSCRIPTION_ALREADY_SUBSCRIBER") . "</h4>";
                            } 
                        }
                        echo '<div class="spacer"></div>';
                    break;
                    case "leave_direct":
                        echo '<header><h3>'.translate("UNSUBSCRIPTION_TITLE").'</h3></header>';
                        if (!$row_config_globale['unsub_validation']) {
                            $rm = removeSubscriberDirect($cnx, $row_config_globale['table_email'], $list_id, $email_addr);
                            if ($rm) {
                                echo "<h4 class='alert_success'>" . translate("UNSUBSCRIPTION_FINISHED") . ".</h4>";
                            } else if ($rm == -1) {
                                echo "<h4 class='alert_error'>" . translate("UNSUBSCRIPTION_UNKNOWN_EMAIL_ADDRESS") . "</h4>";
                            } else {
                                echo "<h4 class='alert_error'>" . translate("ERROR_UNKNOWN") . "</h4>";
                            }
                        }
                        echo '<div class="spacer"></div>';
                    break;
                    default:
                    break;
                }
            }
            ?>
            </article>
        </section>

Mais ce n'est qu'un aperçu, car il va falloir gérer les exceptions, et ceci rentre dans un cadre très particulier d'internalisation d'un script.
Ce que je ne ferai pas, et je recommande vivement de laisser l'usage recommandé, c'est à dire, la gestion par fenêtre annexe.


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

#15 08-03-2015 18:33:51

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

dans subscription.php nous sommes d'accords ?

Hors ligne

#16 08-03-2015 18:44:22

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Non, dans index.php, le fichier d'accueil du portail.
Pour le action du formulaire, il faut aussi ne rien mettre, et donc avoir :

<form action='' method='post'>
<input type='text' name='email_addr' value='' size='30'>
<input type='hidden' name='list_id' value='1'>
<input type='hidden' name='op' value='join'>
<input type='submit' value='souscrire'>
</form>

et donc supprimer le script appelé... Ça va pas être de tout repos...


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

#17 08-03-2015 18:49:17

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/c/c/7/tribal-studio.fr/httpd.www/index.php:79) in /customers/c/c/7/tribal-studio.fr/httpd.www/index.php on line 80

+ ca me supprime une partie du site vous pouvez tester mais bon je ne vais pas vous embêter plus longtemps c'est déjà fort gentil à vous

Hors ligne

#18 08-03-2015 18:53:40

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

J'ai été trop vite, il faut enlever le session_start(); de la ligne 2, juste après le <?php


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

#19 08-03-2015 18:57:37

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

alors ca fonctionne mais si je peux me permettre ca m'enlève une partie du site coté droit et footer !

Hors ligne

#20 08-03-2015 18:59:02

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

ca m'enlève une partie uniquement sur les messages d'erreur

Dernière modification par dcrea (08-03-2015 18:59:23)

Hors ligne

#21 08-03-2015 19:01:38

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

dcrea a écrit :

alors ca fonctionne mais si je peux me permettre ca m'enlève une partie du site coté droit et footer !

C'est pour cela que c'est long !
En fait, il faut enlever les balises de style de la portion de code que j'ai donnée, et l'intégrer proprement dans l'environnement existant...


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

#22 08-03-2015 19:02:33

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

d'accord donc c 'est un souci de css

Hors ligne

#23 08-03-2015 19:02:41

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

Sinon, je me suis inscrit, et réinscrit, ça fonctionne très bien ! En 2 coups de cuillère à pot, c'est presque fini... Pas mal non ?  wink  wink


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

#24 08-03-2015 19:08:33

dcrea
Membre

Re : [Résolu] Pb avec subscription.php

ouep c'est drôlement chouette de votre part

Hors ligne

#25 08-03-2015 19:09:29

Arnaud
Administrateur

Re : [Résolu] Pb avec subscription.php

dcrea a écrit :

ouep c'est drôlement chouette de votre part

Je parlais surtout du site  wink


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