Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Erittäin yksinkertainen reealiaikainen keskusteluohjelma (chatti)

Cooper [25.10.2004 06:45:00]

#

Joo, eli kuten nimestä näkyy, kyseessä on liiankin simppeli "chatti". suht vähän ulkoasua muokattu, mutta raakaversiona kelpaa. allaolevan lisäksi tarttee msg.txt -nimisen filun, jolla tulee antaa oikeudet 777. ehkä toimisi pienemmillälkin, mutta enmäänyvaantiiä... palaute ois hyvästä. valmis pläjahdys nähtävänä sivulla: http://co0per.freelinuxhost.com/chattisivu.php

<?php
/*******************************/
/***  PHP SpiritSleeperChat  ***/
/***         v 0.12           ***/
/***   www.valokaapeli.com   ***/
/*******************************/

// Tässä chatissa ei voi käyttää (vielä) omia nickejä, mutta kyllä IP:t hoitavat saman homman

// Konfiguraatio : [Voit vapaasti muuttaa näitä asetuksia]

$refresh = 6 ; // Sivun päivitysnopeus sekunteina
$max = 20 ; // Max. tallennetut viestit
$remain = 400 ; // Kuinka kauan viestit pysyvät näytöllä. Sekunteina.
$file = "msg.txt" ; // Filu, johon viestit tallennetaan

/*
Tee tyhjä filu "msg.txt"
($file), ja pistä palvelimelle. Sitten CHMOD:aa tämä filu 777
*/

// Konfiguraation loppu //

$user = $HTTP_SERVER_VARS['REMOTE_ADDR'] ;
$f = file($file) ;
$users = array($user) ;
header ("Content-Type: text/html; charset=utf-8") ;
$fp = fopen($file, "w") ;
if (!$fp) { die ('Jotain mättää ja pahasti. Syytä tekijää.') ; }
for ($i=0; isset($f[$i])||$i==0; $i++)
{
$e=explode('||', $f[$i]) ;
if ($e[2]=="\r\n" && !in_array($e[0], $users) && ( time() - $e[1] < $refresh*2 ) ) $users[]=$e[0] ;
if ($i==0) { fputs($fp, $user."||".time()."||\r\n") ;
if ( isset($HTTP_POST_VARS['msg']) ) fputs ($fp, $user."||".time()."||".str_replace("||", "", str_replace("\n", "", htmlspecialchars(stripslashes($HTTP_POST_VARS['msg']))))."\r\n") ;}
if ( ($e[0]!=$user && $e[2]=="\r\n") || ( $i<$max && ($e[1]+$remain)>time() && $e[2]!="\r\n") ) fputs($fp, $f[$i]) ;
}
fclose($fp) ;

if (isset($HTTP_GET_VARS['f1']))
{
$f2 = file($file) ;
echo("<html><head><title>SpiritSleeperChat_v_0.12</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'></head>") ;

echo("<body bgcolor='#E6EDE8' text=#0000cc><meta http-equiv='refresh' content='{$refresh}; url={$HTTP_SERVER_VARS['REQUEST_URI']}'>") ;

echo("<font color=#e22200>Käyttäjät sisällä: ") ;

foreach($users as $u) echo "<font color=#ee0099>".$u."</font> - " ;

echo "</font><hr>" ;

for($i=0; isset($f2[$i]) && $i<$max; $i++) {
$e=explode("||", $f2[$i]) ;

if ($e[2]!="\r\n") echo "<font color=green>{$e[0]}</font> <font color=red>:</font> {$e[2]}<br>\r\n" ;
}
die("</body></html>") ;
}

else
{
die("
<html><head><title>SpiritSleeperChat_v_0.12</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

<script><!--
function msg(){ document.m.msg.focus(); } // --></script>
</head>
<body bgcolor='#658E6E' align='center' onLoad='msg()'> <center>
<iframe src='?f1=1' width='95%' height='85%'></iframe><br>
<table width='95%' bgcolor='#E6EDE8'><tr><td align='center' width='100%'>
<form action='' method='post' name='m'>
Viestisi : <input name='msg' size=60> <input type='submit' name='lähetä' value='lähetä'>
<br />
</form>
</td></tr></table>
</body></html>
") ;
}
?>

ajv [25.10.2004 14:27:57]

#

Onpas muuten harvinaisen selkeetä ja helppolukuista koodia :) Ja kommenttejakin on vähän liikaa...

tsuriga [25.10.2004 16:24:57]

#

https://www.ohjelmointiputka.net/koodivinkit/24558-php-php-sleeperchat-v0.1
Onpas samanlainen. Jos sitä ei julkaista niin sitä ei julkaista.
Eikä tämä ole reaaliaikainen, teoriassa voi mennä 6s ennenko henkilön viesti menee toiselle.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta