Chatbox naam

Status
Niet open voor verdere reacties.

pro pizza

Gebruiker
Lid geworden
24 dec 2007
Berichten
454
Hallo,

Ik heb een probleem met dit script:

Code:
<?php
/************************************************************
PHPchat, via XMLHttpRequest
Auteur: Jelmer van der Linde
email: Jelmervanderlinde@xs4all.nl
Licentie: Als het goed is bijgeleverd in licentie.txt.
In ieder geval, GNU GPL, todat ik anders beslis.
************************************************************/
if(!file_exists("config.php")){
    header("Location: installer.php");
    exit();
}
session_start(); ?>
<html>
<head>
<style>
body{
    padding: 0;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
fieldset.message, fieldset.warning, fieldset.notice, fieldset.error, fieldset.personal{
    display: block;
    margin: 3px;
    padding: 5px;
    -moz-border-radius: 10px;
}
fieldset.warning{
    border: 1px solid #800000;
    background: #CC0000;
    color: #ffffff;
}
fieldset.notice{
    border: 1px solid #c8c8c8;
    background: #e6e6e6;
}
fieldset.personal{
    border: 1px solid #bfc790;
    background: #eff3d4;
}
fieldset.error{
    border: 1px solid #c8c8c8;
    background: #e6e6e6;
}
legend.messageheading{
    color:#999999;
    display: block;
}
div.messagebody{
    color: #000000;
    display: block;
}
span.name{
    color:#CC0000;
}
#chatwindow{
    height: 80%;
    width:100%;
    overflow: scroll;
}
form{
    margin: 0; padding: 0;
}
tt{
    color: #990000;
}
tt .optional{
    color: #009900;
}
table{
    width: 100%;
}
table, tr, td, th{
    font-size: 12px;
}
tr{
    border-bottom: 1px solid grey;
}
</style>
<script type="text/javascript">
var timeout = 5;//hoeveel seconden tussen de updates

//einde intellingen.
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
}
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
var dead = false;
<?php
    if(isset($_SESSION['name'])){
        echo "var nickname = \"".$_SESSION['name']."\";\n";
    }
    else{
        echo "var nickname = \"annoniem\";\n";
    }
    echo "var basepath = \"http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/\";\n";
?>
var timer = 0;
var busy = false;
function setname()
{
    busy = true;
    document.getElementById("submitbutton").disabled = true;
    var d = new Date();
    var newname = prompt("Wat is je nickname", nickname);
    if(newname != null){
        xmlhttp.open("GET",basepath+"server.php?message=/NAME "+newname+"&random="+d.getFullYear()+(d.getMonth()+1)+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds(),true);
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4) {
                if(xmlhttp.responseText.indexOf("OK") != -1){
                    document.getElementById('chatwindow').innerHTML += "<fieldset class=\"notice\">"+nickname+" has changed his name to "+newname+"</fieldset>\n";
                    document.getElementById('chatwindow').scrollTop = 10000000;
                    nickname = newname;
                    update("undefined");
                }
                //else{
                //    alert("Failed to set nickname:\n"+xmlhttp.responseText);
                //    dead = true;
                //}
            }
        }
        busy = false;
        xmlhttp.send(null);
    }
    else
    {
        document.getElementById("submitbutton").disabled = false;
        busy = false;
        return true;
    }
    document.getElementById("submitbutton").disabled = false;
    busy = false;
}

function setaway()
{
    document.getElementById("submitbutton").disabled = true;
    var d = new Date();
    xmlhttp.open("GET",basepath+"server.php?message=/AWAY&random="+d.getFullYear()+(d.getMonth()+1)+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds(),true);
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {   
            if(xmlhttp.responseText.indexOf("OK") != -1){
                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"notice\">Lastid is has successfully reset to zero</fieldset>\n";
                document.getElementById('chatwindow').scrollTop = 10000000;
                dead = true;
            }
            else{
                alert("Failed to reset your id:\n"+xmlhttp.responseText);
                dead = true;
            }
        }
    }
    xmlhttp.send(null);
    document.getElementById("submitbutton").disabled = false;
}


function update(bericht)
{
    if(bericht.toUpperCase() == "/DISCONNECT"){
        setaway;
        dead = true;
    }
    if(bericht != "" && busy != true && dead != true){
        busy = true;
        document.getElementById("submitbutton").disabled = true;
        timer = timeout;
        var d = new Date()
        if(bericht == "undefined"){
            var url = "server.php?random="+d.getFullYear()+(d.getMonth()+1)+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds();
        }
        else{
            var url = "server.php?message="+bericht+"&random="+d.getFullYear()+(d.getMonth()+1)+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds();
        }
        xmlhttp.open("GET",basepath+url,true);//method, target, async (set always true!)
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4) {
                if(xmlhttp.responseText != "" && xmlhttp.responseText != " "){
                    if(xmlhttp.responseText.indexOf("SETNAME") != -1)
                    {
                        setname();
                    }
                    else{
                        var rows = xmlhttp.responseText.split("\n");
                        for(i = 0; i <= rows.length-1; i++)
                        {
                            var data = rows[i].split("||");
                            if(data[0] == "OK"){    var type = data[1];}
                            else{                    var type = data[0];}
                            switch(type.toUpperCase()){
                            case "DIE":
                                if(data[0] == "OK"){data[0]=data[1];data[1]=data[2];}
                                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"error\"><div class=\"messagebody\">"+data[1]+"</div></fieldset>\n";
                                dead=true;
                                break;
                            case "MESSAGE":
                                if(data[0] == "OK"){data[0]=data[1];data[1]=data[2];data[2]=data[3],data[3]=data[4],data[4]=data[5];}
                                   document.getElementById('chatwindow').innerHTML += "<fieldset class=\"message\"><legend class=\"messageheading\"><span class=\"id\">"+data[1]+"</span><span class=\"name\">"+data[2]+"</span> said on "+data[3]+":</legend><div class=\"messagebody\">"+data[4]+"</div></fieldset>\n";
                                break;
                            case "NOTICE":
                                if(data[0] == "OK"){data[0]=data[1];data[1]=data[2];data[2]=data[3],data[3]=data[4],data[4]=data[5];}
                                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"notice\"><div class=\"messagebody\">"+data[4]+"</div></fieldset>\n";
                                break;
                            case "PERSONAL":
                                if(data[0] == "OK"){data[0]=data[1];data[1]=data[2];}
                                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"personal\"><div class=\"messagebody\">"+data[1]+"</div></fieldset>\n";
                                break;
                            case "WARNING":
                                if(data[0] == "OK"){data[0]=data[1];data[1]=data[2];}
                                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"warning\"><div class=\"messagebody\">"+data[1]+"</div></fieldset>\n";
                                break;
                            default:
                                document.getElementById('chatwindow').innerHTML += "<fieldset class=\"error\">"+xmlhttp.responseText+"</fieldset>\n";
                                break;
                            }
                            document.getElementById('chatwindow').scrollTop = 10000000;
                        }
                    }
                }
            }
        }
        xmlhttp.send(null);
        busy = false;
        document.getElementById("submitbutton").disabled = false;
    }
    else{ if(dead){
        if(bericht.toUpperCase() == "/CONNECT"){
            dead = false;
            counter();
            document.getElementById('chatwindow').innerHTML = "<fieldset class=\"Notice\">Client has been reset.</fieldset>\n";
        }
    }}
}

function counter()
{
    if(!dead){
        if(timer <= 0)
        {
            update("undefined");
            timing = setTimeout("counter()", 1000);
        }
        else{
            timer = timer-2;
            timing = setTimeout("counter()", 1000);
        }
    }
    else{
        clearTimeout(timing)
        document.getElementById('chatwindow').innerHTML += "<fieldset class=\"error\">Client terminated. Please reload this page to restart the chat.</fieldset>\n";
    }
}
</script>
</head>
<body onunload="setaway()">
<div id="chatwindow"></div>
<form name="formulier" onSubmit="javascript: update(document.getElementById('chattext').value);document.getElementById('chattext').value = '';return false;">
    <input type="text" id="chattext" name="chattext" maxlength="256" style="width: 450px; "/>
    <input type="submit" id="submitbutton" value="Say!" style="width:150px; "/>
    <input type="button" onClick="setname()" value="andere naam"/>
</form>
<script>
    counter();
</script>
<br/>
</body>
</html>
Ik wil dat de naam wordt weergegeven als de inlognaam dit moet door {$data->login}
Maar hoe moet ik dit doen? de mensen mogen ook niet hun naam kunnen aanpassen..
Kan iemand mij helpen?

Volgens mij moet het in dit stukje staan:
Code:
<?php
    if(isset($_SESSION['name'])){
        echo "var nickname = \"".$_SESSION['name']."\";\n";
    }
    else{
        echo "var nickname = \"annoniem\";\n";
    }
    echo "var basepath = \"http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/\";\n";
?>
var timer = 0;
var busy = false;
function setname()
{
    busy = true;
    document.getElementById("submitbutton").disabled = true;
    var d = new Date();
    var newname = prompt("Wat is je nickname", nickname);
    if(newname != null){
        xmlhttp.open("GET",basepath+"server.php?message=/NAME "+newname+"&random="+d.getFullYear()+(d.getMonth()+1)+d.getDate()+d.getHours()+d.getMinutes()+d.getSeconds(),true);
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4) {
                if(xmlhttp.responseText.indexOf("OK") != -1){
                    document.getElementById('chatwindow').innerHTML += "<fieldset class=\"notice\">"+nickname+" has changed his name to "+newname+"</fieldset>\n";
                    document.getElementById('chatwindow').scrollTop = 10000000;
                    nickname = newname;
                    update("undefined");

Mvg, Ruben;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan