<?php

define
("NICKLEN"30);
define("SERVEUR""127.0.0.1");
define("PORT"6966);
define("PASSWD""pupuce");

function 
db_query($nick$pass$query)
{
/*
 * array avec résultat ou élément 'erreur' set.
 */

    
$fp fsockopen(SERVEURPORT$errno$errstr30);

    if (
$fp == NULL/* connexion a échoué */
    
{
        echo 
"$errstr ($errno)";
        return -
2;
    }

    if(
$nick != "" && $pass != "") {
        
fputs($fp"PASS ".PASSWD."\r\nLOGIN ".$nick." ".$pass." ".$REMOTE_ADDR."\r\n".$query."\r\n");
    } else { 
/* register */
        
fputs($fp"PASS ".PASSWD."\r\n".$query."\r\n");
    }

    
$tab = array();

    while(
$get trim(fgets($fp1024)))
    {
        
$res strtok($get' ');
        if(
$res == "OK") break;
        
$tab[$res] = substr(strchr($get' '), 1);

        if(
$res == "erreur") break;
        if(
$get[0] == '=') { /* parse different items */
            
$fl explode(' 'substr($get1));

            foreach(
$fl as $st) {
                
$tmp explode('='$st);
                
$tab[$tmp[0]] = $tmp[1];
            }
            unset(
$tab[$res]);
        }
    }
    return 
$tab;
}

function 
db_chan_isreg($nick$pass$chan)
{
    
$res = array();
    if(!
$chan || $chan[0] != '#'$res['erreur'] = "Nom de salon invalide.";
    else 
$res db_query($nick$pass"channel ".$chan);
    return 
$res;
}

/* db_getchaninfo(,, "#la", "all"|"topic modes owner");
 */
function db_getchaninfo($nick$pass$chan$arg)
{
    
$res = array();
    if(!
$chan || $chan[0] != '#'$res['erreur'] = "Nom de salon invalide.";
    else 
$res db_query($nick$pass"channel ".$chan." info ".$arg);
    return 
$res;
}


/******* Exemple ********/

function disp_access($nick$pass$chan)
{
    
$tab db_getchaninfo($nick$pass$chan"access");

    if(isset(
$tab['erreur']))
    {
        if(
$tab['erreur'] == "Salon non reg"erreur_chan_not_reg($chan);
        else echo 
"Erreur: ".$tab['erreur']."<br>";
        return;
    }

    if(
$tab['accesscount'])
    {
        echo 
'<center><big><b>Access List of '.$chan.'</b></big></center><br><br>';
        echo 
'<Table border="1" bordercolor="black">';
        echo 
'<tr><td>Username</td><td>Level</td><td>Lastseen</td><td>Flag</td><td>Infoline</td></tr><br>';

        
$total $tab['accesscount'];
        
$i 1;
        while(
$i <= $total) {
            
$info strchr($tab['access'.$i], ':');
            
$ac explode(' '$tab['access'.$i]);
            echo 
'<tr><td>'.$ac[0].'</td><td>'. ($ac[1] >= 450 ? ("<font color=red><b>".$ac[1]."</b></font>") : $ac[1]).'</td><td>'.$ac[2].'</td><td>'.$ac[3].'</td><td>'. ($info != ':' substr($info1, -1) : "<b>Aucune</b>") .'</td></tr><br>';
            
$i++;
        }
        echo 
'</table>';
    }
    else echo 
'No Access.<br>';
    return;
}

?>