Song ID must be valid (niet opgelost)

PHP, HTML, Joomla, WordPress, etc..
jacksworld

Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

Ik ben nieuw en probeer sam aan de gang te krijgen.
Ik krijg ook steeds de foutmelding: Song ID must be valid
ondanks dat ik de wijzigen heb aangebracht zoals elders vermeld in req.php
wat kan ik fout doen

http://www.jacksworld.nl (sam)
http://www.jacksworldradio.eu (otsdj)

Sam versie 463
My SQL 5.1
Evertje

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Evertje »

Beste Jack,

Het kan verschillende oorzaken hebben, zou je je req.php hier willen plaatsen?!
jacksworld

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

Hier mijn req.php

Code: Selecteer alles

<?
 Def($samhost,$sam["host"]);
 Def($samport,$sam["port"]);
 Def($dedicated,false);
 
 if(empty($samhost)) DoError(800);
 //if(($samhost=="127.0.0.1") OR ($samhost=="localhost")) DoError(801);
 if(empty($songid)) DoError(802);
 
 settype($songid,"integer"); //Make sure songID is an integer to avoid SQL injection
 
 $host = $_SERVER['REMOTE_ADDR'];
 
 $request = "GET /req/?songID=$songid&host=".urlencode($host)." HTTP\1.0\r\n\r\n";
 
$xmldata = "";
$fd = @fsockopen($samhost,$samport, $errno, $errstr, 30);
//$fd = fopen("http://$samhost:$samport/req/?songID=$songID&host=".urlencode($host),"r");
//echo "fd=$fd";
if(!empty($fd))
{
 fputs ($fd, $request);
$line="";
  while(!($line=="\r\n"))
  { $line=fgets($fd,128); }    // strip out the header
  while ($buffer = fgets($fd, 4096))
 {  $xmldata  .= $buffer; }
 fclose($fd);
}
else DoError(803);

if(empty($xmldata)) DoError(804);
  
 //$xmldata = File2Str($url);
 
 //Header("Content-type:text/xml");
// echo $xmldata;
 
//#################################
//      Initialize data
//#################################
 $tree = XML2Array($xmldata);
 $request = Keys2Lower($tree["REQUEST"]);
 
 $code    = $request["status"]["code"];
 $message = $request["status"]["message"];
 $requestid = $request["status"]["requestid"];
 if(empty($code)) DoError(804);
 
if($requestid>0) 
{
 /*== If your database is located on a remote host, you must specify local SAM login details here ===*/ 
 $db = new DBTable();
 $db->connect($samlogin);
 $db->open("SELECT songlist.*, songlist.ID as songID FROM requestlist, songlist 
           WHERE (songlist.ID = requestlist.songID) AND (requestlist.ID = $requestid)",1);
           
if($song=$db->row())
{        
    if(!isset($song["songid"])) $song["songid"]=0;
    $song["requestid"] = $requestid;
    PrepareSong($song);
}       
 
} 
 

 if($code==200)
  require("req/req.success.html");
else
   DoError($code); 
  
function DoError($code)  
{
 global $samhost, $samport, $errno, $errstr;
 
 switch ($code)
 {
 // Level 1 errors
  case 600 : $message = "Aangevraagde verzoek is offline"; break;
  case 601 : $message = "Verzoek is kort geleden aangevraagd."; break;
  case 602 : $message = "Artiest is kort geleden aangevraagd."; break;
  case 603 : $message = "Het verzoek staat al in de playlist om gedraaid te worden."; break;
  case 604 : $message = "Sorry, Artiest staat al in de playlist om gedraaid te worden."; break;
  case 605 : $message = "Sorry, plaat staat al in de playlist om gedraaid te worden."; break;
  case 606 : $message = "Sorry, Artiest is al aangevraagd."; break;
  case 609 : $message = "Sorry, Het verzoek is kort geleden aangevraagd."; break;   
// Level 2 Errors
  case 700 : $message = "Geen juiste/foutieve verzoek."; break;
  case 701 : $message = "Banned - Impossible"; break;
  case 702 : $message = "Banned until mm:ss";  break;
  case 703 : $message = "Aangevraagde verzoek/plaat klopt niet.";  break;
  case 704 : $message = "Maximale verzoek bereikt, je kan maar 5 verzoeken per uur doen.";  break;
  case 705 : $message = "Maximale verzoek bereikt, je kan maar 15 verzoeken per dag doen."; break;
  case 706 : $message = "Verzoeken staan uit."; break;
  case 707 : $message = $request["status"]["message"]; break;
  case 708 : $message = "Verzoek is al aangevraagd door jouw.";  break;
  case 709 : $message = "Foutieve data. :(";  break;
  case 800 : $message = "SAM host klopt niet"; break;
  case 801 : $message = "SAM host kan geen 127.0.0.1 of localhost zijn"; break;
  case 802 : $message = "Song ID klopt niet.";  break;
  case 803 : $message = "Kan geen verbinding maken met $samhost:$samport. Station is waarschijnlijk niet on-line.<br>foutcode is $errstr ($errno).";  break;
  case 804 : $message = "Foutieve data. :(";  break;
} 
 
 require("req/req.failed.html"); 
 exit;
}
?>
Evertje

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Evertje »

Dat is de.. req/req.php toch?! Maar doet er niet toe..

Niets vreemds te zien aan je script, dus ik zou eventjes het volgende ondernemen..

Topic: Song ID must be valid (oplossing)
jacksworld

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

Dat heb ik al gewijzigd.(wat daar aangeraden word) kijk maar in bovenstaande.
Het ging daar om: $host = $_SERVER['REMOTE_ADDR'];

hier de req.php

Code: Selecteer alles

<?
 require_once("config.php"); 
 require_once("common/xml.php");
 
 if(empty($requestid))
   require_once("req/req.php");
 else
   require_once("req/req.dedication.php");
?>

en de  config.php

<?php
 
/* ## ======================================== ## */  
  $commonpath = "./common";
  
  //Station general details
  $station  = "Jacksworldradio Live";
  $email    = "jack@jacksworldradio.nl";
  $logo     = "images/logo.gif";
  
  $stationid   = 0;           //The ID of your registered station on AudioRealm.com
  $sam["host"] = "jacksworldradio.selfip.com"; //The IP address of the machine SAM is running on (DO NOT use a local IP address like 127.0.0.1 or 192.x.x.x)
  $sam["port"] = "1221";      //The port SAM handles HTTP requests on. Usually 1221.
  
  
  //General options
  $privaterequests = true;  //If False, AudioRealm.com will handle the requests
  $showtoprequests = true;  //Must we show the top 10 requests on the now playing page?
  $requestdays     = 30;    //Show the top10 requests for the last xx days

  $showpic     = true; //Must we show pictures in now playing section?   
  $picture_dir = "pictures/"; //Directory where all your album pictures are stored
  $picture_na  = $picture_dir."na.gif"; //Use this picture if the song has no picture
  
  //Row colors used
  $darkrow  = "#dadada";
  $lightrow = "#F6F6F6";  
 
/* ## ======================================== ## */
  
 $metabasepath = "$commonpath/metabase";
 require("$metabasepath/metabase_interface.php");
 require("$metabasepath/metabase_database.php");

 require_once("common/form.php");
 require_once("common/db.php");
 require_once("common/functions.php");
 
 // Load EGPCS vars into globals (emulates register_globals = On in php.ini)
if (!empty($HTTP_ENV_VARS)) while(list($name, $value) = each($HTTP_ENV_VARS)) $$name = $value;
if (!empty($HTTP_GET_VARS)) while(list($name, $value) = each($HTTP_GET_VARS)) $$name = $value;
if (!empty($HTTP_POST_VARS)) while(list($name, $value) = each($HTTP_POST_VARS)) $$name = $value;
if (!empty($HTTP_COOKIE_VARS)) while(list($name, $value) = each($HTTP_COOKIE_VARS)) $$name = $value;
if (!empty($HTTP_SERVER_VARS)) while(list($name, $value) = each($HTTP_SERVER_VARS)) $$name = $value;
   

 $db = new DBTable();
 
 //Your REMOTE MySQL database login details
 //IMPORTANT: This is the database login details for the database located on the WEBSERVER.
 $db->ReadXMLConfig("dbconfig.xml.php");
 
 //Your LOCAL MySQL database login details
 //This is the login details the webserver will use to contact the local database on the SAM Broadcaster server.
 //This is only used for making dedications from the request window.
 //$db->ReadXMLConfig("samdb.xml.php");
 $samlogin = $db->login; //In most cases the remote database will be the same as the local database.
  
 //Finally connect to the database
 $db->connect();
?>
Evertje

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Evertje »

Oke, beetje vreemd dus..

Probeer het onderstaande in req/req.php..

Code: Selecteer alles

if(empty($songid)) DoError(802);
Te vervangen door..

Code: Selecteer alles

$songid = isset($_GET['songid']) && is_numeric($_GET['songid']) ? $_GET['songid'] : DoError(802);


Eveneens met deze..

Code: Selecteer alles

$request = "GET /req/?songID=$songid&host=".urlencode($host)." HTTP\1.0\r\n\r\n";
Door deze..

Code: Selecteer alles

$request = "GET /req/?songID=".$songid."&host=".urlencode($_SERVER['REMOTE_ADDR'])." HTTP\1.0\r\n\r\n";
jacksworld

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

helasas werkt ook niet.

Ook de letter-keuze werkt niet. (heeft ook nooit gewerk)
Search by Artist:
0 - 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
fadingfm

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door fadingfm »

$sam["host"] = "jacksworldradio.selfip.com"; //The IP address of the machine SAM is running on (DO NOT use a local IP address like

Volgens mij moet je daar het ip nummer inzetten van de pc waar Sam op staat
jacksworld

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

Ja klopt maar mijn provider heeft geen static ip's
dit werkt als ip adres en zogt dat hij steeds naar mijn huidige ip gaat.
Als ik daar mijn huidige ip adres invul krijg ik nog steeds hetzelde resultaat.
Mijn website heeft kontakt met mijn sam database anders zou hij ook niet de now playing enz kunnen weten volgens mij.
fadingfm

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door fadingfm »

Aha op die manier, helaas weet ik geen oplossing verder.
Gebruikersavatar
cyberneticorganism
VIP
Berichten: 918
Lid geworden op: 11 jun 2008, 18:14
SAM-versie: 2014.7
Database: MySQL
Windows: 10
Contacteer:

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door cyberneticorganism »

Vreemd... je poorten staan ook netjes open op jacksworldradio.selfip.com, ook 1221.

Heb je de mogelijkheid om het vanaf een andere webhosting te proberen? (of om zelf tijdelijk een servertje lokaal op te zetten om het te testen). Dan kan je zien of het mogelijk daarmee te maken heeft...
pcman

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door pcman »

Dit is heel makkelijk op te lossen.
Ga naar je webserver naar php.ini.
En verander deze instelling register_globals.
Die staat standaard op off en die moet on staan.
Ik had namelijk gisteren hier ook hetzelfde probleem.

gr, Michaël
jacksworld

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door jacksworld »

ik host mijn website bij strato en denk niet dat ik bij de php.ini kan daar
of werkt dat niet zo?
pcman

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door pcman »

Welke versie bij strato heb je?
Ik heb daar 1 dedicated server lopen en dan kan het wel en bij virtueel server ook.
Maar bij de hosting pakketten kan dat dacht ik niet.
Anders voegt me eens toe op msn wil je best helpen ermee?
Me msn is michaeljonkers@live.nl
groetjes michaël
Evertje

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Evertje »

Jack,

Zoiets is snel op te lossen d.m.v. een .htaccess bestand in de root te zetten met de volgende regel:

Code: Selecteer alles

php_value register_globals 1
Wederom succes..
pcman

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door pcman »

Is inmiddels helemaal opgelost.

groetjes michaël
Gebruikersavatar
Wout
Beheerder
Berichten: 3501
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Wout »

pcman schreef:Is inmiddels helemaal opgelost.
Wat was de oplossing?
Afbeelding
pcman

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door pcman »

Strato kan een speciale php.ini in een bepaalde directories aanpassen en dat hebben we gedaan.
Evertje

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door Evertje »

Zou je de oplossing willen geven voor eventuele andere SAM Fan's die tegen hetzelfde probleem aanlopen én je titel willen wijzigen in.. Opgelost!
pcman

Re: Song ID must be valid (niet opgelost)

Ongelezen bericht door pcman »

Heey evertje,

Ik ben niet de starter van dit topic dus kan het niet aanpassen heb hem allen geholpen
ik heb het volgende gedaan.
ik heb een php.ini gemaakt waar dit in staat

Code: Selecteer alles

[php]

register_globals = on
die heb ik in iedere map op de server gezet.
strato ondersteund dit namlelijk.
en toen was het probleem opgelost.

gr, michael
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht