Visualizzazione risultati 1 fino 6 di 6

Discussione: [php/mysql] Aggiungere messaggi salvandoli sul database (come se fosse una tagboard)

  1. #1
    Guest

    Predefinito [php/mysql] Aggiungere messaggi salvandoli sul database (come se fosse una tagboard)

    Ciao a tutti.

    Io vorrei creare una cosa del genere da mettere nell'header di ogni pagina:


    Ovviamente la grafica è solo un esempio, l'ho disegnata con Paint!

    A destra c'è il form per inviare il messaggio, dove ci sono due campi: quello per scrivere il messaggio e quello per scrivere il nome/nickname.

    Allora io farei una cosa del genere:

    FORM
    Codice HTML:
    <FORM action="add-mess.php" METHOD="POST">
    <INPUT type="text" name="messaggio">
    <INPUT type="text" name="nickname">
    <input type="submit" value="Invia">
    </FORM>
    e nel file add-mess.php:

    Codice PHP:
    <?php
    if(!(isset($_POST['messaggio']) && isset($_POST['nickname'])))
    die(
    'errore: non sono presenti tutti i dati!'); //messaggio di errore...

    /*connessione al database*/
    $db = mysql_connect('localhost','user','password');
    if(
    $db == FALSE)
    die(
    'Errore: impossibile connettersi al database!'); //messaggio di errore
    if(!mysql_select_db('nomedb'))
    die(
    'Errore: impossibile accedere al database!');

    $ris = mysql_query("INSERT INTO nome_tabella (messaggio,nickname) VALUES('".$_POST['messaggio']."','".$_POST['nickname']."')");

    if(!
    $ris)
    die(
    'Errore: impossibile aggiungere valori nel database!');

    mysql_close($db);
    ?>
    Dopo aver creato la mia tabella sul database e dopo aver inserito i primi messaggi, avrei una cosa del genere:

    Codice:
    INSERT INTO `nome_tabella` (`id`, `nickname`, `messaggio`) VALUES
    (1 , 'Tizio', 'messaggio numero uno'),
    (2 , 'Caio', 'secondo messaggio'),
    (3 , 'Sempronio', 'terzo messaggio bla bla bla');
    E nell'header preleverei i dati dal database in questo modo:
    Codice PHP:
    <?php
    /*connessione al database*/
    $db = mysql_connect('localhost','user','password');
    if(
    $db == FALSE)
    die(
    'Errore: impossibile connettersi al database!'); //messaggio di errore
    if(!mysql_select_db('nomedb'))
    die(
    'Errore: impossibile accedere al database!');

    $ris = mysql_query('SELECT * FROM nome_tabella ORDER BY id DESC limit 5');

    while(
    $r = mysql_fetch_assoc($ris)) {

    echo
    $r['id'], $r['nickname'], $r['messaggio'] ;
    }
    mysql_close($db);
    ?>
    E fin qui mi sembra tutto ok e chiaro.

    Però...
    Vorrei che:
    - I messaggi fossero scorrevoli (senza utilizzare il <marquee>);
    - Un volta inviato il messaggio, vorrei che non si aprisse un'altra pagina (add-mess.php), ma che si refreshasse la pagina in cui si è inviato il messaggio, facendo visualizzare il messaggio stesso.;
    - Che non si potessero inserire alcuni caratteri come @ e che non si potessero inserire alcune parole come http:// . Insomma, per evitare lo spam in qualche modo.

  2. #2
    Guest

    Predefinito

    Per i primi due punti devi servirti di JavaScript e delle richieste AJAX (in questo modo ti risparmi anche il refresh della pagina), giocando tutto su dei timer e sull'elemento innerHTML.
    Per il terzo punto hai due strade (gestibili sia tramite PHP che JavaScript): o usi le espressioni regolari, oppure un array con tutte le stringe non ammesse, che vai a scorrere al momento dell'invio/aggiunta del messaggio e gestisci di conseguenza.

  3. #3
    Guest

    Predefinito

    Un volta inviato il messaggio, vorrei che non si aprisse un'altra pagina (add-mess.php), ma che si refreshasse la pagina in cui si è inviato il messaggio, facendo visualizzare il messaggio stesso
    delle richieste AJAX (in questo modo ti risparmi anche il refresh della pagina)
    Ma ad esempio? C'è qualche link, qualche script già pronto?

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    secondo me se cerchi sul sito di http://sourceforge.net

    sicuramente trovi script già pronti o comunque modificabili....

    ad es. http://sourceforge.net/search/?type_...&search=Search

    ecc...

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito

    Si, però io non volevo uno script completamente già fatto, se no avrei già scaricato qualcos'altro ;)
    Io volevo utilizzare il sistema che vi ho mostrato nel messaggio iniziale e poi aggiungere qualcosa per far sì che all'invio del messaggio non venisse aperta un'altra pagina...

    Comunque non si sa mai, io controllo il link che mi hai dato... Grazie.

  6. #6
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    Citazione Originalmente inviato da musicanapoli Visualizza messaggio
    Si, però io non volevo uno script completamente già fatto, se no avrei già scaricato qualcos'altro ;)
    Io volevo utilizzare il sistema che vi ho mostrato nel messaggio iniziale e poi aggiungere qualcosa per far sì che all'invio del messaggio non venisse aperta un'altra pagina...

    Comunque non si sa mai, io controllo il link che mi hai dato... Grazie.
    per far si che non venga aperta nessun altra pagina, secondo me basta che il form per l'inserimento input(l'html) e il php li metti nella stessa pagina, fai un file unico e per es. lo chiami per l'appunto add-mess.php

    per evitare caratteri come @ o http o altri caratteri fastidiosi, puoi inserire un filtro...

    es.:
    Codice PHP:
    $void=0;

    if (isset(
    $_POST['messaggio']) && !empty($_POST['messaggio']))
    {
    $messaggio = $_POST['messaggio'];
    $void += substr_count($messaggio,"http");
    $void += substr_count($messaggio,"@");
    $void += substr_count($messaggio,"ftp");
    $void += substr_count($messaggio,"cgi");
    //qui continui con altri caratteri da controlllare
    }

    //esegui il loop if else

    if ($void != 0) die "Non sono ammessi caratteri speciali!";

    //oppure:
    if ($void == 0){

    //qui esegui il codice

    }
    else echo
    "Non sono ammessi caratteri speciali!";

    Ultima modifica di EuroSalute : 17-05-2010 alle ore 18.48.22 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Tags for this Thread

Regole di scrittura

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