Visualizzazione risultati 1 fino 5 di 5

Discussione: Deviare messaggi in un archivio

  1. #1
    Guest

    Predefinito Deviare messaggi in un archivio

    Posto questa parte, fino a 2 messaggi li mette in un file, vorrei fare in modo che oltre i 2 me li archivia in un altro file, ma non funziona qualcosa

    Codice PHP:
    $mess_da_ins=$messaggioS."|".$nomeS."|".$cittaS."|".$suoemailS."\n";
    $mess_ultimo=2; //numero di messaggi massimo da visualizzare

    if ($mess_ultimo >=2) {
    echo
    "archivio.php";
    }

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Quel codice non fa alcuna delle operazioni di cui parli, a parte eseguire un if che è sempre vero. Puoi postare l'intero script?

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Quel codice non fa alcuna delle operazioni di cui parli, a parte eseguire un if che è sempre vero. Puoi postare l'intero script?
    La parte in rosso è tutto il codice, a me messo così mi arriva

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,247

    Predefinito

    Come detto da dreadnaut, quel codice non fa nulla (da solo).

    Esempio: dove inizializzi le variabili $messaggioS,$nomeS, $cittaS,$suoemailS?

    $mess_da_ins contiene il / i messaggi da inviare. Come li invii?

    In ogni caso, invece di
    Codice PHP:
    echo "archivio.php";
    , per salvare i messaggi ti consiglio di farlo su un database. Se vuoi comunque utilizzare un file di testo, puoi usare la file_put_contents() {richiede PHP5. Non so se lo hai attivato nel tuo account, dal pannello di controllo}.

    Ciao!
    Ultima modifica di alemoppo : 14-11-2012 alle ore 16.02.58

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Come detto da dreadnaut, quel codice non fa nulla (da solo).

    Esempio: dove inizializzi le variabili $messaggioS,$nomeS, $cittaS,$suoemailS?

    $mess_da_ins contiene il / i messaggi da inviare. Come li invii?

    In ogni caso, invece di echo "file.php", per salvare i messaggi ti consiglio di farlo su un database. Se vuoi comunque utilizzare un file di testo, puoi usare la file_put_contents().

    Ciao!
    Questo è il codice funzionante

    Codice PHP:
    <?php // ...1/6
    session_start();
    if (
    file_exists('messaggi.html')) {
    $righe_mess = file('messaggi.html');//ritorna un array con le righe del file
    $_SESSION['successi'] = count($righe_mess);//aggiungi questa riga
    if (is_array($righe_mess)) {
    ?>

    <? // ...2/6
    foreach ($righe_mess as $num_riga => $testo_riga) {
    $testi = explode("|",$testo_riga);
    if (
    $testi[0] != "") {

    echo
    "<div class=\"stampaS\">";

    echo
    "<div class=\"dataBox\">$testi[0]</div><br />";

    echo
    "<div class=\"campiAltiS\">";

    echo
    "<div class=\"oggettoBox\">$testi[1]</div>";

    echo
    "</div>"; // campiAltiS

    echo "<div class=\"messaggioBox\">\"$testi[2]\"</div>";

    echo
    "<div class=\"bassoS\"></div>"; // bassoS

    echo "<div class=\"nomeBox\">$testi[3],</div>";

    if (!empty(
    $testi[4])) { // Se il campo è vuoto non stampa neanche la virgola
    echo "<div class=\"cittaBox\">$testi[4],</div>";
    }

    if (!empty(
    $testi[5])) { // Se il campo è vuoto non stampa neanche il trattino
    echo "<div class=\"mailBox\">$testi[5]&nbsp;&nbsp;-&nbsp;&nbsp;</div>";
    }

    echo
    "<div class=\"ipBox\">Ip: $testi[6]</div>";

    echo
    "<div class=\"bandierinaBox\">$testi[7]<div class=\"nazione\">".$countries[$two_letter_country_code][1]."</div></div>";

    echo
    "</div>"; // stampaS
    }
    }
    }
    }

    if (isset(
    $_POST['invia'])) {

    //Variabili con $_POST

    //Controlli

    // ...3/6 - In questa sequenza stampa in messaggi.html
    $mess_da_ins = $data_localeS."|".$oggettoS."|".$messaggioS."|".$nomeS."|".$cittaS."|".$suoemailS."|".$ip."|".$bandierina."\n";
    $mess_ultimo = 2; //numero di messaggi massimo da visualizzare

    // ...4/6
    if ($erroreS == "") {
    if (
    file_exists('messaggi.html')) {
    $righe = file('messaggi.html');
    $quante = count($righe);
    if (
    $quante == 0) { //il file messaggi.html esiste ma è vuoto
    $inserire = $mess_da_ins;
    } elseif (
    $quante == 1) { //esiste una sola riga
    $inserire = $righe[0] . $mess_da_ins;
    } elseif (
    $quante > 1) {
    if (
    $quante < $mess_ultimo) {
    $righe[$quante] = $mess_da_ins;
    } else {
    //sposto in su i messaggi (in pratica elimino il più vecchio)...
    for ($k = 0; $k < ($quante-1); $k++) {
    $j = $k + 1;
    $righe[$k] = $righe[$j];
    }
    $righe[$mess_ultimo] = $mess_da_ins; //...e aggiungo l'ultimo
    }
    foreach (
    $righe as $ch => $testo){ //preparo la stringa da salvare
    $inserire .= $testo;
    }
    }
    file_put_contents('messaggi.html', $inserire);
    }
    else {
    file_put_contents('messaggi.html', $mess_da_ins);
    }
    session_destroy();
    echo
    '<meta http-equiv="REFRESH" content="0; url=http://miosito.it/pagina.php">';

    }
    // ...5/6
    else {
    echo
    "Errore";

    }
    }
    else {
    ?>

    //FORM

    <?php // ...6/6
    }
    ?>
    Ultima modifica di dreadnaut : 14-11-2012 alle ore 16.44.08 Motivo: + indentazione, spaziature codice

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •