php geeft verkeerd result.

Status
Niet open voor verdere reacties.

djwouter

Gebruiker
Lid geworden
23 aug 2008
Berichten
142
ik ben met een script bezig ( zoals altijd ) maar nu zit ik met een HEEL raar en gek probleem....

dit wordt een overzicht van al onze servers van ons radio stationtjes waar de dj's naar toe kunnen verbinden en waar we ze er ook vanaf kunnen kicke ... maar hij geeft bij status (text) netjes aan server OFLINE maar bij het plaatje in status (1) het plaatje aan bezet... en bij server titel geeft hij aan dat server ofline is .... de server IS ofline ( er staat ook server in die wel online is en draait ) werkt wel gewoon goed....

PHP:
<?php
$shoutcast_servers_get = mysql_query("SELECT * FROM shoutcast_servers") 
or die(mysql_error());  
while($shoutcast_servers_get2 = mysql_fetch_array($shoutcast_servers_get)) {
	


          
$scip = $shoutcast_servers_get2['server'];
$scport = $shoutcast_servers_get2['port'];                  
$scpass = $shoutcast_servers_get2['pass'];  

$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 1);
 if(!$scfp) {
  $scsuccs=1;
$servertitle = "server is ofline"; 
$bitrate = "."; 
$status = "server is offline";
$scstatusimg = "ofline.png";

 }
if($scsuccs!=1){
 fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
 while(!feof($scfp)) {
  $page .= fgets($scfp, 1000);
 }
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define  xml elements
 $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE");
 $y=0;
 while($loop[$y]!=''){
  $pageed = ereg_replace(".*<$loop[$y]>", "", $page);
  $scphp = strtolower($loop[$y]);
  $$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
  if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
   $$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
//echo'$'.$scphp.' = '.$$scphp.'<br>';
  $y++;
 }
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
 $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
 $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
 $songatime = explode("<SONG>", $pageed);
 $r=1;
 while($songatime[$r]!=""){
  $t=$r-1;
  $playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
  $playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
  $song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
  $song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
  $song[$t] = urldecode($song[$t]);
  $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
 }
//end song info
fclose($scfp);
}

//display stats
if($streamstatus == "1"){
//you may edit the html below, make sure to keep variable intact

$status = "er wordt uitgezonden..";
$scstatusimg = "connected.png";
}
if($streamstatus == "0")
{
$servertitle = "geen uitzending"; 
$bitrate = ""; 
$status = "geen uitzending"; 
$scstatusimg = "noconnect.png";
}
?>
<tr>
    <td><?php print $shoutcast_servers_get2['server'] ; ?> </td>
    <td><img src="img/<?php print "$scstatusimg" ; ?>" width="44" height="59" /></td>
    <td><?php print $servertitle ; ?></td>
    <td><?php print $status ; ?></td>
    <td><?php print $bitrate ; ?></td>
    <td>
    <form name="kicksc" method="post" action="logged.php">
         
    <input name="actie" type="hidden" value="kicksc" /><input name="ip" type="hidden" value="<?php print  $scip ; ?>" /><input name="port" type="hidden" value="<?php print $scport ; ?>" /><input name="pass" type="hidden" value="<?php print $scpass ; ?>" /><input name="" type="submit" value="KICK" /> 
   </form> 
    </td>
    <td><?php print  $scip ; ?></td>
    <td><?php print $scport ; ?></td>
    <td><?php print $scpass ; ?></td>
  </tr>
<?php 



}
?>
 
U zult nu beter zien dat het fout gaat bij streamstatus wordt niet weergegeven
PHP:
<?php
$shoutcast_servers_get = mysql_query("SELECT * FROM shoutcast_servers") 
or die(mysql_error());
$myshoutcast=array(); 
while($shoutcast_servers_get2 = mysql_fetch_array($shoutcast_servers_get)) {        
	$scip = $shoutcast_servers_get2['server'];
	$scport = $shoutcast_servers_get2['port'];                  
	$scpass = $shoutcast_servers_get2['pass'];  
	$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 1);
	if(!$scfp) {
		$myshoutcast['scsuccs']=1;
		$myshoutcast['servertitle'] = "server is ofline"; 
		$myshoutcast['bitrate'] = "."; 
		$myshoutcast['status'] = "server is offline";
		$myshoutcast['scstatusimg'] = "ofline.png";
	}
	if($myshoutcast['scsuccs']!=1){
		fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
		while(!feof($scfp)) {
			$page .= fgets($scfp, 1000);
		}
		//<<<<<<<<<<<<<<<<<<<<<<<<<<<<part 1 >>>>>>>>>>>>>>>>//define  xml elements
		$loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE");
		$y=0;
		while($loop[$y]!=''){
			$pageed = ereg_replace(".*<$loop[$y]>", "", $page);
			$scphp = strtolower($loop[$y]);
			$$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
			if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
				$$scphp = urldecode($$scphp);
			// uncomment the next line to see all variables
			//echo'$'.$scphp.' = '.$$scphp.'<br>';
			$y++;
		}
		//end intro xml elements
		//<<<<<<<<<<<<<<<<<<<<<<<<<<<<part 2>>>>>>>>>>>>>>>>//get song info and history
		$pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
		$pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
		$songatime = explode("<SONG>", $pageed);
		$r=1;
		while($songatime[$r]!=""){
			$t=$r-1;
			$playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
			$playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
			$song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
			$song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
			$song[$t] = urldecode($song[$t]);
			$dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
			$dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
			$r++;
	 	}
		//end song info
		fclose($scfp);
	} 
	//display stats
	if($streamstatus == "1"){
		//you may edit the html below, make sure to keep variable intact 
		$myshoutcast['status'] = "er wordt uitgezonden..";
		$myshoutcast['scstatusimg'] = "connected.png";
	}
	if($streamstatus == "0"){
		$myshoutcast['servertitle'] = "geen uitzending"; 
		$myshoutcast['bitrate'] = ""; 
		$myshoutcast['status'] = "geen uitzending"; 
		$myshoutcast['scstatusimg'] = "noconnect.png";
	}
	?>
	<tr>
	    <td><?php print $shoutcast_servers_get2['server'] ; ?> </td>
	    <td><img src="img/<?php print $myshoutcast['scstatusimg'] ; ?>" width="44" height="59" /></td>
	    <td><?php print $myshoutcast['servertitle'] ; ?></td>
	    <td><?php print $myshoutcast['status'] ; ?></td>
	    <td><?php print $myshoutcast['bitrate'] ; ?></td>
	    <td>
	    <form name="kicksc" method="post" action="logged.php">
	         <input name="actie" type="hidden" value="kicksc" />
			 <input name="ip" type="hidden" value="<?php print  $scip ; ?>" />
			 <input name="port" type="hidden" value="<?php print $scport ; ?>" />
			 <input name="pass" type="hidden" value="<?php print $scpass ; ?>" />
			 <input name="" type="submit" value="KICK" /> 
	    </form> 
	    </td>
	    <td><?php print $scip ; ?></td>
	    <td><?php print $scport ; ?></td>
	    <td><?php print $scpass ; ?></td>
	  </tr>
	<?php 
}//103  !!!security!!!	alert socket  Tuned by Lieven
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan