Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    20

    [chat] come creao una chat piu sql

    Voglio fare una chat in php più database sql da poter usare in un piccolo giochino on line
    Ho cercato in rete ma di funzionate e decente non ho trovato nulla quindi vi espongo brevemente ciò che fatto e cio che voglio fare
    Ho già il data base sql .
    Idea e creare una pagina che sia divisa a 2 frame uno per vedere il messaggio inserito dagli utenti ed uno per fare input
    Quindi creare in ordine le seguenti pagine
    - Chat.php
    - Input.php
    - Aggiorna.php
    - Messaggio.php
    Posto i codice che già ho fatto
    - Pagina chat
    <? session_start();
    include ("inc/parametri.inc.php");
    include ("inc/controllo.php");
    include ("inc/open2.php");
    $Login = $_SESSION['Login'];
    $Messaggio=$_POST['Messaggio'];
    $Stanza=$_SESSION['Stanza'];
    $op=$_REQUEST['op'];
    $Tipo=$_REQUEST['Tipo'];
    $nome=$_POST['nome'];
    include ("inc/controlloesilio.php");
    ?>
    <html>
    <body>
    <meta http-equiv="refresh" content="30,chat.php">
    <iframe name="messaggio" src="messaggio.php" frameborder="0" framespacing="0" width="100%" height="85%"></iframe>
    <iframe name="input" src="input.php" frameborder="0" framespacing="0" width="100%" height="15%" scrolling="no"></iframe>
    </body>
    </html>
    - Input.php
    <html>
    <? session_start();
    include ("inc/parametri.inc.php");
    include ("inc/controllo.php");
    include ("inc/open2.php");
    $Msg = stripslashes($Msg);
    $Msg = substr($Msg, 0, min(strlen($Msg), 500));
    $Msg = addslashes($Msg);
    $MySql = "INSERT INTO Chatoff ( Mittente, Destinatario, Ora, Testo, locale, Tipo)";
    $MySql .= "VALUES ('".addslashes($locale)."', 'System Op', '".addslashes($Login)."', NOW(), '".$Msg."', 'S')";
    mysql_query($MySql);
    ?>
    <form name="INform" method="post" action=”aggiorna.php” onSubmit="javascript:location.reload();">
    <input type="text" name="message" size="45">
    <input type="submit" value="Invia" name="inviato" onclick="javascript:document.INform.message.focus( );">
    </form>
    </html>
    - Aggiorna.php
    <html>
    <head></head>
    <meta http-equiv="refresh" content="45,chatview.php">
    <body>
    <? session_start();
    include ("inc/parametri.inc.php");
    include ("inc/controllo.php");
    include ("inc/open2.php");
    $Stanza=$_SESSION['Stanza'];
    $op=$_REQUIRE['op'];
    $Login=$_SESSION['Login'];
    $LastTime=$_SESSION['LastTime'];
    ?>
    <?
    $MySql =
    </body>
    </html>
    - Messaggio.php
    <html>
    <head></head>
    <meta http-equiv="refresh" content="45,chatview.php">
    <body>
    <? session_start();
    include ("inc/parametri.inc.php");
    include ("inc/controllo.php");
    include ("inc/open2.php");
    ?>
    <?
    $MySql =
    while($riga = mysql_fetch_array($result)){
    $nome = stripslashes($riga['Nome']);
    $mss = stripslashes($riga['Messaggio']);
    $ora = date(“H:i”, $riga['Data']);
    echo($ora.” “.$nome.” dice: “.$mss.”
    ”);
    }
    ?>
    </body>
    </html>
    Dati presenti nella sql
    Id , mittente , destinatario , ora , testo, locazione, tipo
    Id= il numero progressivo del mex
    Mittente= colui che invia
    Destinatario= se usano i sussurri e un gioco un gdr roba del tipo ( @pippo@ testo )
    Ora= orario di invio
    Locale= e stanza unica la chat
    Testo= messaggio stesso

    p.s. idee su come complettare perche sono fermo da giorni

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    sinceramente ti consiglio di lasciar perdere e usare qualcosa di pronto, anche perchè l'idea dei frame non mi sta molto simpatica...
    http://hot-things.net/
    eXvision

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    20
    non posso usare una chat gia pronta per diversi motivi ...
    semplifichiamo dai ho un data base con tutti i dati degli utenti (nome pass ecc ecc ) , ed una volta che entrano oltre a poter giocare vorrei che possono scrivere nella chat senza dover fare il login di nuovo( si lamentano e dicono che si stuffano a fare il login 2 volte).
    come posso risolvere ?
    perche e sbagliata idea dei 2 frame la pagina e composta da una parte che invia ed una che deve vedere i dati dal sql o sto sbagliando?


    ciao e grazie deolle risposte

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ciao expert

    questa estate mi ero imbattuto pure io in questo prblema e ho fatto diverse prove proprio come te. (frameset con frame di lettura e aggiornamento).

    il sistema utilizza l' ob_flush() e funziona piu o meno così:

    un file txt di bridge
    una index con 2 frames in cui ci sono
    un file send.php per invio messaggio
    un reader.php per visualizzare l'elenco messaggi


    come funziona?
    innanzi tutto il reader non fa altro che leggere uil contenuto del file di test in loop, e se trova contenuti nuovi li spara a video utilizzando l' ob_flush()

    L' ob_flush ha la particolarità che riesce a mantenere aperto lo streaming dal server al client, e manda i dati in output in tempo reale... quindi la latenza tra un messaggio appena scritto e la sua lettura verso tutti è molto bassa. In questo modo inoltre avevo per ogni client una sola richiesta aperta da apache e continuativa, il che mi dava l'impressione che fosse il server ad aggiornare i dati lato client e non viceversa dove i clients ogni tot secondi si ricaricano la pagina

    il sender invece non fà altro che scrivere i dati sul file di testo.

    svantaggi?
    2 principalmente:

    - apache fa fatica a mantenere per molto tempo aperto lo stream e potrebbe dare problemi rilevanti
    - se uno fa STOP dal proprio browser la connessione si interrompe


    ok. funzionava in locale.. figo! adesso provo con un db, senza file di testo....
    appena fatto, non sò come mai, utilizzando mysql il sistema di streaming cadeva ....

    quindi devo evitare di fare select e insert lato database...

    la soluzione per me è stata quindi quella di avere un file di testo come ponte di connessione server <--> client, e a cadenze regolari uno script passa, preleva i vecchi messaggi dal file cancellandoli.

    spero di esserti stato di aiuto!!

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    20
    tento anche questa strada grazie del consiglio

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.