problem debagiranja

poruka: 6
|
čitano: 1.250
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
problem debagiranja
pitanje

moze li neko slijedeci kod u php-u izdebagirati i doci do rijesenja ovog programa i novi kod atacirati kao rezultat ??  Zapelo je kod ove naredbe fsockopen  ....

 

Unaprijed Hvala

 

 

<?php

// Fill in your own server information here:
$host = "http://195.222.33.217";
$port = "8012";
$listenlink = 'http://195.222.33.217:8012/'; //make link to stream

$fp = @fsockopen($host, $port, $errno, $errstr, 30); //open connection
if(!$fp) {
$success=3; //se-t if no connection
}

if($success!=2){ //if connection
fputs($fp,"GET /7 HTTP/1.1\nUser-Agent:Mozilla\n\n"); //get 7.html
//echo $success;

while(!feof($fp)) {
$page = fgets($fp, 1000);
}

fclose($fp); //close connection
$page = ereg_replace(".*", "", $page); //extract data
$page = ereg_replace(".*", ",", $page); //extract data
$numbers = explode(",",$page); //extract data
$currentlisteners=$numbers[0]; //set variable
$connected=$numbers[1]; //set variable
echo $numbers;
}
if($connected==1){ //if DSP is connected
$wordconnected="yes";
echo $wordconnected;
}

//set variable
else { //if no DSP connection
$wordconnected="no"; //set variable
$peaklisteners=$numbers[2]; //set variable
$maxlisteners=$numbers[3]; //set variable
$reportedlisteners=$numbers[4]; //set variable
echo $wordconnected;
}

if($success!=2 && $connected==1){

// song information is splitted in artist - title:
// This requires consistent artist & title format (no ' - ' in title/artist)
// else you can use $numbers[6] as current song info below
$song=explode(" - ",$numbers[6]);

// strings can of course be replaced with your own bla
$string1= "Now playing on http://195.222.33.217:8081/ ::: ";
$string2= $song[0];
$string3= $song[1];
$string4= $song[2];
$string5= "[$currentlisteners/$maxlisteners users]";
  $string6= "Listener Peak";
}
else {
$string1= "The music station is";
$string2= "OFFLINE. ";
$string3= "Please return later. ";
$string4= " ";
$string5= " ";


}

echo $string1;
echo $string2. " ";
echo $string3. " ";
echo $string4. " ";
echo $string5. " ";


?>

 
0 0 hvala 0
17 godina
neaktivan
offline
problem debagiranja

na vrhu koda si stavi:

error_reporting (E_ALL | E_STRICT);
Takodjer u ovoj liniji makni znak @ ispred funkcije:

$fp = fsockopen($host, $port, $errno, $errstr, 30); //open connection

 

I ispod te linije dodaj:
echo "Errno [$errno]; Errstr [$errstr]";

I onda copy pastaj sve sta ti skripta napise....

 

Poruka je uređivana zadnji put ned 7.9.2008 12:52 (Jazzfan).
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: problem debagiranja
autorov komentar

Stavio sam ..... kao rezultat, program dadne ovo :

 

Errno [0]; Errstr []ArraynoThe music station isOFFLINE. Please return later. 

 

U Log fajlu error.log pojave se ove 3. greske: 

 

[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  2 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 40
[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  3 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 41
[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  4 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 42  

 

 

Moze, dalje pomoc ?

17 godina
neaktivan
offline
RE: problem debagiranja
ada kaže...

[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  2 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 40
[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  3 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 41
[Mon Sep 08 07:34:49 2008] [error] [client 127.0.0.1] PHP Notice:  Undefined offset:  4 in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 42  

 Vjerojatno ti je array $numbers prazan:

$page = ereg_replace(".*", "", $page); //extract data
$page = ereg_replace(".*", ",", $page); //extract data
$numbers = explode(",",$page); //extract data
$currentlisteners=$numbers[0]; //set variable
$connected=$numbers[1]; //set variable
...

Što radiš sa $page? Zamijeniš sve znakove sa "" pa opet sa ","? Iako je $page tada prazna?
<?= "hello world" ?>
16 godina
neaktivan
offline
RE: problem debagiranja
autorov komentar

$page = ereg_replace(".*", "", $page); //extract data
//$page = ereg_replace(".*", ",", $page); //extract data
$numbers = explode("",$page); //extract data
$currentlisteners=$numbers[0]; //set variable
$connected=$numbers[1]; //set variable
echo $numbers;

 

Greska : [Mon Sep 08 08:42:28 2008] [error] [client 127.0.0.1] PHP Warning:  explode() [<a href='function.explode'>function.explode</a>]: Empty delimiter in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Firma1\\w.php on line 29 

 

Znaci, prazan mi je delimiter:  $numbers = explode("",$page);  To znaci da je $ page   prazna, sad ne znam kako nije pokupio: $page = ereg_replace(".*", "", $page);

 

?

17 godina
neaktivan
offline
RE: problem debagiranja
prihvaćeno rješenje
ada kaže...

$page = ereg_replace(".*", "", $page); //extract data
//$page = ereg_replace(".*", ",", $page); //extract data

 Ovo je problem - ".*" je regex koji označava svaki znak između 0 i beskonačno puta, pa ta funkcija uvijek vraća "", bez obzira kakav $page bio.
Pretpostavljam da si taj cijeli kod kopirao od nekud... možda od tu:
http://forums.winamp.com/showthread.php?s=a7cfa04940a0eea2bbcd61e9c6af1492&postid=1480942
...pa pogledaj kako je tu rješeno.
<?= "hello world" ?>
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice