Avatar billede olebole Juniormester
22. februar 2003 - 07:57 Der er 87 kommentarer og
1 løsning

'Blinkfri' OleBole-Chat ... download et skelet her

<ole>

Hej drenge og piger. Lad mig starte med at undskylde, jeg hermed spammer Ekspertens database på det groveste  :)

Jeg har lagt mærke til, der hver uge er mindst ét spm. vedr. en chat, der ikke 'blinker' ved opdatering. Jeg er blevet træt af at gentage mig selv - og ofte bliver forklaringerne ikke forstået.
Jeg besluttede mig derfor for at skrive en, der fungerer, som ønsket og lægge den her, så der altid kan linkes til den ... og her er den så  :)

Den består af filerne:
  chat.sql  (opretter tabellerne i databasen)
  config.php  (Konfigurerer app'en og indeholder lidt global funktionalitet)
  login.php  (Siger sig selv)
  index.php  (Selve chat-vinduet med to skjulte iframes)
  msg.php  (Ligger i den ene iframe og ndeholder PHP-funktioner til DB-indsættelse)
  chat.php  (Ligger i den anden skjulte iframe, trækker fra DB'en og opdaterer chat-vinduet)
  logout.php  (Popper op og logger brugeren ud, når chat-vinduet lukkes)

Udover at være 'blinkfri', downloader den kun de seneste beskeder, som den enkelte bruger endnu ikke har set. Det betyder et minimum af belastning på serveren.

Chat'en er ikke perfekt - den er banket sammen over en søvnig nat - men den vil sikkert udvikle sig med tiden, i takt med at flere og flere bruger den og bliver eksperter på koden.
Har I spm. til den, vil det nok være smart at oprette et spm. (dette bliver rigelig langt i sig selv) og kalde det noget med 'OleBole-Chat', da den så bliver lettere at søge på - og dermed at finde alle opdateringer, uddybninger og forklaringer.

Det eneste, jeg vil bede Jer om, er at overholde den copyright-notice, jeg har sat i toppen. Det formoder jeg ikke I finder for meget, når nu jeg har skrevet den til jeres frie brug  :)

--------  chat.sql  --------
# MySQL-Dump
# Database: chat
# --------------------------------------------------------

# Table structure for table 'messages'
#
CREATE TABLE messages (
  user char(15) NOT NULL default '0',
  msg char(250) NOT NULL default '0',
  stamp int(14) NOT NULL default '0',
  KEY stamp (stamp)
) TYPE=MyISAM;

# Table structure for table 'users'
#
CREATE TABLE users (
  user char(15) NOT NULL default '0',
  UNIQUE KEY user (user)
) TYPE=MyISAM;
------------------------

--------  config.php  --------
<?
# ------------------------------------------
#  Server variables
$db_server = "localhost";
$db_user = "";
$db_pass = "";
$db_db = "chat";

# ------------------------------------------
#  The longest time messages are kept in DB
$maxAge = 60*10; // seconds

# ------------------------------------------
#  Variables used for rendering of messages
$maxNumMsgs = 50;  // Max numbers of lines showed
$hiCol = "#ffffff"; // Highlight row-color
$loCol = "#ededed"; // Lolight row-color

# ==========================================
#  Functionality used globaly (don't alter)
$connection = mysql_connect($db_server, $db_user, $db_psw) or die (mysql_error());
$do_connect = mysql_select_db($db_db, $connection) or die (mysql_error());

if ( !empty($_SESSION) ) {
    extract($_SESSION);
} else if ( !empty($HTTP_SESSION_VARS) ) {
    extract($HTTP_SESSION_VARS);
}

if ( !empty($_GET) ) {
    extract($_POST);
} else if ( !empty($HTTP_GET_VARS) ) {
    extract($HTTP_GET_VARS);
}

if ( !empty($_POST) ) {
    extract($_POST);
} else if ( !empty($HTTP_POST_VARS) ) {
    extract($HTTP_POST_VARS);
}

?>
------------------------

--------  login.php  --------
<?
include ( "config.php" );
if ( isset($user) && $user<>"" && strlen($user)<=15 ) {
    $user = addslashes( $user );
    $sql = "insert into users set user='$user'";
    $res = mysql_query( $sql );
    if ( mysql_affected_rows()>0 ) {
        $msg = "<b>Ny bruger logget på</b>";
        $stamp = time();
        $sql = "insert into messages ( user, msg, stamp ) values ( '$user', '$msg', '$stamp' )";
        mysql_query( $sql );
        session_start();
        session_register( "user_name" );
        $user_name = $user;
        Header ( "Location: index.php" );
    } else {
        $err_msg = "<div style=\"color:#ff0000;font-weight:bold;text-align:center;\">Dette nick er allerede optaget</div>";
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>&nbsp;&nbsp;..:: LogIn ::..&nbsp;&nbsp;</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
div, input, button {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
input {
    width: 200px;
    border: 1px dashed #336699;
}
button {
    background-color: #dedede;
    border: 1px solid #336699;
    margin-left: 15px;
}
</style>
<script type="text/JavaScript">
var d=document;
function checkForm(f) {
    if ( f.user.value=="" ) {
        alert("Du skal skrive et chat-nick");
        return false;
    }
    if ( f.user.value.length>15 ) {
        alert("Dit chat-nick må højest være på 15 tegn");
        return false;
    }
}
</script>
</head>
<body>
<div style="padding-top:120px;" align="center">
<?=$err_msg?>
<b>Skriv dit chat-nick og tryk 'LogIn':</b>
<form action="login.php" method="post" onsubmit="return checkForm(this)">
    <input type="text" name="user">   
    <button type="submit">LogIn</button>
</form>
</div>
<script type="text/JavaScript">d.forms[0].user.focus();</script>
</body>
</html>
------------------------

--------  index.php  --------
<?
include ( "config.php" );
unset( $user_name );
session_start();
if ( !isset($user_name) || $user_name=="" ) Header ( "Location: login.php" );
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>&nbsp;&nbsp;..:: OleBoleChat ::..&nbsp;&nbsp;</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- ***********************************************************************
                        OleBole-Chat Version 1.0
                    (c) Copyright Ole Clausen, 2003
                   
    This chat was downloaded from http://www.eksperten.dk/spm/320350
        The code is free to use if you leave these lines untouched.
              If you alter the code, dont erase these lines.
                  Add a modification-notice instead.
   
************************************************************************ -->
<style type="text/css">
td {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
.msgTbl {
    width: 100%;
}
td, input, button {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
}
input {
    width: 100%;
    border: 1px dashed #336699;
}
button {
    background-color: #dedede;
    border: 1px solid #336699;
    margin-left: 15px;
}
.u {
    width: 100px;
    color: #ff0000;
    vertical-align: top;
    padding: 5px 12px 5px 5px;
    border-bottom: 1px dashed #999999;
}
.m {
    padding: 5px;
    border-bottom: 1px dashed #999999;
   
}
.time {
    color: #336699;
    font-size: 9px;
}
.clHidFrame {
    position: absolute;
    width: 1px;
    height: 1px;
    left: 0px;
    top: 0px;
}
#chat {
    width: 450px;
}
</style>
<script type="text/JavaScript">
var maxNumMsgs = <?=$maxNumMsgs?>;
var hiCol = "<?=$hiCol?>";
var loCol = "<?=$loCol?>";
var d=document;
function gE(id){return d.getElementById(id)}
function gA(o,tN){return o.getElementsByTagName(tN)}
function writeChat( a ) {
    var tbl = gE("chat");
    for (i=0; i<a.length; i+=3) {
        var bgCol = ( gA(tbl, "TR")[0].style.backgroundColor=="#ffffff" )? loCol : hiCol;
        var newRow = tbl.insertRow(0);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = "<b>" + a[i] + "</b><div class=\"time\">[" + a[i+1] + "]</div>";
        newCell.className = "u";
        var newCell = newRow.insertCell(1);
        newCell.innerHTML = a[i+2];
        newCell.className = "m";
        newRow.style.backgroundColor = bgCol;
    }
    var numMsgs = gA(tbl, "TR").length;
    while ( numMsgs>maxNumMsgs ) {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
window.onunload = function() {
    window.open( "logout.php", "logOutWin", "width=100,height=100" );
}
</script>
</head>
<body>

<div style="width:470px">
<div id="bla" style="height:250px;overflow:auto;">
<table id="chat" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td colspan="2">&nbsp;</td>
</tr>
</table>

</div>
<form name="msgForm" target="msgFrame" action="msg.php" method="post">
<table class="msgTbl" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td><input type="text" name="msg"></td>
    <td style="width:10px;"><button type="submit">Send</button></td>
</tr>
</table>
</form>
</div>

<iframe name="msgFrame" class="clHidFrame" src="msg.php" frameborder="0"></iframe>
<iframe name="chatFrame" class="clHidFrame" src="chat.php" frameborder="0"></iframe>
</body>
</html>
------------------------

--------  msg.php  --------
<?
include ( "config.php" );
unset( $user_name );
session_start();
if ( isset($msg) && $msg<>"" && $user_name ) {
    $replArr = array(
        "<" => "&lt;",
        ">" => "&gt;",
        "\"" => "'",
        "--" => ""
    );
    strtr( $msg, $replArr );
    $msg = addslashes( $msg );
    $stamp = time();
    $sql = "insert into messages ( user, msg, stamp ) values ( '$user_name', '$msg', '$stamp' )";
    mysql_query( $sql );
    $oldStamp = $stamp - $maxAge;
    $sql = "delete from messages where stamp<$oldStamp";
    mysql_query( $sql );
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<script type="text/JavaScript">
parent.d.forms[0].msg.value = "";
parent.d.forms[0].msg.focus();
</script>
</html>
------------------------

--------  chat.php  --------
<?
include ( "config.php" );

if ( !isset($s) || $s=="" ) $s = 0;

$sql = "select * from messages where stamp>'$s' order by stamp";
$res = mysql_query( $sql ) or die (mysql_error());
$num_rows = mysql_num_rows( $res );

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<script type="text/JavaScript">
var a = new Array();

<?
if ($num_rows>0) {
    while ( $row=mysql_fetch_array($res) ) {
        $arr_str .= "a[a.length] = \"".stripslashes($row["user"])."\";\n";
        $arr_str .= "a[a.length] = \"".date( "h:i:s", $row["stamp"] )."\";\n";
        $arr_str .= "a[a.length] = \"".stripslashes($row["msg"])."\";\n";
        $s = $row["stamp"];
    }
       
    print $arr_str;
}
?>

parent.writeChat( a );
setTimeout( "location.href='chat.php?s=<?=$s?>'", 5000 );
</script>
</html>
------------------------

--------  logout.php  --------
<?
include ( "config.php" );
unset( $user_name );
session_start();
if ( isset($user_name) ) {
    $msg = "<b>Bruger logget af</b>";
    $stamp = time();
    $sql = "insert into messages ( user, msg, stamp ) values ( '$user_name', '$msg', '$stamp' )";
    mysql_query( $sql );
    $sql = "delete from users where user='$user_name'";
    mysql_query( $sql );
    session_unset();
    session_destroy();
}
print "<script type=\"text/JavaScript\">window.close();</script>";
?>
------------------------

Nu håber jeg så, der er mange, der med tiden vil få glæde af koden  ;o)
/mvh
</bole>
Avatar billede olebole Juniormester
22. februar 2003 - 08:06 #1
PS: Jeg skriver nok en ASP/MySQL-version i aften (til de der stakler, I ved nok ... *gnæk-gnæk*) ... nu vil jeg i hvert fald lige have et par timers søvn  ;o)
Avatar billede jensgram Nybegynder
22. februar 2003 - 10:37 #2
Så kan de lære det ;) Godt initiativ - det næste bliver vel, at folk bruger søge-funktionen!
Avatar billede nicklasb Nybegynder
22. februar 2003 - 11:06 #3
der er lige en lille fejl.. (ved ikke om der er flere, da jeg kun lige har kørt ned over siden, og kigget koden igennem.. Men lige en lille rettelse til config.php. Hvis koden starter fra <? skal linie 21 være:

$connection = mysql_connect($db_server, $db_user, $db_pass) or die (mysql_error());

er der nogle der har tjekket for yderligere fejl ?? for ellers kan jeg da godt lige smide den op på en server, og teste om det er let nok at sætte op mv.. :)
Avatar billede jakoba Nybegynder
22. februar 2003 - 13:07 #4
mon ikke anden linie her:
if ( !empty($_GET) ) {
    extract($_POST);

skulle være
    extract($_GET);

men det er bare kritik fordi jeg er misundelig :-))

mvh JakobA
Avatar billede iqzero Nybegynder
22. februar 2003 - 14:17 #5
OleBole:

God idé. :)

Hvad med evt. at GPL'e den og lægge den på sourceforge.net? ;)
Avatar billede nicklasb Nybegynder
22. februar 2003 - 14:37 #6
skulle lige teste den.. :)
og har da lige en rettelse mere nu hvor klokken er blevet over 12..

og sjovt nok er det linie 21 igen, bare i en anden fil..

chat.php ville jeg nok udskifte linie 21 ($arr_str .= "a[a.length] = \"".date( "h:i:s", $row["stamp"] )."\";\n";) til:

$arr_str .= "a[a.length] = \"".date( "H:i:s", $row["stamp"] )."\";\n";

eller

$arr_str .= "a[a.length] = \"".date( "h:i:s a", $row["stamp"] )."\";\n";


så posttiden ikke er en blandig af engelsk og dansk formatering.. :)
Avatar billede olebole Juniormester
22. februar 2003 - 15:52 #7
Hi Guys. Tusind tak for tilbagemeldinger ... og ingen grund til at undskylde, du på peger en klar fejl, Jakob - brøleren er min og til at tage at føle på  ;o))
Det burde herefter stå klart for enhver, at den er skrevet ude på de 'små timer' (stavet med lille 'h'), at min lokale MySQL-server kører uden password og at jeg kører en lidt bedaget PHP-version, hvor jeg ikke gør brug af super-globale variabler  *LooooL*
Så er det zq kanun, at I er der til at checke mine fejl - og jeg ville blive meget glad, hvis I eller andre gider finde og påpege andre fejl og mangler, der måtte være ... tak, so far  :)

iqzero >> Jo, måske det ville være en meget god idé at smide den på SourceForge ... det vil jeg da overveje. Så kunne der også komme lidt dokumentation til.
Faktisk har den udløsende faktor for dette lille projekt allerede 'brokket' sig over, koden er svær at læse: http://exp.dk/spm/320350 - så det er helt klart værd at overveje  :)

For en ordens skyld:
Det, der gør chatten 'blinkfri', er at jeg har lagt koden, der opdaterer databasen ned i en skjult iframe (filen 'msg.php' ligger i iframen 'msgFrame' i 'index.php').
Skrive-formen har target="msgFrame" og sender altså ned i denne, så det er 'msg.php', der reloader, når der skrives ... ikke 'index.php'.

Derudover ligger 'chat.php' i 'chatFrame' og reloader hvert 5. sekund. Hvergang den reloader (og henter data fra databasen), kaster den data ind i et array, som den sender op til funktionen 'writeChat()' i 'index.php'. Denne funktion udskriver så beskederne i tabellen 'chat'.
Dette gør, at 'index.php' aldrig reloader og siden derfor ikke 'blinker'.
/mvh
Avatar billede olebole Juniormester
22. februar 2003 - 15:54 #8
Ups ... det var her, jeg fik idéen til chatten:  http://exp.dk/spm/320301  :)
Avatar billede olebole Juniormester
22. februar 2003 - 16:02 #9
RETTELSER FORELØBIG:

'config.php' skal altså se sådan ud:

<?
# ------------------------------------------
#  Server variables
$db_server = "localhost";
$db_user = "";
$db_pass = "";
$db_db = "chat";

# ------------------------------------------
#  The longest time messages are kept in DB
$maxAge = 60*10; // seconds

# ------------------------------------------
#  Variables used for rendering of messages
$maxNumMsgs = 50;  // Max numbers of lines showed
$hiCol = "#ffffff"; // Highlight row-color
$loCol = "#ededed"; // Lolight row-color

# ==========================================
#  Functionality used globaly (don't alter)
$connection = mysql_connect($db_server, $db_user, $db_pass) or die (mysql_error());
$do_connect = mysql_select_db($db_db, $connection) or die (mysql_error());

if ( !empty($_SESSION) ) {
    extract($_SESSION);
} else if ( !empty($HTTP_SESSION_VARS) ) {
    extract($HTTP_SESSION_VARS);
}

if ( !empty($_GET) ) {
    extract($_GET);
} else if ( !empty($HTTP_GET_VARS) ) {
    extract($HTTP_GET_VARS);
}

if ( !empty($_POST) ) {
    extract($_POST);
} else if ( !empty($HTTP_POST_VARS) ) {
    extract($HTTP_POST_VARS);
}
?>

Og i 'chat.php' skal tidsformatereringen i linie 21 se sådan ud:
  $arr_str .= "a[a.length] = \"".date( "H:i:s", $row["stamp"] )."\";\n";
Avatar billede nicklasb Nybegynder
22. februar 2003 - 16:15 #10
ville det ikke være lettest hvis du pakkede filerne og lange dem op på en server, og så opdaterede den hver gang der kom rettelser.. For hvis man følger med skal man vel nok opfange hvor rettelserne skal stå. Bare så der ikke kommer gentagelser konstant..

(og det er vel egentligt også lige meget for andre, hvilke fejl der måtte have været.. Hvis bare filerne er opdateret.. eller, skal man yde lidt selv??
Avatar billede Slettet bruger
22. februar 2003 - 16:18 #11
Ja jeg prøver at teste den og det ser ikke ud som om den virker :)
Men der er nok kun tale om småfejl.. har rettet dem i har fundet


http://www.westhi.dk/olebole/

jeg opdaterer hver gang der bliver fundet fejl... så kan i følge med i det :)
Avatar billede nicklasb Nybegynder
22. februar 2003 - 16:24 #12
westhi-> det ser ud til du har lavet lort i den.. :)

for det virker bliver man nød til at logge ind først.. ellers er der lidt et problem med hvilket navn der skal i databasen..

men jeg har lige prøvet at ligge det op: http://www.bornstein.dk/olechat/login.php
der skulle den gerne virke ;)
Avatar billede Slettet bruger
22. februar 2003 - 16:25 #13
jeg har ikke rørt noget i koderne selv, så jeg har nok ikke lavet lort i det :)
Avatar billede nicklasb Nybegynder
22. februar 2003 - 16:27 #14
Avatar billede Slettet bruger
22. februar 2003 - 16:32 #15
ja der er noget galt :)
Avatar billede Slettet bruger
22. februar 2003 - 16:40 #16
nu virker den næsten... session_start(); skal jo være det første i dokumentet
Avatar billede Slettet bruger
22. februar 2003 - 16:51 #17
nicklas> vil du prøve at zippe dine filer (undtagen dine db oplysninger :)) og uploade dem så jeg kan teste om det virker på min server? :S
Avatar billede olebole Juniormester
22. februar 2003 - 16:52 #18
Nej, det behøver det ikke - men hvis der kommer en enket blank linie før <?, så er du på spanden. config.php skal du også passe på, der ikke er 'luft' i.

Den fejl, du viser, stammer helt sikkert fra en blank linie, før session_start() bliver kaldt  ;o)
/mvh
Avatar billede Slettet bruger
22. februar 2003 - 17:04 #19
nu virker den fint :)
Avatar billede nicklasb Nybegynder
22. februar 2003 - 17:06 #20
jeg kan da godt ligge den op, (hvis det er ok med dig ole??)
men der er da ikke så mange indlæg endnu.. så det skulle da være til at overkomme at læse igennem.. men here you go: http://www.bornstein.dk/olechat/kildekode/OleBoleChat.zip
Avatar billede Slettet bruger
22. februar 2003 - 17:08 #21
jeg har bare fået den til at virke nu, så jeg har ikke brug for at hente den... men måske andre :)
Avatar billede metal_hansen Nybegynder
22. februar 2003 - 17:09 #22
ja jeg har da snuppet den :)
takker
Avatar billede olebole Juniormester
22. februar 2003 - 17:12 #23
Jeg kyler den op lidt senere i en dokumenteret version - men tak indtil videre nicklasb  ;o)
/mvh
Avatar billede olebole Juniormester
23. februar 2003 - 00:45 #24
Jeg har et hjørne på er server, hvor jeg har kastet den indtil videre. Der ligger nu også noget dokumentation i en README-fil i pakken:
  http://tjenester.dk/x-codes.dk/eksperten/chat/
/mvh
Avatar billede netassist Juniormester
24. februar 2003 - 10:05 #25
min loger af efter 2 sek '
har tage den fra mysql
kan du sige hvad det er ole
Avatar billede olebole Juniormester
24. februar 2003 - 11:40 #26
Hvad har du taget fra mysql?
Har du downloaded pakken?
/mvh
Avatar billede olebole Juniormester
24. februar 2003 - 11:41 #27
PS: Nu ligger den i øvrigt også i en ASP-version til de, der måtte være interesseret  :)
Avatar billede mpedersen Nybegynder
24. februar 2003 - 13:05 #28
2 problemer.

Efter kort tid "låser" chatten. Der kan herefter ikke længere skrives. Reloader jeg siden, får jeg en blank side, alene med indtastningsfeltet.

Lukker jeg explorer ned, og forsøger senere igen at logge på chatten, får jeg at vide brugernavnet er optaget.

Og lige et forslag: kunne der implementeres en "online bruger liste"? :)
Avatar billede olebole Juniormester
24. februar 2003 - 13:13 #29
mpedersen >> Det lyder lidt besynderligt. Jeg kan ikke reproducere fejlen, så det er svært at sige, hvad det er, der er galt.

Har du downloaded pakken fra nettet? Der står online-bruger listen netop nævnt i README-filen. Der er mange TO-DO's  :)
/mvh
Avatar billede netassist Juniormester
24. februar 2003 - 13:22 #30
ole jeg har b-one og jeg har oploade din sql kode ind så den liger som to tabeller
Avatar billede mpedersen Nybegynder
24. februar 2003 - 13:35 #31
olebole, jeg ved metalhansen har nøjagtig samme problem.

Både min egen samt metalhansens er placeret hos www.starthotel.dk.
Avatar billede olebole Juniormester
24. februar 2003 - 13:35 #32
netassist >> Det siger ikke meget om, hvorfor den ikke skulle virke  :)
/mvh
Avatar billede mpedersen Nybegynder
24. februar 2003 - 13:36 #33
Nu siger du godt nok README... altså... manualer og readme-filer kaster man sig da ikke over, før det er ABSOLUT sidste udvej ;)
Avatar billede netassist Juniormester
24. februar 2003 - 13:37 #34
i en database der heder netassist_dk
sammen med mit shop system
Avatar billede metal_hansen Nybegynder
24. februar 2003 - 13:38 #35
min ligger her: http://www.runehansen.starthotel.dk/chat/index.php
og ja , jeg har samme problem
Avatar billede mpedersen Nybegynder
24. februar 2003 - 13:41 #36
øøøhh... metal_hansen, har du været logget på som "test" på din chat? - denne er låst når jeg forsøger. Det er samme bruger jeg har problemer med på min egen.
Avatar billede exp Juniormester
24. februar 2003 - 13:43 #37
det ser ud som om min virker fin (kører på starthotel)

www.firewerx.dk/obchat
Avatar billede olebole Juniormester
24. februar 2003 - 13:43 #38
Jeg prøver at kikke på det senere på dagen  :)
Avatar billede mpedersen Nybegynder
24. februar 2003 - 13:46 #39
oohh... det er åbenbart ALLE brugernavne der er låst på metal_hansens..
Avatar billede olebole Juniormester
24. februar 2003 - 14:07 #40
metal_hansen >> Har du sat de rigtige database oplysninger foroven i 'config.php'? Prøv evt, at skrive i den fil:

# ==========================================
#  Functionality used globaly (don't alter)
$connection = mysql_connect($db_server, $db_user, $db_pass) or die (mysql_error());
$do_connect = mysql_select_db($db_db, $connection) or die (mysql_error());

if ($do_connect) print "Der er hul igennem<br>";

Det fortæller dig, om du har fat i databasen. At du i samme forbindelse får andre fejl er ligemeget. Vi skal bare være sikre på, du overhovedet snakker med MySQL  :)
/mvh
Avatar billede olebole Juniormester
24. februar 2003 - 14:09 #41
Men det burde du jo have, hvis ikke du får en MySQL-fejl .... Hmmmmm, sært  :)
Avatar billede 4us.dk Nybegynder
24. februar 2003 - 14:21 #42
<ole></bole> og alle andre derude som har testet... jeg har lige skrevet en linie på jeres chat:

- http://www.westhi.dk/olebole/
- http://www.bornstein.dk/olechat/login.php


Jeg har skrevet linjen:
------------------------------------
Citat: "Ja, men alligevel... burde være den første ting man ville skrive, hehe... forestil dig Ofir.dk -> Chat at man kunne bruge <h1>Store</h1> bogstaver <font size="100">:)))</font>"
------------------------------------

Derefter er der sket fejl på chatten og der er script fejl. Tjek det lige ud og ret det evt.

:)
Avatar billede viciodk Praktikant
24. februar 2003 - 14:22 #43
Måske muligheden for at skrive html-koder burde fjernes. nicklasb's chat er vist død, hehe :)
Avatar billede exp Juniormester
24. februar 2003 - 14:27 #44
viciodk >>
se www.firewerx.dk/obchat - er allerede ordnet :o)
Avatar billede metal_hansen Nybegynder
24. februar 2003 - 14:33 #45
olebole (og andre) > jeg har vist sat mit brugernavn etc rigtig nok op - MEN det skal lige siges jeg ikke har 100% styr på databasen - men jeg tror jeg har sat det rigtig nok op (man har ikke selv adgang til at lave en db på starthotel, men man har adgang til en - som jeg dog ikke har konfigureret - hvis det altså er nødvendigt)
Avatar billede olebole Juniormester
24. februar 2003 - 14:39 #46
Hehe .... faktisk har jeg sørget for, der ikke kunne skrives HTML, Men glemt en detalje.
I 'msg.php' står en linie:
  strtr( $msg, $replArr );
Den bør sige:
  $msg = strtr( $msg, $replArr );
Sorry ... en update bliver uppet lidt senere  :)

metal_hansen >> Har du så sørget for at ændre databasenavnet i 'config.php'? Det er her:
  $db_db = "chat";
/mvh
Avatar billede metal_hansen Nybegynder
24. februar 2003 - 14:40 #47
olebole > ja det har jeg.
Avatar billede mpedersen Nybegynder
24. februar 2003 - 14:53 #48
metalhansen, databasen sættes jo blot op via phpmyadmin. Det fungerer fint nok på starthotel..
Avatar billede metal_hansen Nybegynder
24. februar 2003 - 14:55 #49
mpedersen > ja men jeg har ikke en dart forstand på det . Jeg har også oprettet et spr. om det på www.iknow.dk men uden succes :(
Avatar billede netassist Juniormester
24. februar 2003 - 14:56 #50
Avatar billede olebole Juniormester
24. februar 2003 - 15:02 #51
netassist >> Jamen du har jo også noget ged med stier og/eller manglende filer ... du har f.eks. ikke din 'logout.php' liggende, hvor den skal
Avatar billede netassist Juniormester
24. februar 2003 - 15:04 #52
det hele ligge i en mappe der heder chat
er det en fejl
Avatar billede olebole Juniormester
24. februar 2003 - 15:10 #53
Du laver noget frygtelig rod med dine inkluderinger ... bl.a. har du noget af 'logout.php' i bunden af 'chat.php'. Du kan heller ikke uden videre lave det der include-halløj i din index-side. Du vil få ged i stierne
Avatar billede netassist Juniormester
24. februar 2003 - 15:13 #54
det viste jeg godt den skal hellerikke bruges her den køre bare som test
jeg har oplode dine script op på min server ??
Avatar billede olebole Juniormester
24. februar 2003 - 15:18 #55
Så forstår jeg ikke, hvorfor jeg skulle se på den. Den fungerer naturligvis kun, hvis den er sat rigtigt op.
Avatar billede metal_hansen Nybegynder
24. februar 2003 - 15:18 #56
men olebole > så er min opsætning altså rigtig nok?!
Jeg mener, så er det måske kun db'en jeg mangler at sætte op eller hvad?!
Jeg har et spr. her hvis nogen vil hjælpe http://www.eksperten.dk/spm/320522
jeg håber ikke dette opfattes som en ref. da det jo er i alles interesse at få den til at virke :)
Avatar billede netassist Juniormester
24. februar 2003 - 15:21 #57
jeg viste at jeg lavet nået rod
men jeg kan ikke finde ud f fejlen
Avatar billede exp Juniormester
24. februar 2003 - 15:45 #58
Jeg bliver lidt forvirret nogen gange... Hvis jeg prøver at lægge et link i databasen - vil den ikke udskrive alle indlæg derefter ?!?

Det forstår jeg ikke!
Avatar billede exp Juniormester
24. februar 2003 - 15:45 #59
heller ikke indlægget med linket!
Avatar billede olebole Juniormester
24. februar 2003 - 15:53 #60
Ehhhhhh .... et link? Check lige kommentaren: (24/02-2003 14:39:16)  ;o)
Avatar billede olebole Juniormester
24. februar 2003 - 16:08 #61
Du skal ikke lægge noget ind i databasen selv ... så kan det gå galt. Men det er jo heller ikke meningen  :)
Avatar billede netassist Juniormester
24. februar 2003 - 16:10 #62
hej ole jeg fant fejlen Tak
håber jeg må bruge den ..':)
Avatar billede olebole Juniormester
24. februar 2003 - 16:21 #63
Den er skrevet til at blive brugt  :)
Avatar billede exp Juniormester
25. februar 2003 - 08:34 #64
olebole >>
Det blev lagt ind vha ljwebs tagster, iøvrigt har jeg (tror jeg da selv) nok indblik i mysql til at kunne lege bag facaden ;o)

But I simply do not get it... *snøft*
Avatar billede metal_hansen Nybegynder
25. februar 2003 - 20:16 #65
Nu har jeg i hvert fald fået min til at virke :)))
http://www.runehansen.starthotel.dk/chat/index.php
Avatar billede supermand69 Nybegynder
04. marts 2003 - 14:39 #66
olebole >

vil du ikke sætte mig lidt ind i hvad det javascript lige præcist gør på hovedsiden i chatten?? Jeg er ikke så hård til javascripts nemlig :-/

<script type="text/JavaScript">
var maxNumMsgs = <? echo $MAX_LINES; ?>;
var hiCol = "#333333";
var loCol = "#999999";
var d=document;

function gE(id)
{
    return d.getElementById(id)
}

function gA(o,tN)
{
    return o.getElementsByTagName(tN)
}

function writeChat(a)
{
    var tbl = gE("chat");
   
    for (i=0; i<a.length; i+=3)
    {
        var bgCol = ( gA(tbl, "TR")[0].style.backgroundColor=="#ffffff" )? loCol : hiCol;
        var newRow = tbl.insertRow(0);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = "<b>" + a[i] + "</b><div class=\"time\">[" + a[i+1] + "]</div>";
        newCell.className = "u";
        var newCell = newRow.insertCell(1);
        newCell.innerHTML = a[i+2];
        newCell.className = "m";
        newRow.style.backgroundColor = bgCol;
    }
   
    var numMsgs = gA(tbl, "TR").length;
    while(numMsgs > maxNumMsgs)
    {
        tbl.deleteRow(numMsgs-1);
        numMsgs--;
    }
}
</script>
Avatar billede supermand69 Nybegynder
06. marts 2003 - 01:59 #67
Hvordan kan man så fjerne den kliklyd hver gang iframes opdaterer... uden at man skal ind i windows lydinstillinger?? :)
Avatar billede Slettet bruger
06. marts 2003 - 19:18 #68
oh no flere db fejl :/
Avatar billede dennism Nybegynder
07. marts 2003 - 20:26 #69
OleBole >>

Jeg har i dag siddet og makket med at få din system (blinkfri) til at virke på min chat, men desværre uden held!
Har du lyst til at hjælpe mig med at få det til at virke?
Hvis ja, vil du så helst at jeg opretter et spm. her på eksperten, eller at jeg sender en mail til dig (i så fald skal jeg lige have din emailadresse)?

På forhånd tak :D
Avatar billede dennism Nybegynder
07. marts 2003 - 20:26 #70
Jeg burde måske sige, at problemet er, at jeg ikke kan få den til at printe teksten!
Avatar billede dennism Nybegynder
13. marts 2003 - 20:42 #71
OleBole, måske er du lige manden som kan besvare mit spm.:
http://www.eksperten.dk/spm/328449
Avatar billede eskeeske Nybegynder
25. marts 2003 - 15:21 #72
Er der nogen links til nogen udgaver som kører på nettet. Jeg er godt nok meget imponeret over det jeg har set indtil videre.
Avatar billede faklerz Nybegynder
28. april 2003 - 11:43 #73
er der ikke nogen der vil lægge den ud som en zip fil eller noget så skriv til mig

msn: faklerz@jubiimail.dk
ICQ: 160025078
Avatar billede metal_hansen Nybegynder
28. april 2003 - 13:29 #74
eskeeske > jeg har en kørende på www.runehansen.dk
Avatar billede backside Nybegynder
16. maj 2003 - 01:50 #75
NEJJJJ, hvad har du gjort med din side hip-hop_hansen?

Hatten af for olebole, fortjener virkelig titlen som "Overnørd".....med stort P
Avatar billede metal_hansen Nybegynder
16. maj 2003 - 04:33 #76
backside > hvad er der nu galt med min side?! *G* kritik modtages gerne!!
og ja  , jeg éksperimenterer sq lidt - -men er det helt ved siden af, så sig dog til! *G*
Avatar billede tipsen Nybegynder
16. maj 2003 - 09:50 #77
supermand: Kliklyden er en IE bug/feature - du kan bare skifte browser ;-)
Avatar billede backside Nybegynder
16. maj 2003 - 11:48 #78
tipsen>> Year right...
Der er jo ikke noget alternativ. ;)
Avatar billede tipsen Nybegynder
19. maj 2003 - 14:24 #79
Jeg er meget glad for både mozilla og opera - når IE tilter så er det rart med en ordentlig backup-løsning :-)
Avatar billede exp Juniormester
27. august 2003 - 23:52 #80
Lukketid så den kommer i "spørgsmål med accepteret svar"?
Avatar billede ch007 Nybegynder
22. december 2003 - 20:07 #81
Hvor er chatten til asp?
Avatar billede nicklasb Nybegynder
22. december 2003 - 20:10 #82
Avatar billede wever Nybegynder
25. februar 2004 - 19:00 #83
kan jeg få accepteret dette svar?? :)

(det her er den tråd der har flest kommentare men ingen svar!!)
Avatar billede nicklasb Nybegynder
25. februar 2004 - 19:30 #84
ehhh?! Nej.. hvorfor skulle du det? Du har da ikke deltaget aktivt i debatten, eller kommet med noget som helst relevant, der skulle gøre at du er fortjent med (endnu) et besvaret spørgsmål på din liste?!
Avatar billede olebole Juniormester
25. februar 2004 - 23:30 #85
Sorry, selvfølgelig skal der da lukkes  :)

wever >> Hmmmmmm ..... du kan få et svar - og det er 'nej'  :)
/mvh
Avatar billede backside Nybegynder
27. februar 2004 - 01:37 #86
Vil lige høre om det et tilladt at ligge chatten til download på egen hjemmeside.
Avatar billede futurefreak Nybegynder
10. januar 2007 - 12:58 #87
Og jeg vil lige høre om Olebole vil kontakte mig! han ved hvad det drejer sig om.
Vh
Michael
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester