Registration system for phpfreechat


Hola a todos,

Como phpfreechat es un chat bastante usado en la web, i que además es fácil de instalar y usar ayudándote como webmaster a tener un chat rápido y sin ninguna complicación, solo lo subes en un folder como quieras llamarle y le das permisos 777 a el folder ./DATA y echo te vas a tu explorador y lo abres y ya estas chateando..
Lo desafortunado de el script esque no tiene una sistema de registracion , pues bueno me decidí a crear una y tengo como resultado un sistema completo de registracion que evita que otros usuarios que entren al chat, utilicen el nombre o nick de otro usuario registrado..
El script permite que entren como anónimos al chat pero chequea que el nombre no este registrado con eso te da un completo manejo del chat no mas personas que personifiquen a otra o el moderador.. que dolor…
Requerimientos mínimos:
Los privilegios mínimos del usuario de mysql son:

* SELECT, CREATE, INSERT, UPDATE,DELETE,FILE.

Lo que hace el script:

1. Registra el nombre y lo salva en una base de datos de mysql.
2. Usuario anónimo , deja entrar al chat anónimamente pero si el nombre escogido como anónimo no esta registrado.
3. La posibilidad de desactivar la opción de usuario anónimo.
4. La registracion de un nombre pero si no usa el mismo correo electrónico , no permite registrar si el correo existe en la base de datos.
5. Restringe el acceso al chat si no esta autorizado a entrar, eliminas la posibilidad de que entren si no an iniciado la sesión que indica o que son anónimos o si están registrados..
6. Ninguna clave de usuario es colocada en la sesión php , en cambio el nombre es encriptado y agregado una sal que es salvada en la base de datos lo cual la clave nunca esta en-riesgo.
7. Cantidad mínimas de caracteres para el nombre que se quiere registrar, así también cantidad máxima.
8. Cantidad mínima de caracteres para la clave , entre mas larga sea la clave mas difícil de dar con ella si quieren usar fuerza bruta y diccionarios .

Prosigamos a la instalación :

1. Descarga el login.rar.
2. Descomprime lo y los subes al folder donde esta tu chat, ejemplo ./chat , entonces se vera ./chat/login .
3. Crea una base de datos de mysql y asegura que el usuario que se conecta a esa base de datos tenga los permisos siguientes: SELECT, CREATE,INSERT,UPDATE,DELETE,FILE.
4. Ahora abre el documento php localizado en ./login/settings.php ,edita los siguientes parámetros: $hostServer=”localhost”; // la direccion del servidor mysql.
$MysqlUser=”phpfreechat”; // el nombre del usuario de mysql.
$MysqlPass=”somepass”; // la clave de usuario del msql.
$DataBaseName=”MiBaseDeDatos”; // cambia a la base de datos que creaste en el paso 3.
5. Una ves tienes todo creado, base de datos y sabes que el usuario con el cual te conectaras a la base de datos tiene suficiente permisos, seguimos.
6. Dirígete a tu website y instala las tablas en la base de datos yendo a ejemplo: http://miwebsite.com/chat/login/install.php .
7. Si todo salio bien este habrá instalado las tablas automáticamente y te habrá dicho esto, además te mostrara el enlace a el login.php , si te da algún error entonces revisa todo los pasos otra vez.
8. ahora en el folder ./login se encuentra un documento llamado index.phpfreechat, re/nombralo a index.php y sube lo o arrástralo a la raíz de tu chat reescribiendo en antiguo por la versión nueva , este paso es muy importante porque se hace pruebas de validación a el usuario.
9. Echo todo lo anterior y con un nombre ya registrado , identificate si todo coincide el chat te dirigirá al chat con tu nick. ahora solo abre settings.php y edita el administrado el lenguaje y otros parámetros .

Todo esta completado, si quieres probar el chat y el sistema de registracion; sigue este enlace a el chat que esta instalado en este sitio.. dale clic al enlace DEMO CHAT usuario anónimo esta habilitado.

Sugerencias o problemas con el script por favor házmelo saber.. gracias

Si quieren chequear el code:
[php]
<?php
/**
* Created by Neu Valle Aka UTAN, RE*S.T.A.R.S.*2 emails:[email protected], [email protected].
* features are: checks username is in use, email in use
* checks username minimun characters, checks password minimun length,
* checks maximun username characters, guest login.
* Password and usernames are encrypted with sha1 one way hashing and salted.
* Created specially for phpfreechat, forviden the use in other project without explicit permition.
* If you like the script, I only ask to put a link back to my sites radioscatrachas.info, vcomputadoras.com
*/
require_once(‘settings.php’);

if(!isset($_SESSION)){
session_start();}

function IsAuthorized(){
// N_V- lets call the database.
global $connect,$DataBaseName;
// N_V- lets check if at least we got some session to play with.
if(isset($_SESSION[‘loggeduser’]))
{
// N_V- we set the username from session loggeduser to check in mysql
$username=$_SESSION[‘loggeduser’];
// N_V- check if connected.
if($connect)
{
// N_V- We dont know if someone can inject something in the session, so lets clean for Mysql injection
$username=mysql_real_escape_string(stripslashes($username));
mysql_select_db($DataBaseName, $connect);
$query = “SELECT salted FROM $DataBaseName WHERE username=’$username'”;
$result= mysql_query($query);
while($row=mysql_fetch_array($result)){
$salted=$row[‘salted’];
}
// N_V- Since we made the firsts test with loggeduser session and we have got here
// N_V- we check if username that session holds is the same one we used
// N_V- in LoggedInUser function and we do so checking against the hashed name and the salt we saved in MSQL ..
if(sha1(sha1($username).$salted) == $_SESSION[‘hashedname’])
{
return $username;
mysql_close($connect);
}
}
}else
{
// N_V- check guestlogin session, not really important in security.
if(isset($_SESSION[‘guestlogin’]))
{
$GuestUsernick=$_SESSION[‘guestlogin’];
return $GuestUsernick;
}else
{
// N_V- none of them exist, then lets return false
return false;
}
}
}

function LoggedInUser($username,$password,$guestlogin,$remember){
global $MinUserlength,$MaxUserlength,$MinPasslength,$connect,$DataBaseName;
// N_V- check if connected.
if($connect)
{
// N_V- check if user is a guest to the system, if not ticked the box then he has a password
if($guestlogin != TRUE)
{
if(!empty($password))
{
/*If magic_quotes_gpc is enabled (good Idea, php.ini), first apply stripslashes() to the data.
Using this function on data which has already been escaped will escape the data twice. */
$username=mysql_real_escape_string(stripslashes($username));
$password=mysql_real_escape_string(stripslashes($password));// N_V- not needed we only checking $username var
$remember=mysql_real_escape_string(stripslashes($remember));// N_V- not needed
mysql_select_db($DataBaseName, $connect);
$query = “SELECT * FROM $DataBaseName WHERE username=’$username'”;
$result= mysql_query($query);
// N_V- check is a username exist in database, if not give then an error
// N_V- otherwise he wouldnt get any response from script, because the username doesnt exist..
if(mysql_num_rows($result) < 1)
{
// N_V- lets give it a simple error if no username exist, no more info to them.
echo ‘<p id=”error”>Sorry username and or password are incorrept.</p>’;
}
// N_V- lets iterate tru users table and return it into array.
while($row=mysql_fetch_array($result)){
// N_V- lets put the array results in variables for easy understanding, I like simple stuff
$sqlUsername=$row[‘username’];
$sqlhashedname=$row[‘hashedname’];
$sqlEncryptedPass=$row[‘password’];
$sqluserID=$row[‘ID’];
// N_V- lets compare the password we got from form, double hash it and salt it..
$password=sha1(sha1($password).$row[‘salted’]);
// N_V- then compare the one we got when we registered..
if($password == $sqlEncryptedPass)
{
// N_V- check if remember box is ticked and put it then in cookies
// N_V- I have problems with cookie errors, can write cookie because header is already sent..
// N_V- in the meantime, phpfreechat dont like other thing but session cookies, so wont do.
/*if($remember == TRUE){
$time=time()+3600000*24;
$username=$sqlUsername;
$hasedname=$sqlhashedname;
setcookie(“userlogged”,$username,$time);
setcookie(“hashed”,$hasedname,$time);
}else{*/
// N_V- here we put it in the session
$_SESSION[‘loggeduser’]=$sqlUsername;
$_SESSION[‘hashedname’]=$sqlhashedname;
$_SESSION[‘ID’]=$sqluserID;
mysql_close($connect);
echo “<script>location.href=’../’</script>”;
//echo “<p id=\”okgo\”>Corrept you are logged_in now <span class=\”highlight\”>$sqlUsername</span>.</p>”;
// N_V- bracket part of the $remember if}
}else{
// N_V- error the pass doesnt match really..
echo ‘<p id=”error”>Sorry username and or password are incorrept.</p>’;
mysql_close($connect);
}
}
}else{
echo’<p id=”error”>Please fill up the password field.</p>’;
}
}else{
// N_V- if he thicked he is trying to be guest, lets check username is registered already.
if(!IfUserExist($username)){
if(strlen($username) >= $MinUserlength){
if(strlen($username) <= $MaxUserlength){
$username=htmlentities(stripslashes($username));
// N_V- we dont want this again rigth even if he is a guest.
$NotwantedStrings=array(
‘,’,’`’,’|’,’~’,’!’,’#’,’$’,’%’,’^’,’&’,’*’,'(‘,’)’,’-‘,’+’,'{‘,’}’,'[‘,’]’,’?’,’@’,’.’,’<’,’>’,’=’
);
$ReplacewithString=’_’;
$username=filter_var(str_replace($NotwantedStrings,$ReplacewithString,$username),FILTER_SANITIZE_STRING);
$_SESSION[‘guestlogin’]=”[$username]”;// N_V- [] prefix so we identify this guest..
$guestlogin=$_SESSION[‘guestlogin’];
echo “<script>location.href=’../’</script>”;
// echo “<p id=\”okgo\”>Corrept you are logged_in now <span class=\”highlight\”>$guestlogin</span>.</p>”;
}else{
echo “<p id=\”error\”>Guest login nikname is too long, please choose a shorter one less than $MaxUserlength words..</p>”;
}
}else{
echo “<p id=\”error\”>Guest login nikname is too short, please choose one of at least $MinUserlength words..</p>”;
}
}else{
echo ‘<p id=”error”>Sorry cant use that nickname.</p>’;
}
}
}else
{
// N_V- connection problem we die and then tell the user.
die(‘<p id=”error”>Error: </p>’ . mysql_error());
}
}

function IfUserExist($username){
// N_V- lets call the database.
global $connect,$DataBaseName;
// N_V- check if connected.
if($connect)
{
$username=mysql_real_escape_string(stripslashes($username));
mysql_select_db($DataBaseName, $connect);
$query = “SELECT username FROM $DataBaseName WHERE username=’$username'”;
$result= mysql_query($query);
if(mysql_num_rows($result) > 0)
{
return true;
mysql_close($connect);
}else{
return false;
}
}else{
die(‘<p id=”error”>Error: </p>’ . mysql_error());
}
}

function IfEmailExist($email){
// N_V- lets call the database.
global $connect,$DataBaseName;
// N_V- check if connected.
if($connect)
{
$email=mysql_real_escape_string(stripslashes($email));
mysql_select_db($DataBaseName, $connect);
$query = “SELECT email FROM $DataBaseName WHERE email=’$email'”;
$result= mysql_query($query);
if(mysql_num_rows($result) > 0)
{
return true;
mysql_close($connect);
}else{
return false;
}
}else{
die(‘<p id=”error”>Error: </p>’ . mysql_error());
}
}

function RegisterUser($username, $password, $email){
global $MinUserlength,$MaxUserlength,$MinPasslength,$connect,$DataBaseName;;
$salted=saltedPass();

// N_V- check if connected.
if($connect)
{
// N_V- minimun username length is checked here
if(strlen($username) >= $MinUserlength)
{
if(strlen($username) <= $MaxUserlength)
{
// N_V- minimun password length is checked here
if(strlen($password) >= $MinPasslength)
{
// N_V- check if email exist here
if(!IfEmailExist($email))
{
// N_V- check if username exist here
if(!IfUserExist($username))
{
// N_V- lets clean up a litle bit,check for hacking attempts and mysql injection on username,password and email.
$username =mysql_real_escape_string(stripslashes($username));
$password=mysql_real_escape_string(stripslashes($password));
// N_V- We dont want this string in the usernick rigth?
$NotwantedStrings=array(
‘,’,’`’,’|’,’~’,’!’,’#’,’$’,’%’,’^’,’&’,’*’,'(‘,’)’,’-‘,’+’,'{‘,’}’,'[‘,’]’,’?’,’@’,’.’,’<’,’>’,’=’
);
$ReplacewithString=’_’;
$username=filter_var(str_replace($NotwantedStrings,$ReplacewithString,$username),FILTER_SANITIZE_STRING);
$hashedname=sha1($username);
$email=mysql_real_escape_string(stripslashes($email));
// N_V-lets encrypt form input password and username
$hashedname=sha1(sha1($username).$salted);
$password= sha1(sha1($password).$salted);

// N_V- once cleaned lets insert it into database
mysql_select_db($DataBaseName, $connect);
$SqlWrite=mysql_query(“INSERT INTO $DataBaseName(username,hashedname,password,salted,email)
VALUES(‘$username’,’$hashedname’,’$password’,’$salted’,’$email’)”);
if (!$SqlWrite)
{
die(‘<p id=”error”>Error: </p>’ . mysql_error());
}
mysql_close($connect);
// N_V- once register is susscess send them to the login page.
echo “<script>location.href=’./login.php’</script>”;
echo “<p id=\”okgo\”>You have been registered sussefuly <span class=\”highlight\”>$username</span>.</p>”;
}else{
echo “<p id=\”error\”>Sorry <span class=\”highlight\”>$username</span> is registered already..</p>”;
}
}else{
echo “<p id=\”error\”>Sorry the email: <span class=\”highlight\”>$email</span> is already in use..</p>”;
}
}else{
echo “<p id=\”error\”>Choose a password at least <span class=\”highlight\”>$MinPasslength</span> word long please!..</p>”;
}
}else{
echo “<p id=\”error\”>Your username cannot be more that <span class=\”highlight\”>$MaxUserlength</span> characters!</p>”;
}
}else{
echo “<p id=\”error\”>Choose a username at least <span class=\”highlight\”>$MinUserlength</span> word long please!..</p>”;
}
}else
{
die(‘<p id=”error”>Error: </p>’ . mysql_error());
}
}

function saltedPass(){
$salted = ”;
// N_V-lets create our 3 words salt.
for ($i = 0; $i < 3; $i++)
{
$salted .= chr(rand(35, 126));
}
return $salted;
}
?>
[/php]
register.php
[php]
<?php
require_once(‘functions.php’);
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html lang=”en-US” xml:lang=”en-US” xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title><?php echo $rftitle; ?></title>
<link rel=”stylesheet” href=”login.css” type=”text/css” />
</head>
<body>
<div id=”register_form”>
<form class=”register_form” action=”register.php” method=”post”>
<h5 class=”welcome”><?php echo $rfH5title; ?></h5>
<span class=”rform”><?php echo $rfnick; ?></span> <input type=”text” name=”username” />
<br />
<span class=”rform”><?php echo $rfpass; ?><span> <input type=”password” name=”password” />
<br />
<span class=”rform”><?php echo $rfrpass; ?><span> <input type=”password” name=”repassword” />
<br />
<span class=”rform”><?php echo $rfmail; ?></span> <input type=”text” name=”email” />
<br />
<?php echo $rfrfield; ?>
<input type=”submit” value=”Submit” />
<input type=”hidden” name=”submitted” value=”true” />
<?php echo $rfp; ?>
<?php
// N_V- lets put all Post array in variables for easy understanding
$username=trim($_POST[‘username’]);
$password=trim($_POST[‘password’]);
$repassword=trim($_POST[‘repassword’]);
$email=trim($_POST[’email’]);
if($_POST[‘submitted’] == “true”)
{
if(empty($username))
{
echo ‘<p id=”error”>Please fill up the username field.</p>’;
}elseif(empty($password)){
echo’<p id=”error”>Please fill up the password field.</p>’;
}elseif(empty($repassword)){
echo’<p id=”error”>Please fill up the repassword field.</p>’;
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo ‘<p id=”error”>E-mail, is invalid.</p>’;
}
// N_V- check if password match, could also been done in the RegisterUser function
elseif($password != $repassword){
echo ‘<p id=”error”>The password doesnt match, please retype it again!!</p>’;
}else{
RegisterUser($username, $password, $email);
}
}
?>
<?php echo $phpfreechatlogo; ?>
</form>
</div>
</body>
</html>
[/php]
login.php
[php]
<?php
require_once(‘functions.php’);
if(isset($_SESSION[‘loggeduser’]) OR ($_SESSION[‘guestlogin’])){setcookie(session_name(), ”, time()-42000, ‘/’);}
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html lang=”en-US” xml:lang=”en-US” xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title><?php echo $lftitle; ?></title>
<link rel=”stylesheet” href=”login.css” type=”text/css” />
</head>
<body>
<div id=”login_form”>
<form class=”login_form” action=”<?php $PHP_SELF; ?>” method=”post”>
<h5 class=”welcome”><?php echo $lfH5title; ?></h5>
<span class=”lform”><?php echo $lfnick ;?></span> <input type=”text” name=”username” />
<br />
<span class=”lform”><?php echo $lfpass; ?></span> <input type=”password” name=”password” />
<br />
<?php if($guestlogin){
echo “<span class=\”lform\”>$lfguest</span><input type=\”checkbox\” name=\”guestlogin\” value=\”$guestlogin\” /><br />”;
$guestlogin=trim($_POST[‘guestlogin’]);
} ?>
<input type=”hidden” name=”submitted” value=”true” />
<input type=”submit” value=”Submit” />
<?php echo $lfp; ?>

<?php
$username=trim($_POST[‘username’]);
$password=trim($_POST[‘password’]);
$remember=trim($_POST[‘remember’]);

if($_POST[‘submitted’] == “true”)
{
if(empty($username)){
echo’<p id=”error”>Please fill up the username field.</p>’;
}else{
LoggedInUser($username, $password,$guestlogin,$remember);
}
}
?>
<?php echo $phpfreechatlogo; ?>
<form>
</div>
</body>
</html>
[/php]
login.css
[css]
/*
*Created by Neu Valle Aka utan, re*s.t.a.r.s.*2
*This is the css for the login and registration form
*/
#error{
color:red;
}
#okgo{
color:#666699;
}
.w-h{
color:#CCFF99;
font-size:13px;
}
.w-p{
color:#FFFF66;
font-size:12px;
}
.highlight{
color:blue;
font-size:14px;
}
.rform{
color:#9966FF;
font-size:13px;
}
.lform{
color:#9966FF;
font-size:13px;
}
body{
background-color:#330000;
background-image:url(‘./img/dgren002.jpg’);
padding:0;
margin:0;
}
.welcome{
text-align:center;
color:#666699;
}
/*style for Registration form*/

#register_form{
background-color:#330000;
background-image:url(‘./img/dgren007.jpg’);
position:absolute;
*height:400px;
top:50px;
left:430px;

}
.register_form{
border: 1px solid #666699;
padding: 5px;
*height:390px;
width:150px;
}
.register_form input{
}
.register_form p{
font-size:12.5px;
color:#666699;
}
.register_form a{
text-decoration:none;
font-size:12px;
color:#666699;
}
.register_form a:hover{
color:#FF6666;
text-decoration:underline;
}
.phpfreechatlogo{
background-image:url(‘./img/logo2_80x15.png’);
margin-left:70px;

}
/*style for login form*/
#login_form{
background-color:#330000;
background-image:url(‘./img/dgren007.jpg’);
position:absolute;
top:50px;
left:430px;
}
.login_form{
border: 1px solid #666699;
padding: 5px;
width:150px;
}
.login_form input{
}
.login_form p{
font-size:12.5px;
color:#666699;
}
.login_form a{
text-decoration:none;
font-size:12px;
color:#666699;
}
.login_form a:hover{
color:#FF6666;
text-decoration:underline;
}

[/css]
index.phpfreechat to be renamed for index.php and placed in /chat
[php]
<?php
require_once(‘./login/functions.php’);
require_once dirname(__FILE__).”/src/phpfreechat.class.php”;
// we get from function IsAuthorized() the nick that the session holds
// dont discriminate between both guest and registered.
if(IsAuthorized()){$phpfreechatnick=IsAuthorized();}else{header(‘Location:./login/login.php’);}
$params = array();
$params[“title”] =$ChatTitle;
$params[‘channels’]=$ChatChannel;
$params[“nick”] =$phpfreechatnick; // setup the intitial nickname
if(!isset($_SESSION[‘guestlogin’]) && ($phpfreechatnick == $administrator)){$params[“isadmin”] = TRUE;}
$params[“height”] = “$ChatHeight.px”;
$params[“frozen_nick”] =$frozen_nick;
$params[“max_nick_len”] = $maxnicklen;
$params[“max_msg”] = $maxmessage;
$params[“max_displayed_lines”] = $maxdisplaylines;
$params[“short_url”] = $shorturl;
$params[“short_url_width”] = $shorturlwidth;
$params[‘clock’] = $showclock;
$params[‘theme’]= $ChatTheme;
$params[‘firstisadmin’] =FALSE;
//$params[“isadmin”] = true; // makes everybody admin: do not use it on production servers 😉
$params[“serverid”] = md5(__FILE__); // calculate a unique id for this chat
$params[“debug”] = false;
$chat = new phpFreeChat( $params );

?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
<html>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
<title><?php echo $params[“title”]; ?></title>
<link rel=”stylesheet” title=”classic” type=”text/css” href=”style/generic.css” />
<link rel=”stylesheet” title=”classic” type=”text/css” href=”style/header.css” />
<link rel=”stylesheet” title=”classic” type=”text/css” href=”style/footer.css” />
<link rel=”stylesheet” title=”classic” type=”text/css” href=”style/menu.css” />
<link rel=”stylesheet” title=”classic” type=”text/css” href=”style/content.css” />
<link rel=”stylesheet” title=”classic” type=”text/css” href=”./login/login.css” />
</head>
<body>

<div class=”header”>
<img alt=”phpFreeChat” src=”style/logo.gif” class=”logo2″ />
</div>

<div class=”menu”>
<div style=”background-color:#669933;”>
<p class=”sub title”><?php echo $phpfreechatnick; ?></p>
<?php if(!isset($_SESSION[‘loggeduser’])){
echo “<h4 class=\”w-h\”>Welcome $phpfreechatnick</h4>”;
echo ‘<p class=”w-p”>You are in the chat as guest.</p>’;
echo ‘<p class=”w-p”>Please <a href=”./login/login.php” onclick=”pfc.connect_disconnect()”>Login</a></p>’;
}else{
echo “<h4 class=\”w-h\”>Welcome $phpfreechatnick</h4>”;
echo ‘<p class=”w-p”>Thank you enjoy the chat.. <a href=”./login/login.php” onclick=”pfc.connect_disconnect()” >Logout</a></p>’;
}
?>
</div>
<ul>
<li class=”sub title”>General</li>
<li>
<ul class=”sub”>
<li class=”item”>
<a href=””>Demos</a>
</li>
<?php if (file_exists(dirname(__FILE__).”/checkmd5.php”)) { ?>
<li>
<a href=””>Check md5</a>
</li>
<?php } ?>
<!–
<li class=”item”>
<a href=”admin/”>Administration</a>
</li>
–>
</ul>
</li>
<li class=”sub title”>Documentation</li>
<li>
<ul>
<li class=”item”>
<a href=””>Overview</a>
</li>
<li class=”item”>
<a href=””>Quickstart</a>
</li>
<li class=”item”>
<a href=””>Parameters list</a>
</li>
<li class=”item”>
<a href=””>FAQ</a>
</li>
<li class=”item”>
<a href=””>Advanced configuration</a>
</li>
<li class=”item”>
<a href=””>Customize</a>
</li>
</ul>
</li>
</ul>
<p class=”partner”>
<a href=”http://www.phpfreechat.net”><img alt=”phpfreechat.net” src=”style/logo_88x31.gif” /></a><br/>
</p>
</div>

<div class=”content”>
<?php $chat->printChat(); ?>
</div>

<div class=”footer”>
<span class=”partners”>phpFreeChat partners:</span>
<a href=””>jeux gratuits</a> |
<a href=””>jeux flash</a> |
<a href=””>pronofun</a> |
<a href=””>areno</a> |
<a href=””>micropolia</a> |
<a href=””>zeitoun</a> |
<a href=””>federation</a>
</div>

</body></html>

[/php]

31 thoughts on “Registration system for phpfreechat

  1. hola: yo tengo un sitio de prueba
    localhost/chat/login
    y cuando hago un login me lleva a
    localhost/chat
    pero cuando copie login.php hacia localhost/ chat lo remonbre como index.php y renombre la pagina index.php por chat.php , al hacer el login me lleva a localhost, o sea fuera de la subcarpeta de chat ¿ que me falta cambiar en los archivos para que me lleve hacia localhost/chat? . gracias

  2. Hola,

    Necesito ver el código, para poder ver de que se trara..
    Ademas e echo una nueva versión de login para phpfreechat..
    con multilenguage disponible..

    espero respuesta.

  3. Hola amigo!!!
    Excelente!!!
    A mi me funciono perfectamente!!!
    Gracias, me gustaria estar en contacto contigo, pues la verdad no se nada de php y ,me gustaria ver si me puedes seguir ayudando al menos con este chat.
    Gracias de nuevo!!!.

  4. Hay un error en un comentario en el archivo settings.php línea 33 dice:
    ” // N_V- set the name of the room put it between (‘hello,room’)”
    y debe ser:
    “// N_V- set the name of the room put it between (‘hello’,’room’)”

    Debes declarar los canales entre apostrofes individuales y no dentro del mismo.
    Saludos

  5. Gracias,

    Si olvide colocar ” en ambos valores del array..

    Te informo que esta versión esta deprecada, no la estoy manteniendo puesto que e echo otra con algunos otros avances..
    Y otra versión mas actual el cual tiene multilenguage agregado…

    aqui esta el enlace, ojo esta no tiene multilenguage incluido:
    http://www.phpfreechat.net/forum/viewtopic.php?id=4678

    Cuando quieras solo pregunta y te ayudo.
    gracias

  6. buenas, se que lo que te voy a decir te va a sonar muy raro, pero he descargado la version 1.3 y no se por donde empezar a instalarla, te rogaría ponerte en contacto conmigo a ver si me podias ayudar a instalar he integrar este chat en una web de socialengine 4.1.x. muchas gracias por adelantado, es que llevo ya tiempo queriendo ponerlo y no encuentro por donde empezar como te he comentado antes. un saludo y menos mal que hay gente como tu que ayuda a la gente como yo.

  7. Hola tito,

    Ahora mismo no tengo mucho tiempo libre pero si tienes alguna duda no dudes en postear aquí y te echo la mano sin ningún temor.

    gracias

  8. muchas gracias, me podrías decir que archivos tengo que modificar el código? lo que necesito es integrarla con mi base de datos y poner un moderador, pero sin invitados, que la gente entre logueada desde mi web directamente al chat. si me dijeras que parte del código es y un ejemplo de lo que debería de poner te lo agradecería, ya que el aspecto quiero dejar el básico. En cuanto a las medidas del chat ya hablaríamos mas adelante una vez integrado con mi BBDD.
    Yo subo los archivos a mi servidor le cambio las protecciones a las carpetas requeridas y a partir de ahí no se que mas tengo que hacer. Te agradecería el máximo de ayuda ya que no tengo ni idea y en teoría es sencillo por lo que he podido leer en estos últimos meses. muchísimas gracias de verdad.;)

  9. Ok,

    Pues te diré, te saldría mas fácil conectarlo a tu CMS que estés usando, en vez de editar el

    login system, pues seria mas fácil, es mucho trabajo de

    edición, no vas editar tres lineas..

    La verdad mira la manera de conectar el nick de tus usuarios conectados que editar mi script..

    El login system fue echo para aquellas personas que no tengan un sistema de registracion lo puedan usar fácil y rápido..

    andaré por acá.

  10. Me podrías indicar como conectarlo con el CMS? o por lo menos como hacer para que se puedan ver los perfiles? muchas gracias.

  11. Estas en lo correcto,

    No tiene mysql y not tiene un systema login , así que cree uno a este para la comunidad..

    Sin embargo este esta deprecado…

  12. He visto que has actualizado el sistema de login. ¿Como se accede ahora al panel de administración?

    Quiero hacer op a la gente y no se como.

    Gracias.

  13. Hola, tengo un chat grande en Argentina y decidi cambiar la red irc por phpfreechat, me gustaria contactarme con vos para aclarar algunas dudas y si es posible podria darte backlinks de tus sitios de chat en el mio, vi las modificaciones que hiciste y realmente son muy necesarias y buenas, saludos espero la respuesta

  14. Hola,

    también me gustaría pasar backlinks contigo, aunque algo te puedo decir que phpfreechat no esta acto para tener muchos usuarios, por eso tuve que codear un chat usando comet technology y ahora estoy creando otro basado en socket, con node y socket.io ..

  15. Hola, entonces no podria poner el chat en mi web? Me habia gustado mucho, estuve varias horas trabajando con la info del foro para dejarlo a mi gusto, yo podria llegar a picos de 200 usuarios, me gustaria que me indiques que hacer y respecto de los backlinks mandame un email privado

  16. Si,
    Como te digo, los chat que usa el viejo método de ajax httrequest continuan polling al servidor lo que hace que tu servidor se cargue.. Existe el comet y el push, este en vez que el cliente pida información, este cuando tiene nueva información la manda a todos los usuarios conectado a esta.. haciendo así el system performer.. pase por tu chat is es un IRC lo cual acepta infinidad de usuarios dependiendo solamente del poder del servidor..
    La única opción es consiguiendo un chat basado en alguna tecnología que te comente..

  17. Hola, mire, acabo de descargarme el chat y lo he subido a Hostinger pero ahora no se hacer eso de dar permiso 777 a el forder. ¿me lo puedes explicar detalladamente? GRACIAS

  18. Estimado, me parece excelente tu script, por favor dime: cómo desactivo la opción de usuario anónimo que imagino debe ser entrar como invitado. Quiero que sólo entren los usuarios que estoy insertando con nick y contraseña copiados a mi nueva base de datos.

  19. Oh gracias, exelente que todabia exista personas phpfreechat..

    Te digo en settings.php existe esta variable:
    [php]
    $guestlogin = true;// N_V- Set it as FALSE to disable the guest login.[/php]

    Cambiala a FALSE y esta evitara que los anonimos entren al chat..

    Gracias por tu comentario.

  20. Hola, instale el script y necesito ayuda. ¿Que puedo hacer como administrador del chat? Lo otro necesito crear usuarios falsos que aparezcan como conectados para incrementar las visitas. ¿Como lo hago? Saludos,

  21. Hola,

    Lamentablemente phpfreechat esta casi muerto, y en realidad ya no hay soporte para este..

    Pero aun funciona me parece..

    gracias por comentar.

  22. Hola que tal:
    Disculpa la Molestia, de verdad necesito ayuda en este tema, m gustaria saber si puedes apuntarme a algun tutorial o de donde puedo obtener el codigo para poder crear snippets desplegables con categorias para diferentes salas de chat en este sistema, obviamente dichos snippets se verian despues de qu ya te haz logueado con el sistema que nos has brindado, muchas gracias de antemano.
    saludos.

  23. @delord,

    Y que sistema de chat utilizas.. ademas este Login system esta depreciado ..

    Tengo algo de tiempo que no lo actualizo..

  24. Podrias actualizar el codigo completo, esta muy abandonado el PHPFREECHAT, es mas en la version 1.7 en algunas ocaciones no funcionan los chat privados y la nueva version 2.x no la puedo instalar me da un error

    “.htaccess must be allowed on your server (AllowOverride All) and mod_rewrite must be enabled on your server and correctly configured (“RewriteBase” could be adjusted in server/.htaccess file)”

    Espero que puedas ayudarnos, veo que tenes muy conocido el codigo de este chat

  25. @Matias , lo tenia ahora ya ni lo recuerdo…
    Puesto que estaba plagado de problemas me emprendí hacer uno desde el principio, basado en Node.js lo cual funciona a la perfección.

  26. UTAN no entiendo mucho de programacion, podrias compartir tu nuevo chat, si esta en tu sitio perdon aun no recorri todo el contenido, necesito un chat para un web que estoy armando, desde ya muchas gracias por responder!

  27. @Matias, NO el código es propiedad privada pero si nos ponemos de acuerdo podría dejar que el dominio que estés montando accese mi servidor con el cliente del chat.

Comments are closed.