Visualizzazione risultati 1 fino 14 di 14

Discussione: Chat

  1. #1
    Guest

    Angry Chat

    Dopo una estenuante ricerca in rete non sono riuscito a trovare una risposta alle mie domanda: "La chat è meglio farla in javascript o in php?in tutti e due? comre posso evitare di fare un refresh o se proprio devo come posso fare" scusate l'ignoranza e vi prego datemi una mano anche rimandandomi in vecchie discussioni (mi ricordo che avevo trovato una domanda simile ma non ce ne è più traccia :( .

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Ciao.
    Se vuoi fare una chat per bene ti conviene usare PHP, JS, JQuery e CSS.
    Eh sì, sono un bel po', ma se vuoi avere una chat fantastica li devi usare.
    Puoi però usare soltanto PHP e JS o, se vuoi fare una chat scacciata anche solo PHP.
    Qui c'è una piccola guida.

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

    Predefinito

    Una chat in javascript senza PHP è impossibile: javascript lavora lato client (viene eseguito sul PC degli utenti), e non ha alcun modo di comunicare con altri utenti senza l'ausilio di PHP.

    Per non far aggiornare la pagina, una chat solo con PHP è impossibile (a meno di usare brutture come iframe): devi usare per forza js + ajax.

    Ciao!

    EDIT: anticipato, ma lascio :P

  4. #4
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ajax e php!!! php comunica col server e ajax praticamente fa in modo di non far caricare le pagine e farti visualizzare "in diretta" e senza caricamenti quello che scrivono gli utenti...

  5. #5
    Guest

    Predefinito

    grazie mille a tutti ora ci proverò

    EDIT:

    nuovo problema!
    ho trovato una guida ECCELLENTE con la E maiuscola in internet, un po' greza, ma con tutto quello che mi avete suggerito (grazie mille non saprei come avrei fatto senza il vostro aiuto) il problema è questo: io non capisco un tubo di sql e mysql!!!
    partendo dall'inizio, c'è una tabella SQL "tb_chat"

    Codice HTML:
    CREATE TABLE tb_chat (
       id_chat int (11)              NOT NULL   auto_increment,
       user_chat varchar (14)   NOT NULL deflaut '',
       mex_chat varchar (200) NOT NULL deflaut '',
       PRIMARY KEY (id_chat)
       ENGINE=MyISAM DEFLAUT CHARESET=latin1;
    credo che questa tabella sia di vitale fondamentanza per la chat poichè da quello che ho capito esprime valori di limite come numero massimo di caratteri per id ecc...
    come la posso mettere su altervista? in quale formato? se riuscite a darmi una risposta ma il problema persiste metterò direttamente cio chè penso sia sbagliato.

    ps:ma per un sistema login grezzo serve anche un database mysql? se volete verificare il codice eccolo qui:
    Codice PHP:
    <?php
    @session_start();
    if(isset(
    $_POST['nickname'])&&($_POST['nickname']!=""))
    {
    $_SESSION['user'] = $_POST['nickname'];
    @
    header('Location:chat.php');
    }else{
    ?>
    <html>
    <head>
    </head>
    <body>
    <p>
    <form method="post" action="login.php">
    Scegli il tuo nickname<br><br>
    <input type="text" name="nickname" maxlength="10">
    <input type="submit" value="Chatta">
    </form>
    </p>
    </body>
    </html>
    <?
    }
    ?>
    grazie di tutto
    Ultima modifica di alemoppo : 14-12-2011 alle ore 23.50.49 Motivo: Non fare messaggi consecutivi: usa il tasto "Edita" per editare i messaggi.

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

    Predefinito

    Citazione Originalmente inviato da Pokeroad Visualizza messaggio
    il problema è questo: io non capisco un tubo di sql e mysql!!!
    Guida pratica php+mysql

    I parametri di connessione sono scritti qui.
    Nota bene che non è necessario usare il database mysql: si può usare la chat anche su database si file. Se cerchi nel forum, potresti trovare anche script già fatti.

    Tieni presente che su altervista, a meno di upgrade, il numero di query/orarie è limitato.

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Guida pratica php+mysql

    I parametri di connessione sono scritti qui.
    Nota bene che non è necessario usare il database mysql: si può usare la chat anche su database si file. Se cerchi nel forum, potresti trovare anche script già fatti.

    Tieni presente che su altervista, a meno di upgrade, il numero di query/orarie è limitato.

    Ciao!
    grazie mille ti adoro alemoppo vediamo cosa esce fuori ora

    EDIT:

    è successo ciò che non avrei mai voluto accadesse: NON FUNZIONA

    per vedere se trovate l'errore basta che entriarte nel mio sito tanto è tutto molto chiaro. Vi scongiuro aiutatemi non sono arrivato fin qui da solo e spero di on abbandonare tutto perchè... mi avete lasciato solo.

    ecco il link se siete un po' pigri XD : http://pokeroad.altervista.org/
    Ultima modifica di alemoppo : 15-12-2011 alle ore 22.48.07 Motivo: Non fare post consecutivi: usa il tasto "Edita" per editare i messaggi.

  8. #8
    Guest

    Predefinito

    Ci ho provato ad entrare nel tuo sito.. ma non è una cattiveria gratuita o uno scherzo, quel rosso mi ha distrutto le retine: non sono riuscito a tenere aperto il sito per più di due minuti :S

    Comunque, hai provato a verificare i responsi delle chiamate asincrone con firebug ?

  9. #9
    Guest

    Predefinito

    cos'è firebug comunque grazie per il consiglio creerò anche una versione diversa per il sito

  10. #10
    Guest

    Predefinito

    Firebug è un componente aggiuntivo per firefox, per un web developer che si rispetti è un must.

    Tramite la sua console puoi profilare codice javascript e addirittura monitorare le richieste asincrone che vengono svolte in background senza considerare le ampie possibilità di modifica del codice di markup on the fly e varie altre funzionalità che lo rendono uno strumento veramente indispensabile.

    https://addons.mozilla.org/it/firefox/addon/firebug/

  11. #11
    Guest

    Predefinito

    comunque se ti interessa adesso il sito è disponibile anche in un altro colore (non ho ancora fiinito tutti i dettagli ma più o -) :)

    EDIT:

    non so più dove mettere le mani ho provato di tutto e di + provo a mettervi anche il tutorial dove ho preso spunto per creare la chat
    http://www.mrwebmaster.it/ajax/artic...-php_1009.html

    scusa alemoppo mi sono distratto
    Ultima modifica di Pokeroad : 15-12-2011 alle ore 23.21.40 Motivo: Non fare post consecutivi: usa il tasto "Edita" per editare i messaggi.

  12. #12
    Guest

    Predefinito

    Ho trovato il problema!
    Rileggo la tua citazione:
    CREATE TABLE tb_chat (
    id_chat int (11) NOT NULL auto_increment,
    user_chat varchar (14) NOT NULL deflaut '',
    mex_chat varchar (200) NOT NULL deflaut '',
    PRIMARY KEY (id_chat)
    ENGINE=MyISAM DEFLAUT CHARESET=latin1;
    E ora rileggo quella del tutorial che hai letto tu:
    CREATE TABLE tb_chat (
    id_chat int(11) NOT NULL auto_increment,
    user_chat varchar(10) NOT NULL default '',
    mex_chat varchar(200) NOT NULL default '',
    PRIMARY KEY (id_chat)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    Hai scritto deflaut ( e pure 3 volte consecutive! ) invece di default e chareset invece di charset!
    Se ci sono altri errori non ho guardato ma stai sicuro che ho provato io i codici e quello tuo non funzionava e quello del tutorial si :-)
    Copiare e incollare no??? XD
    Ciao di nuovo!
    Ultima modifica di stickernetbuy : 18-12-2011 alle ore 00.00.29

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da stickernetbuy Visualizza messaggio
    Ho trovato il problema!
    Rileggo la tua citazione:

    E ora rileggo quella del tutorial che hai letto tu:

    Hai scritto deflaut ( e pure 3 volte consecutive! ) invece di default e chareset invece di charset!
    Se ci sono altri errori non ho guardato ma stai sicuro che ho provato io i codici e quello tuo non funzionava e quello del tutorial si :-)
    Copiare e incollare no??? XD
    Ciao di nuovo!
    mi spieghi il rigo dov'è l'errore l'unica differenza è che mentre nel mio codice c'è il valore username non maggiore a 14 (modificato per nomi lunghi come alessandro123 ecc...) mentre in quella normale il valore è 10... mentre per errori di scrittura è un operazione guidata non scrivi tu è un file sql -.-





    Sono così disperato poichè nessuno riesce a capire che vi scriverò ogni codice (il database funziona correttamente in my_pokeroad tb_chat):

    ajax.php

    Codice PHP:
    <?php
    @include 'config.php';
    $sql = "SELECT user_chat, mex_chat FROM
    $tb ORDER BY id_chat DESC LIMIT 0,10";
    $sql_res = @mysql_query($sql)or die (mysql_error());
    if(@
    mysql_num_rows($sql_res)>0)
    {
    while (
    $fetch = @mysql_fetch_array($sql_res))
    {
    $utente = stripslashes($fetch['user_chat']);
    $mex_utente = stripslashes($fetch['mex_chat']);
    echo
    '<b>'. $utente .'</b>: '. $mex_utente.'<br />';
    }
    }else{
    echo
    'Non sono stati ancora inseriti dei messaggi.';
    }
    @
    mysql_close();
    ?>
    chat.js

    Codice PHP:
    function Update()
    {
    return
    Request();
    }
    window.setInterval("Update()", 3000)
    var
    XMLHTTP;
    function
    Request()
    {
    XMLHTTP = GetBrowser(ChangeStatus);
    XMLHTTP.open("GET", "ajax.php", true);
    XMLHTTP.send(null);
    }
    function
    ChangeStatus()
    {
    if (
    XMLHTTP.readyState == 4)
    {
    var
    R = document.getElementById("CHAT");
    R.innerHTML = XMLHTTP.responseText;
    }
    }
    function
    GetBrowser(FindBrowser)
    {
    if (
    navigator.userAgent.indexOf("MSIE") != (-1))
    {
    var Class =
    "Msxml2.XMLHTTP";
    if (
    navigator.appVersion.indexOf("MSIE 5.5") != (-1));
    {
    Class =
    "Microsoft.XMLHTTP";
    }
    try
    {
    ObjXMLHTTP = new ActiveXObject(Class);
    ObjXMLHTTP.onreadystatechange = FindBrowser;
    return
    ObjXMLHTTP;
    }
    catch(
    e)
    {
    alert("attenzione: l'ActiveX non sarà eseguito!");
    }
    }
    else if (
    navigator.userAgent.indexOf("Mozilla") != (-1))
    {
    ObjXMLHTTP = new XMLHttpRequest();
    ObjXMLHTTP.onload = FindBrowser;
    ObjXMLHTTP.onerror = FindBrowser;
    return
    ObjXMLHTTP;
    }
    else
    {
    alert("L'esempio non funziona con altri browser!");
    }
    }
    chat.php

    Codice PHP:
    <?php
    @session_start();
    if(!isset(
    $_SESSION['user'])){
    @
    header('Location:login.php');
    }else{
    $user= stripslashes($_SESSION['user']);
    ?>
    <html>
    <head>
    <title>Chat pokèroad</title>
    <style type="text/css">
    #CHAT
    {
    background: orange;
    width: 800px;
    height: 350px;
    overflow: Auto;
    }
    #MSG
    {
    position: Absolute;
    visibility: Hidden;
    }
    </style>
    <script type="text/javascript" src="chat.js"></script>
    </head>
    <body bgcolor=gold>
    <p>Ciao <b><?php echo $user; ?></b></p>
    <div id="CHAT"></div>

    <input type="text" name="messaggio" size="50" maxlength="200">
    <input type="submit" value="Invia!">
    </form>
    <iframe src="messaggio.php" name="MSG" id="MSG"></iframe>
    </body>
    </html>
    <?
    }
    ?>
    config.php

    Codice PHP:
    <?php
    $host
    = "localhost";
    $user = "user";
    $pass = "password";
    $db = "my_pokeroad";
    $tb = "tb_chat";
    $connessione = @mysql_connect($host, $user, $pass) or die (mysql_error());
    @
    mysql_select_pokeroad($pokeroad) or die (mysql_error());
    ?>
    login.php

    Codice PHP:
    <?php
    @session_start();
    if(isset(
    $_POST['nickname'])&&($_POST['nickname']!=""))
    {
    $_SESSION['user'] = $_POST['nickname'];
    @
    header('Location:chat.php');
    }else{
    ?>
    <html>
    <head>
    </head>
    <body bgcolor=gold>
    <p>
    <center>
    <form method="post" action="login.php">
    Scegli il tuo nickname<br><br>
    <input type="text" name="nickname" maxlength="10">
    <input type="submit" value="Chatta">
    </form>
    </center>
    </p>
    </body>
    </html>
    <?
    }
    ?>
    messaggio.php

    Codice PHP:
    <?php
    @session_start();
    if(!isset(
    $_SESSION['user'])){
    @
    header('Location:login.php');
    }else{
    if(isset(
    $_POST['messaggio'])){
    include
    'config.php';
    $user = $_SESSION['user'];
    $mex_chat = addslashes($_POST['messaggio']);
    $query = "INSERT INTO $tb_chat (user_chat, mex_chat)
    VALUES ('
    $user','$mex_chat')";
    @
    mysql_query($query)or die (mysql_error());
    @
    mysql_close();
    @
    header('Location:chat.php');
    }
    }
    ?>
    Ultima modifica di Pokeroad : 20-12-2011 alle ore 00.21.19

  14. #14
    Guest

    Predefinito

    Sono riuscito a farla funzionare si può chiudere ù.ù

Regole di scrittura

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