Asta e tot scriptul de autentificare , dar merge ca naiba
<?

$db_hostname = 'localhost';
$db_login = 'xxx';
$db_password = 'xxxx';
$db_database = 'xxx_db';
$db_tablename = 'auth';
$db_username_field = 'username';
$db_password_field = 'password';
$db_timefield = 'timestamp';
$sc_host = 'xxxxx.ro';
$sc_port = 'xxxx';
$time_out = '30';

set_time_limit(0);
ignore_user_abort();
register_shutdown_function("afara");

function afara() {
  global
$shutdown_flag,$db_tablename,$db_timefield,$db_username_field,$PHP_AUTH_USER
;
  $shutdown_flag=1;
  @mysql_query("UPDATE $db_tablename SET $db_timefield=0 WHERE
$db_username_field='$PHP_AUTH_USER'");
  @fclose($sp);
}

if (!isset($PHP_AUTH_USER)) {
  header("WWW-Authenticate: Basic realm=\"Autentificare WEBcast Media Radio
Station\"");
  header("HTTP/1.0 401 Neautorizat");
  echo "Acest serviciu necesita utilizator/parola.\n";
  exit;
}

[EMAIL PROTECTED]($db_hostname, $db_login, $db_password) or die("Cannot
connect to authentication database to verify login.");
@mysql_select_db($db_database) or die("Unable to select database
$db_database.\n");

$query="SELECT $db_timefield AS lastupdate FROM $db_tablename WHERE
$db_username_field='$PHP_AUTH_USER' AND $db_password_field='$PHP_AUTH_PW'";

$matches=0;
$lastupdate=0;
[EMAIL PROTECTED]($query);
if([EMAIL PROTECTED]($res)) {
  $lastupdate=$obj->lastupdate;
  $matches=mysql_num_rows($res);
}

if(!$matches) {
  header("WWW-Authenticate: Basic realm=\"Autentificare WEBcast Media Radio
Station\"");
  header("HTTP/1.0 401 Neautorizat");
  echo "Acest serviciu necesita utilizator/parola.\n";
  exit;
}

if(time()-$lastupdate<600) {
  header("ICY 404 Acest cont este deja utilizat.  Asteptati 10 minute si
apoi incercati din nou.");
  exit("Acest cont este deja utilizat.  Asteptati 10 minute si apoi
incercati din nou.");
}

$sp = fsockopen($sc_host, $sc_port, &$errno, &$errstr, &$time_out);
if (!$sp) exit("Nu ma pot conecta la serverul WEBcast Media.\n");

//set_socket_blocking($sp,false);

fwrite($sp,"GET / HTTP/1.0\nUser-Agent:WEBcast Media Protected Radio
Station\nicy-metadata:1\n\n");

$sockack=0;

for ($i=0; $i<120; $i++) {
  if (feof($sp)) break;
  $str.=fread($sp,4096);
  usleep(200000);
  if (strpos($str,"\r\n\r\n")) break;
}


if(strpos($str,"\r\n\r\n")===false) exit("Nu ma pot conecta la stream-ul
serverului WEBcast Media.\n");
else {
  $head=substr($str,0,strpos($str,"\r\n\r\n"));
  $head=eregi_replace("ICY 200 OK\r\n","",$head);
  header($head);
}

flush();
echo substr($str,strpos($str,"\r\n\r\n")+4);
flush();
while(!$shutdown_flag) {
  $buf=fread($sp,4096);
  if (feof($sp)) $shutdown_flag=1;
  echo $buf;
  flush();
  usleep(75000);
  if(time()-$lasttime>300) {
    @mysql_query("UPDATE $db_tablename SET $db_timefield=".time()." WHERE
$db_username_field='$PHP_AUTH_USER'");
    $lasttime=time();
  }
}

?>


Raspunde prin e-mail lui