Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 45

Discussione: Modificare chat php

  1. #1
    Guest

    Question Modificare chat php

    Ciao mi servirebbe una mano a modificare alcune cose di una chat...
    chi mi puo dare una mano...

  2. #2
    Guest

    Predefinito

    Che tipo di chat è?
    Ha un nome specifico???
    Fornisci maggiori informazioni e vedremo cosa si potrà fare

  3. #3
    Guest

    Question

    Vi elenco cosa devo fare...
    ringrazio chi mi aiuterà

    1)la formattazione del testo come qui su altervista quando uno mette un messaggio
    tipo la impossibilita di mettere immagini o di modificare il colore del testo
    2)se uno scrive un link tipo www.altervista.org la possibilità che si apra la pagina
    3)al momento del login quando uno mette un link volevo fare in modo
    che 2 persone con lo stesso nome non potevano scrivere (ma non voglio usare il db)...
    4)a destra della chat di mettere tutti gli utenti connessi in chat
    5)quando un utente fa il sulla pagina che succeda un avvertimento


    tipo la chat sul genere di msn


    posto i codici...

    index.php
    Codice PHP:
    <?php
    session_start
    ();
    function
    createForm(){
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table align="center">
    <tr><td colspan="2">Please eneter a nickname to login!</td></tr>
    <tr><td>Your name: </td>
    <td><input class="text" type="text" name="name" /></td></tr>
    <tr><td colspan="2" align="center">
    <input class="text" type="submit" name="submitBtn" value="Login" />
    </td></tr>
    </table>
    </form>

    <?php
    }
    if (isset(
    $_GET['u'])){
    unset(
    $_SESSION['nickname']);
    }
    // Process login info
    if (isset($_POST['submitBtn'])){
    $name = isset($_POST['name']) ? $_POST['name'] : "Unnamed";
    $_SESSION['nickname'] = $name;
    }
    $nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Micro Chat</title>
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript">
    <!--
    var httpObject = null;
    var link = "";
    var timerID = 0;
    var nickName = "<?php echo $nickname; ?>";

    // Get the HTTP Object
    function getHTTPObject(){
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
    else if (window.XMLHttpRequest) return new XMLHttpRequest();
    else {
    alert("Your browser does not support AJAX.");
    return null;
    }
    }

    // Change the value of the outputText field
    function setOutput(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML += response;
    objDiv.scrollTop = objDiv.scrollHeight;
    var inpObj = document.getElementById("msg");
    inpObj.value = "";
    inpObj.focus();
    }
    }

    // Change the value of the outputText field
    function setAll(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML = response;
    objDiv.scrollTop = objDiv.scrollHeight;
    }
    }

    // Implement business logic
    function doWork(){
    httpObject = getHTTPObject();
    if (httpObject != null) {
    link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setOutput;
    httpObject.send(null);
    }
    }

    // Implement business logic
    function doReload(){
    httpObject = getHTTPObject();
    var randomnumber=Math.floor(Math.random()*10000);
    if (httpObject != null) {
    link = "message.php?all=1&rnd="+randomnumber;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setAll;
    httpObject.send(null);
    }
    }

    function UpdateTimer() {
    doReload();
    timerID = setTimeout("UpdateTimer()", 5000);
    }


    function keypressed(e){
    if(e.keyCode=='13'){
    doWork();
    }
    }
    //-->
    </script>
    </head>
    <body onload="UpdateTimer();">
    <div id="main">
    <div id="caption">Micro Chat</div>
    <div id="icon">&nbsp;</div>
    <?php

    if (!isset($_SESSION['nickname']) ){
    createForm();
    } else {
    $name = isset($_POST['name']) ? $_POST['name'] : "Unnamed";
    $_SESSION['nickname'] = $name;
    ?>

    <div id="result">
    <?php
    $data
    = file("msg.html");
    foreach (
    $data as $line) {
    echo
    $line;
    }
    ?>
    </div>
    <div id="sender" onkeyup="keypressed(event);">
    Your message: <input type="text" name="msg" size="30" id="msg" />
    <button onclick="doWork();">Send</button>
    </div>
    <?php
    }

    ?>
    </div>
    </body>
    message.php
    Codice PHP:
    <?php
    if (isset($_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");
    }
    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);

    echo
    $line;

    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    }
    echo
    $content;

    }
    ?>
    msg.html
    dove vengono salvati i dati

  4. #4
    Guest

    Predefinito

    Per formattare il testo, come qui su altervista hai bisogno di javascript, e delle espressioni regolari in PHP. Per i link bastano solo delle espressioni regolari.
    Posto alcune parti del codice che ho utilizzato per creare una mia chat...

    Codice PHP:
    <script type="text/javascript">
    <!--
    function
    tag(tipo) {
    var
    obj = document.getElementById("msg");
    var
    start = obj.selectionStart;
    var
    end = obj.selectionEnd;
    var
    str = obj.value.substr(start, end);
    if(
    str != "") {
    switch(
    tipo) {
    case
    "b":
    obj.value = obj.value.replace(str, "[b]" + str + "[/b]");
    break;
    case
    "s":
    obj.value = obj.value.replace(str, "[s]" + str + "[/s]");
    break;

    /* continua tu per altri tag */

    }
    }
    }
    //-->
    </script>
    Per usare questa funziona basta creare diversi bottoni, attrbuendogli l'evento onclick="tag('b')", poi ovviamente devi crearne altri con diverso tipo di tag

  5. #5
    Guest

    Predefinito

    ma il testo va sottolineato se no non funziona...

  6. #6
    Guest

    Predefinito

    Quello tocca a php farlo...
    Codice PHP:
    $cerca = array(
    "/\[b\](.*?)\[\/b\]/",
    "/\[s\](.*?)\[\/s\]/",
    "/\[u\](.*?)\[\/u\]/",
    "/\[url=\"(.*?)\"\](.*?)\[\/url\]/",
    "/\[img\](.*?)\[\/img\]/",
    "/(http:\/\/|www|[a-zA-Z0-9-]+\.|[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/"
    );
    $sostituisci = array(
    "<b>\\1</b>",
    "<s>\\1</s>",
    "<u>\\1</u>",
    "<a href=\"\\1\" target=\"_blank\">\\2</a>",
    "<img src=\"\\1\" alt=\"\" />",
    "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>"
    );

    echo
    preg_replace($cerca, $sostituisci, $_GET["msg"]);
    Ultima modifica di nokiagames : 12-06-2009 alle ore 13.14.18

  7. #7
    Guest

    Predefinito

    Lo provato ma non sta funzionando...

    lo messo dentro il file message.php
    ^^

  8. #8
    Guest

    Predefinito

    Allora, prova così (message.php):
    Codice PHP:
    <?php
    if (isset($_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");
    }
    $cerca = array(
    "/\[b\](.*?)\[\/b\]/",
    "/\[s\](.*?)\[\/s\]/",
    "/\[u\](.*?)\[\/u\]/",
    "/\[url=\"(.*?)\"\](.*?)\[\/url\]/",
    "/\[img\](.*?)\[\/img\]/",
    "/(http:\/\/|www|[a-zA-Z0-9-]+\.|[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/"
    );
    $sostituisci = array(
    "<b>\\1</b>",
    "<s>\\1</s>",
    "<u>\\1</u>",
    "<a href=\"\\1\" target=\"_blank\">\\2</a>",
    "<img src=\"\\1\" alt=\"\" />",
    "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>"
    );
    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $msg = preg_replace($cerca, $sostituisci, $msg);
    $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);

    echo
    $line;

    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    }
    echo
    $content;

    }
    ?>

  9. #9
    Guest

    Predefinito

    non funziona XD perchè diventa
    esempio
    nomesito.altervista.org/www.google.it

  10. #10
    Guest

    Predefinito

    Perchè manca http://
    Quindi bisogna aggiungerlo manualmente alla stringa.
    Il problema sta nel fatto che se viene inserito un link con http://, avrai un link simile a questo
    http://http://www.google.it
    Quindi bisogna modificare qualche altra cosa!
    Codice PHP:
    <?php
    if (isset($_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");
    }
    $cerca = array(
    "/\[b\](.*?)\[\/b\]/",
    "/\[s\](.*?)\[\/s\]/",
    "/\[u\](.*?)\[\/u\]/",
    "/\[url=\"(.*?)\"\](.*?)\[\/url\]/",
    "/\[img\](.*?)\[\/img\]/",
    "/(http:\/\/|www|[a-zA-Z0-9-]+\.|[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/",
    "/http:\/\/http:\/\//"
    );
    $sostituisci = array(
    "<b>\\1</b>",
    "<s>\\1</s>",
    "<u>\\1</u>",
    "<a href=\"\\1\" target=\"_blank\">\\2</a>",
    "<img src=\"\\1\" alt=\"\" />",
    "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",
    "http://"
    );
    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $msg = preg_replace($cerca, $sostituisci, $msg);
    $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);

    echo
    $line;

    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    }
    echo
    $content;

    }
    ?>
    Prova...
    Ultima modifica di nokiagames : 12-06-2009 alle ore 17.28.17

  11. #11
    Guest

    Predefinito

    non funziona e non so il perchè...
    niente lascia stare posso chiederti alcune cose che non so come fare...

    la prima e nel login
    voglio che quando l'utente mette il nome anche se scrive minuscolo o maiuscolo
    il nome venga scritto solo la prima lettera maiuscola e poi tutto piccolo

    e la seconda cosa come posso fare in modo che lui possa cambiare il tipo di font o colore del testo

  12. #12
    Guest

    Predefinito

    Il codice di sopra l'ho modificato, avevo dimenticato uno slash finale. Prova ora e vedrai che funziona!!!
    Allora per il login, non esiste niente di più semplice
    Codice PHP:
    $_POST['name'] = ucfirst(strtolower($_POST['name']));
    /* codice per il login.... */
    Per il colore o tipo di font, intendi di creare dei tag per il font e per il colore?

    Codice PHP:
    <?php
    if (isset($_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");
    }
    $cerca = array(
    "/\[b\](.*?)\[\/b\]/",
    "/\[s\](.*?)\[\/s\]/",
    "/\[u\](.*?)\[\/u\]/",
    "/\[url=\"(.*?)\"\](.*?)\[\/url\]/",
    "/\[img\](.*?)\[\/img\]/",
    "/(http:\/\/|www|[a-zA-Z0-9-]+\.|[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/",
    "/http:\/\/http:\/\//",
    "/\[font=(.*?)\](.*?)\[\/font\]/",
    "/\[color\=(.*?)\](.*?)\[\/color\]/"
    );
    $sostituisci = array(
    "<b>\\1</b>",
    "<s>\\1</s>",
    "<u>\\1</u>",
    "<a href=\"\\1\" target=\"_blank\">\\2</a>",
    "<img src=\"\\1\" alt=\"\" />",
    "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",
    "http://",
    "<span style=\"font-size: \\1pt;\">\\2</span>",
    "<span style=\"color: \\1;\">\\2</span>"
    );
    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $msg = preg_replace($cerca, $sostituisci, $msg);
    $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);

    echo
    $line;

    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    }
    echo
    $content;

    }
    ?>
    EDIT: Per il form fai così:
    Codice HTML:
    <script type="text/javascript">
    <!--
    function size(n) {
    document.getElementById('msg').value += '[font='+n+'][/font]';
    }
    function colore(hex) {
    document.getElementById('msg').value += '[color='+hex+'][/color]';
    }
    //-->
    </script>
    <select>
    <option>Dimensione Carattere</option>
    <option onclick="size(6)">6</option>
    <option onclick="size(8)">8</option><option onclick="size(10)">10</option>
    <option onclick="size(12)">12</option><option onclick="size(14)">14</option>
    <option onclick="size(16)">16</option><option onclick="size(18)">18</option>
    </select>
    <select>
    <option>Colore Carattere</option>
    <option onclick="colore('#000000')" style="background-color:#000000">Nero</option>
    <option onclick="colore('blue')" style="background-color:blue">Blu</option>
    <option onclick="colore('#FF0000')" style="background-color:#FF0000">Rosso</option>
    <option onclick="colore('green')" style="background-color:green">Verde</option>
    <option onclick="colore('yellow')" style="background-color:yellow">Giallo</option>
    </select>
    <!-- altro codice -->
    Ultima modifica di nokiagames : 12-06-2009 alle ore 17.58.08

  13. #13
    Guest

    Predefinito

    $nick = $_GET['nick'] = ucwords(strtolower($_GET['nick']));
    io ho fatto cosi non è meglio
    ti ringrazio^^

    per il cambio di colore cosa mi consigli come posso fare

  14. #14
    Guest

    Predefinito

    L'ho scritto sopra, ho aggiunto qualche espressione regolare in message.php e il codice javascript e i vari tag per cambiare il carattere e colore.

  15. #15
    Guest

    Predefinito

    il colore non funziona
    la grandezza si...
    come posso fare che quando si attiva la funziona tipo colore o grandezza il testo viene tutto selezionato


    per il login
    come posso fare per
    if
    se il campo e vuoto compare il messaggio di errore e si aggiorna la pagina
    se nel campo ce scritto Inserire Nickname compare il messaggio di errore e si aggiorna la pagina

    errore:<script type=\'text/javascript\'>alert(Nickname non valido!)</script>
    Ultima modifica di hotmailpower : 12-06-2009 alle ore 19.58.50

  16. #16
    Guest

    Predefinito

    Vorresti che la selezione venga "taggata"?

    Se si devi modificare il codice che ti ho dato all'inizio.
    Codice HTML:
    <script type="text/javascript">
    <!--
    function tag(tipo) {
    var obj = document.getElementById("msg");
    var start = obj.selectionStart;
    var end = obj.selectionEnd;
    var str = obj.value.substr(start, end);
    switch(tipo) {
    case "b":
    obj.value = obj.value.replace(str, "[b]" + str + "[/b]");
    break;
    case "s":
    obj.value = obj.value.replace(str, "[s]" + str + "[/s]");
    break;
    case "font":
    var n = prompt("Inserisci la grandezza del testo", "12");
    obj.value = obj.value.replace(str, "[font="+n+"][/font]";
    break;
    case "color":
    var color = prompt("Inserisci il colore del testo", "red");
    obj.value = obj.value.replace(str, "[color="+color+"][/color]";
    break;
    }
    }
    //-->
    </script>  
    E poi come ho detto sopra ti crei tanti bottoni tanti casi hai nello switch, ognuno con funzioni diverse ad esempio:
    Codice HTML:
    <input type="button" onclick="tagga('b')" value="Grassetto" />
    <input type="button" onclick="tagga('s')" value="Sbarrato" />
    <input type="button" onclick="tagga('font')" value="Grandezza Testo" />
    <input type="button" onclick="tagga('color')" value="Colore Testo" />

  17. #17
    Guest

    Predefinito

    non funziona...


    non fa niente ne seleziona^^

    per il login
    come posso fare per
    if
    se il campo e vuoto compare il messaggio di errore e si aggiorna la pagina
    se nel campo ce scritto Inserire Nickname compare il messaggio di errore e si aggiorna la pagina

    errore:<script type=\'text/javascript\'>alert(Nickname non valido!)</script>

  18. #18
    Guest

    Predefinito

    Dipende da che browser stai utilizzando. Ho anche sbagliato funzione, nei bottoni ho messo tagga, quando la funzione è tag

    Quindi dovrebbe essere così:
    Codice HTML:
    <input type="button" onclick="tag('b')" value="Grassetto" />
    <input type="button" onclick="tag('s')" value="Sbarrato" />
    <input type="button" onclick="tag('font')" value="Grandezza Testo" />
    <input type="button" onclick="tag('color')" value="Colore Testo" />
    Per il login bisogna modificare la funzione createForm().

    Codice HTML:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="login" onsubmit="return(controlla(this))">
    <table align="center">
    <tr><td colspan="2">Please eneter a nickname to login!</td></tr>
    <tr><td>Your name: </td>
    <td><input class="text" type="text" name="name" /></td></tr>
    <tr><td colspan="2" align="center">
    <input class="text" type="submit" name="submitBtn" value="Login" />
    </td></tr>
    </table>
    </form> 
    Codice:
    // codice javascript..
    
    function controlla(form) {
    if((form.name.value == "") ||(form.name.value == "Inserire Nickname")) {
    alert("Nickname non valido!");
    window.location.reload(true);
    return false;
    }
    return true;
    }

  19. #19
    Guest

    Predefinito

    sto diventanto scemo...
    XD

    ti posto i file modificati
    index.php
    dove l'utente chatta
    Codice PHP:
    <? include("login_chat.php"); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Chat</title>
    <script type="text/javascript">
    var httpObject = null;
    var link = "";
    var timerID = 0;
    var nickName = "<?php echo $nickname; ?>";
    // Get the HTTP Object
    function getHTTPObject(){
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
    else if (window.XMLHttpRequest) return new XMLHttpRequest();
    else {
    alert("Your browser does not support AJAX.");
    return null;
    } }
    // Change the value of the outputText field
    function setOutput(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML += response;
    objDiv.scrollTop = objDiv.scrollHeight;
    var inpObj = document.getElementById("msg");
    inpObj.value = "";
    inpObj.focus();
    } }
    // Change the value of the outputText field
    function setAll(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML = response;
    objDiv.scrollTop = objDiv.scrollHeight;} }
    // Implement business logic
    function doWork(){
    httpObject = getHTTPObject();
    if (httpObject != null) {
    link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setOutput;
    httpObject.send(null);} }
    // Implement business logic
    function doReload(){
    httpObject = getHTTPObject();
    var randomnumber=Math.floor(Math.random()*10000);
    if (httpObject != null) {
    link = "message.php?all=1&rnd="+randomnumber;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setAll;
    httpObject.send(null);
    } }
    function UpdateTimer() {
    doReload();
    timerID = setTimeout("UpdateTimer()", 5000);}
    function keypressed(e){
    if(e.keyCode=='13'){
    doWork();} }
    </script>
    </head>
    <body onLoad="UpdateTimer();">

    <?
    if (!isset($_SESSION['nickname']) ){
    createForm();
    } else {
    $name = isset($_POST['name']) ? $_POST['name'] : "Utente";
    $_SESSION['nickname'] = $name;
    ?>

    <div id="logout" align="right">
    <a href="?mode=exit" onclick="confirmClose('index.php');" title="Esci">
    <font color="#FF0000">Esci</font></a></div>


    <form name="inserisci" method="post" action="">
    <table align="center" width="684" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td colspan="6">
    <img src="immagini/chat_msn_01.png" width="684" height="60" alt=""></td>
    </tr>
    <tr>
    <td colspan="3" rowspan="2">
    <img src="immagini/chat_msn_02.png" width="619" height="47" alt=""></td>
    <td colspan="2">
    <img src="immagini/chat_msn_03.png" width="63" height="24" alt=""></td>
    <td rowspan="6">
    <img src="immagini/chat_msn_04.png" width="2" height="406" alt=""></td>
    </tr>
    <tr>
    <td colspan="2">
    <img src="immagini/chat_msn_05.png" width="63" height="23" alt=""></td>
    </tr>
    <tr>
    <td rowspan="4">
    <img src="immagini/chat_msn_06.png" width="178" height="359" alt=""></td>
    <td colspan="3">
    <div id="result">
    <?$data = file("msg.html"); foreach ($data as $line) { echo $line; } ?>
    </div>
    </td>
    <td rowspan="4">
    <img src="immagini/chat_msn_08.png" width="16" height="359" alt=""></td>
    </tr>
    <tr>
    <td colspan="3">
    <input
    class="messaggio" type="text" name="msg"
    size="50" id="msg" value="Inserire Messaggio"
    style="-moz-opacity:0.6;filter:alpha(opacity=60);"
    onmouseover="cancellaTesto(this)" onmouseout="resetTesto(this)"
    onmouseover="this.style.MozOpacity=2;this.filters.alpha.opacity=100"
    onmouseout="this.style.MozOpacity=0.6;this.filters.alpha.opacity=60">
    </td>
    </tr>
    <tr>
    <td rowspan="2">
    <img src="immagini/chat_msn_10.png" width="374" height="61" alt=""></td>
    <td>
    <input class="button1" type="button" name="submitBtn"
    value="" onClick="doWork();"
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100"
    onmouseout="this.style.MozOpacity=0.3;this.filters.alpha.opacity=30">
    </td>
    <td rowspan="2">
    <img src="immagini/chat_msn_12.png" width="47" height="61" alt=""></td>
    </tr>
    <tr>
    <td>
    <img src="immagini/chat_msn_13.png" width="67" height="33" alt=""></td>
    </tr>
    </table>
    </form>

    <div align="center">

    <img name="grassetto" border="0" src="img/bold.gif" alt="Grassetto"
    onclick="tagga('b')"
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100"
    onmouseout="this.style.MozOpacity=0.3;this.filters.alpha.opacity=30">

    <img name="sottolineato" border="0" src="img/s.gif" alt="Sottolineato"
    onClick="tag('u')"
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100"
    onmouseout="this.style.MozOpacity=0.3;this.filters.alpha.opacity=30">

    <img name="corsivo" border="0" src="img/c.gif" alt="Corsivo"
    onClick="tag('i')"
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100"
    onmouseout="this.style.MozOpacity=0.3;this.filters.alpha.opacity=30">


    <? } ?>
    </html>
    </body>
    login_chat.php

    utente prima fa il login
    Codice PHP:
    <? session_start(); function createForm(){ ?>

    <script type="text/javascript">
    #Controlla login chat
    function controlla(form) {
    if((form.name.value == "") ||(form.name.value == "Inserire Nickname")) {
    alert("Nickname non valido!");
    window.location.reload(true);
    return false;}
    return true;}
    </script>


    <form action="<?php echo $_server['php_self']; ?>" method="post" name="login" onsubmit="return(controlla(this))">
    <table width="300" border="0" cellpadding="0" cellspacing="0" align="center">
    <tr>
    <td colspan="5">
    <div class="img_login">
    <div class="testo_login">
    Inserisci il nickname per il login!
    </div>
    </div>
    </td>
    </tr>
    <tr>
    <td rowspan="4">
    <img src="immagini/Immagine_02.gif" width="30" height="278" alt=""></td>
    <td colspan="3">
    <div class="img_user">
    <input
    class="testo_user" type="text" name="name" value="Inserire Nickname"
    onfocus="cancellaTesto(this)" onblur="resetTesto(this)"
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100">
    </div>
    </td>
    <td rowspan="4">
    <img src="immagini/Immagine_04.gif" width="28" height="278" alt=""></td>
    </tr>
    <tr>
    <td colspan="3">
    <img src="immagini/Immagine_05.gif" width="242" height="184" alt=""></td>
    </tr>
    <tr>
    <td rowspan="2">
    <img src="immagini/Immagine_06.gif" width="85" height="70" alt=""></td>
    <td>
    <input class="button" type="submit" name="submitBtn" value=""
    style="-moz-opacity:0.3;filter:alpha(opacity=30);"
    onmouseover="this.style.MozOpacity=1;this.filters.alpha.opacity=100">
    </td>
    <td rowspan="2">
    <img src="immagini/Immagine_08.gif" width="85" height="70" alt=""></td>
    </tr>
    <tr>
    <td>
    <img src="immagini/Immagine_09.gif" width="72" height="47" alt=""></td>
    </tr>
    </table>
    </form>


    <? }
    if (isset(
    $_GET['u'])){
    unset(
    $_SESSION['nickname']); }
    // Process login info
    if (isset($_POST['submitBtn'])){
    $name = isset($_POST['name']) ? $_POST['name'] : "Utente";
    $_SESSION['nickname'] = $name; }
    $nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";
    ?>
    message.php
    Codice PHP:
    <?php
    $ora
    = date("H:i:s");

    if (isset(
    $_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");}


    $cerca = array(
    "/\[b\](.*?)\[\/b\]/",
    "/\[s\](.*?)\[\/s\]/",
    "/\[u\](.*?)\[\/u\]/",
    "/\[url=\"(.*?)\"\](.*?)\[\/url\]/",
    "/\[img\](.*?)\[\/img\]/",
    "/(http:\/\/|www|[a-zA-Z0-9-]+\.|[a-zA-Z0-9\.-]+@)(([a-zA-Z0-9-][a-zA-Z0-9-]+\.)+[a-zA-Z0-9-\.\/\_\?\%\#\&\=\;\~\!\(\)]+)/",
    "/http:\/\/http:\/\//",
    "/\[font=(.*?)\](.*?)\[\/font\]/",
    "/\[color\=(.*?)\](.*?)\[\/color\]/"
    );
    $sostituisci = array(
    "<b>\\1</b>",
    "<s>\\1</s>",
    "<u>\\1</u>",
    "<a href=\"\\1\" target=\"_blank\">\\2</a>",
    "<img src=\"\\1\" alt=\"\" />",
    "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",
    "http://",
    "<span style=\"font-size: \\1pt;\">\\2</span>",
    "<span style=\"color: \\1;\">\\2</span>"
    );



    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $nick = $_GET['nick'] = ucwords(strtolower($_GET['nick']));
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $msg = preg_replace($cerca, $sostituisci, $msg);
    $line = "
    <p>
    <span class=\"name\">
    $nick alle ore $ora scrive: </span>
    <br>
    <span class=\"txt\">
    $msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);
    echo
    $line;
    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    } echo
    $content; }
    ?>]

    ora ti spiego cosa devo fare nel file login_chat.php
    l'utente deve fare il login deve mettere un nome non puo essere Inserire nome
    e deve controllare che non ci sia un altro utente con lo stesso nome
    in caso lo avverte con un alert

    deve che mette il nome e controlla che non ce ne sia uno uguale
    stampa il nome in una tabella o fai tu con scritto
    giovanni è online

    poi nell file index.php

    la possibilità al utente di personallizare la scritta con codici e inserimento di emoticons cosa mi consigli

    e in fine quando un utente chiude la pagina o esce dalla finestra ci deve esse un messagio che gli dicce
    sei sicuro che voi uscire se dice si il nome nella chat
    giovanni è online scompare....

    lo so che chiedo molto ma mi sai dare una mano ti ringrazioXD

  20. #20
    Guest

    Predefinito

    Senza utilizzare un database mysql non sono in grado di aiutarti mi dispiace, diventa troppo complicata la cosa!!!

    e in fine quando un utente chiude la pagina o esce dalla finestra ci deve esse un messagio che gli dicce
    sei sicuro che voi uscire se dice si il nome nella chat
    In index.php modifica questo tag:
    Codice HTML:
    <body onLoad="UpdateTimer();">
    così:
    Codice HTML:
    <body onLoad="UpdateTimer();" onunload="return(confirm('sei sicuro che voi uscire'))">

  21. #21
    Guest

    Predefinito

    ma usando il db pensi che si possa fare che ce la faresti^^...

  22. #22
    Guest

    Predefinito

    Con il database, riuscirei subito a impostare offline un utente. Oppure cancellare i messaggi più vecchi di un giorno.

    Per controllare su un utente ha già utilizzato un nickname ci sto pensando.

  23. #23
    Guest

    Predefinito

    se ce la fai 6 un grande...XD

    in codice che mi hai dato tu
    <body onLoad="UpdateTimer();" onunload="return(confirm('sei sicuro che voi uscire'))">

    se uno mette annula esce lo stesso..

  24. #24
    Guest

    Predefinito

    Per controllare se un nickname è già utilizzato l'idea mi è venuta!!!

    Allora, prima serve un file di testo dove andremo a salvare i nicknames.

    E procediamo così:
    Codice PHP:
    <?php
    $nick_usati
    = explode(" | ", file_get_contents("nicknames.txt"));

    if(
    in_array($_GET["nick"], $nick_usati)) {
    echo
    "Questo nickname ({$_GET["nick"]}) è già utilizzato da qualcuno...";
    } else {
    file_put_contents("nicknames.txt", $_GET["nick"] . " | ", FILE_APPEND | LOCK_EX);
    echo
    "Nickname libero!!";
    }
    ?>
    Attiva PHP5 per poter utilizzare file_get/put_contents()

    Poi bisogna trovare un metodo per cancellare questi nicknames dal file.

  25. #25
    Guest

    Predefinito

    non pensavo una cosa del genere...

    Codice PHP:
    $stringa="non so cosa mettere";
    $scrivi_file=fopen("nicknames.txt","w");
    fwrite($scrivi_file,$stringa);
    fclose($scrivi_file);
    }}

  26. #26
    Guest

    Predefinito

    Perchè cambi metodo?
    Al limite sostituisco le funzioni per php4

    Codice PHP:
    <?php
    $file
    = fopen("nicknames.txt", "r");
    $f = fread($file, filesize("nicknames.txt"));
    fclose($file);

    $nick_usati = explode(" | ", $f);

    if(
    in_array($_GET["nick"], $nick_usati)) {
    echo
    "Questo nickname ({$_GET["nick"]}) è già utilizzato da qualcuno...";
    } else {

    $fp = fopen("nicknames.txt", "a+");
    fwrite($fp, $_GET["nick"] . " | ");
    fclose($fp);

    echo
    "Nickname libero!!";
    }
    ?>
    Ultima modifica di nokiagames : 13-06-2009 alle ore 19.11.50

  27. #27
    Guest

    Predefinito

    no dicevo di usarlo per cancellare i nomi...
    se no non so come fare^^

  28. #28
    Guest

    Predefinito

    A scusa!!!!

    Codice PHP:
    $nicks = file_get_contents("nicknames.txt");
    $scrivi = str_replace($_GET["nick"] . " | ", "", $nicks);
    file_put_contents("nicknames.txt", $scrivi, LOCK_EX);
    Ultima modifica di nokiagames : 13-06-2009 alle ore 19.34.01

  29. #29
    Guest

    Predefinito

    potresti postare tutto il codice che riguarda login_chat.php

  30. #30
    Guest

    Predefinito

    Ma così non va bene, pensavo che tu avessi la soluzione su come cancellare.
    Così cancelli i nickname senza alcun criterio.

    Se vuoi provare modifica la parte finale di login_chat.php

    Codice PHP:
    <? }
    if (isset(
    $_GET['u'])){
    unset(
    $_SESSION['nickname']); }
    // Process login info
    if (isset($_POST['submitBtn'])){
    $name = isset($_POST['name']) ? $_POST['name'] : "Utente";
    $_SESSION['nickname'] = $name;
    }
    $nick_usati = explode(" | ", file_get_contents("nicknames.txt"));

    if(
    in_array($name, $nick_usati)) {
    die(
    "<script type=\"text/javascript\">alert(\"Questo nickname ({$name}) è già utilizzato da qualcuno..\")</script>");
    } else {
    file_put_contents("nicknames.txt", $name . " | ", FILE_APPEND | LOCK_EX);
    $nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";
    }
    ?>

    Questo senza cancellare, aspetto che mi venga in mente la soluzione !

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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