Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32

    Ordine inverso per Guestbook

    ragazzi ho questo script:

    <?

    if (!isset($name) || !isset($email) || !isset($message) || empty($name) || empty($email) || empty($message)) {
    print "&result=Fail";
    print "&errorMsg=" . urlencode("Input required for all fields.");
    exit;
    }

    $email = strtolower($email);

    addentry($name, $email, $message);

    function addentry($name, $email, $message) {

    $posted = strftime("%D %I:%M %p");

    $message = stripslashes($message);

    $file = fopen('entry.txt', 'a+');

    if (!$file) {
    print "&result=Fail";
    print "&errorMsg=" . urlencode("Could not open entry.txt file. Change CHMOD levels to 766.");
    exit;
    }

    fputs($file, "<font color=\"#000000\">Nome:</font> $name\n<font color=\"#000000\">Email:</font> <font color=\"#990000\"><u><A href=\"mailto:$email\">$email</A></u></font>
    \n<font color=\"#000000\">Data:</font> $posted\n<font color=\"#000000\">Messaggio:</font> $message\n\n");
    fclose($file);

    // Send admin an email when new entry occurs
    mailAdmin($name, $email, $message);
    }

    function mailAdmin($name, $email, $message) {
    $mailTo = "info@393wr.com";
    $mailFrom = "From: <info@393wr.com>";
    $mailSubject = "Nuovo Messaggio dal GuestBook";
    $mailBody = "Un nuovo visitatore ha lasciato un messaggio nel tuo Guestbook:\n
    Name: $name
    Email: $email
    The visitor commented:
    ------------------------------
    $message
    ------------------------------
    You can view the message at:
    http://www.393wr.com";
    mail($mailTo, $mailSubject, $mailBody, $mailFrom);
    }

    print "&result=okay";
    exit;

    ?>


    Ora l'ultimo messaggio postato viene messo in fondo all'elenco; ma lo vorrei al primo posto, cosi ke i messaggi più vekki siano in fondo.

    Invertire l'ordine insomma; come posso fare???
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32
    Nessuno reisce a risolvere il mio problema????

  3. #3
    i messaggi sono in entry.txt?

  4. #4
    guarda quando fai l'fopen in a+ in automatico ti posizioni alla fine del file per la scrittura.
    Per metterti all'inizio del file devi fare l'fopen in r+.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32
    si i messaggio sono contenuti in un entry.txt!!!!

    Ho provato a sostituire a+ in r+, ma non mi funziona!!!!!

    Sbaglio io qualcosa????

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32
    Diammine, non riesco a capire!!!!!!

    Quale soluzione posso adottare per rigirare l'ordine???????????

  7. #7
    È normale che se utilizzi "a+" in fopen() il puntatore si posizioni in fondo a quanto già presente.
    Tieni conto che in questo caso A sta per Append.
    Le modalità di funzionamento di questa funzione sono ben spiegate nel manuale ufficiale di PHP, dai un'occhiata a questo LINK.

    Potresti provare utilizzando il puntatore "W", che si pone all'inizio del file di testo in cui vuoi scrivere.
    Non sono sicuro, però, se sovrascriva quanto trovi nel file di testo stesso. Dovresti fare qualche prova e vedere da te.

    Nel caso ci sia una sovrascrittura, dovrai confezionarti una funzione che faccia quanto da te richiesto.
    Magari potresti provare ad estrapolare ogni singolo rigo, metterlo in un array, andare ad aggiungere il tuo ultimo post nell'array appena creato, fare un array_reverse() ed andare a riscrivere il file di testo ciclando il medesimo array appena invertito.

    Spero di essere stato chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32
    Grazie mille dei tuoi consigli, ma io di php non ci capisco un tubo!!!

    Ho trovato questo sictemino in php, per un forum su un sito in flash, e mi funziona.

    Volevo solo invertitre l'ordine di comparsa, ma mettende 'w' al posto di 'a+' o 'r+' al posto di 'a+', non mi funziona più!!!

    uffaaaaaaaaaaaaaaaaaaaaaa!!!

  9. #9
    Senza offesa, ma se ci dici
    non mi funziona più!!!
    purtroppo non ci aiuti nello scovare dove risiede il tuo problema.

    Ottieni un messaggio di errore?
    Non ti compare nulla?
    Il file entry.txt esiste? Viene scritto o rimane vuoto?

    Sii un po' più preciso e magari potremmo provare a capire dove sta il tuo problema.
    Ad ogni modo, il file di testo non è che sia (di base) la scelta migliore per fare un guestbook fosse anche per un sito che non ha una mole di accessi giornalieri elevata: il supporto di un DB ti aiuterebbe moltissimo soprattutto nell'estarpolazione e manipolazione delle entry registrate!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    32
    Hai ragione, scusami...

    guarda ti l'ho l'indirizzzo dove ho montato il file .php con w al posto di a+:

    http://www.393wr.com/public/test/

    scrive il file entry.txt ma non lo legge.

    Ho provato anke con r, ma idem non funziona.

    Mentre all'indirizzo 393wr.com trovi il forum funzionante.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.