rendered paste bodycurrently in directory /home/webadmin/stellar-attraction.com/html/common
file is directory and not writable .
file is directory and not writable ..
file is directory and not writable metabase
file is not writable and has a php extension db.php
reading data <?
$metabasepath = "$commonpath/metabase";
require("$metabasepath/metabase_interface.php");
require("$metabasepath/metabase_database.php");
class DBTable {
var $login;
var $link;
var $result;
var $sql;
var $metadb;
var $column_names;
var $res_rows;
var $row_pos;
var $row_cnt;
var $boolvalue; //Default boolean values to use for true/false in parameterized SQL statements
var $params; //SQL Parameters
function DBTable()
{
$this->boolvalue = array(false => "0", True => "1");
$this->ClearParams;
}
function DoError($sql = "")
{
$error=MetabaseError($this->metadb);
echo "status=err<br>";
echo "SQL error=$error<br>";
//echo "SQL=$sql<br>";
exit;
}
//===============================================================================
function FindSQLParams(&$sql)
{
$escaped = false;
$escapechars = explode(",","\",',`");
$res = "";
$cnt = 0;
for($i=0;$i<strlen($sql);$i++)
{
$char = substr($sql,$i,1);
if(in_array($char,$escapechars))
//Check if the char itself is not escaped
if(!(($escaped) && ($i>0) && (substr($sql,$i-1,1)=="\\")))
$escaped = !$escaped;
if($char==":" && !$escaped)
{
//Add parameterized string
$res .= ":p$cnt:";
$cnt++;
//Find the end of the parameter
for($c=$i+1;$c<strlen($sql);$c++)
{
$char2 = strtolower(substr($sql,$c,1));
if(!(($char2>='a' && $char2<='z') || ($char2>='0' && $char2<='9') || ($char2=="_"))) break;
$i++;
}
}
else
$res .= $char;
}
$sql = $res;
return $cnt;
}
//Returns a unix timestamp.
//If $val is a string, it is converted to a timestamp using the strtotime function
function AsTimeStamp($val)
{
$stamp = $val;
if(!is_numeric($stamp)) $stamp = strtotime($stamp);
return $stamp;
}
//Checks SQL string and assign parameters to string.
function FillSQLParams($sql,$params)
{
if(is_array($params) && (count($params)>0))
{
$cnt = $this->FindSQLParams($sql);
$c=0;
foreach($params as $param)
{
if($param["type"]=="auto")
$param["type"] = gettype($param["value"]);
switch(strtolower($param["type"]))
{
//Valid auto-detect types
case "boolean" : $val = $this->boolvalue[$param["value"]];
break;
case "integer" : $val = $param["value"];
settype($val,"integer");
$val = MetabaseGetIntegerFieldValue($this->metadb,$val);
break;
case "double" : $val = $param["value"];
settype($val,"double");
$val = MetabaseGetFloatFieldValue($this->metadb,$val);
break;
case "string" : $val = MetabaseGetTextFieldValue($this->metadb,$param["value"]);
break;
case "NULL" : $val = 'NULL'; break;
//Custom types
case "date" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetDateFieldValue($this->metadb,$stamp);
break;
case "time" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetTimeFieldValue($this->metadb,$stamp);
break;
case "datetime" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetTimestampFieldValue($this->metadb,$stamp);
break;
case "statement" : //WARNING: Use this one with caution - its an open hole for SQL injection!
$val = $param["value"];
break;
//Invalid auto-types
case "array" :
case "object" :
case "resource" :
case "unknown type" :
case "user function" : $this->DoAbort("Parameter type not supported ($param[type]).");
break;
}//switch
$sql = str_replace(":p$c:",$val,$sql);
$c++;
}//foreach
}//if
return $sql;
}
function AddParam($val, $type = "auto")
{
$param["value"] = $val;
$param["type"] = $type;
$this->params[] = $param;
}
function AddParams($values, $type = "auto")
{
foreach($values as $val)
$this->AddParam($val,$type);
}
function SetParams()
{
$param_list = func_get_args();
$this->AddParams($param_list);
}
function ClearParams()
{
$this->params = array();
}
function AddStr($val){ $this->AddParam($val,"string"); }
function AddString($val){ $this->AddParam($val,"string"); }
function AddInt($val){ $this->AddParam($val,"integer"); }
function AddInteger($val){ $this->AddParam($val,"integer"); }
function AddFloat($val){ $this->AddParam($val,"double"); }
function AddDouble($val){ $this->AddParam($val,"double"); }
function AddDate($val){ $this->AddParam($val,"date"); }
function AddTime($val){ $this->AddParam($val,"time"); }
function AddDateTime($val){ $this->AddParam($val,"datetime"); }
function AddTimeStamp($val){ $this->AddParam($val,"datetime"); }
function AddBool($val){ $this->AddParam($val,"boolean"); }
function AddStatement($val){ $this->AddParam($val,"statement"); }
function AddNull(){ $this->AddParam(NULL,"statement"); }
//===============================================================================
function connect($login = "")
{
global $metabasepath;
if(is_array($login)) $this->login = $login;
$this->login["IncludePath"] = "$metabasepath/";
$error = MetabaseSetupDatabase($this->login, $this->metadb);
if($error!="")
{
echo "Database setup error: $error\n";
exit;
}
}
function query($sql, $limit = 0, $skip = 0)
{
if(count($this->params)>0) { $sql = $this->FillSQLParams($sql,$this->params); $this->ClearParams(); }
$this->res_rows = Array();
$this->column_names = array();
$this->sql = $sql;
$skip = (int)$skip;
$limit = (int)$limit;
if($limit>0)
{
$success=MetabaseSetSelectedRowRange($this->metadb, $skip, $limit);
if(!$success) echo "Warning: Unable to set limit and skip query range.";
}
//$result=MetabaseQueryAll($this->metadb, $sql, $rows);
$result=MetabaseQuery($this->metadb, $sql);
if(!$result) $this->DoError($sql);
if(!MetabaseEndOfResult($this->metadb,$result))
{
$success=MetabaseGetColumnNames($this->metadb, $result, $column_names);
if(!$success) echo "Warning: Unable to retrieve column names.";
//Switch Key-Values into a more usuable array
$this->column_names = array();
foreach($column_names as $val => $key)
$this->column_names["$key"] = $val;
$success=MetabaseFetchResultAll($this->metadb, $result, $this->res_rows);
$this->row_pos = 0;
$this->row_cnt = count($this->res_rows);
}
$this->result = $result;
return $this->result;
}
function open($sql, $limit = 0, $skip = 0)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>3) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,3)); }
return $this->query($sql, $limit, $skip);
}
function OpenEx($sql)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>1) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,1)); }
$this->open($sql);
}
//Same as query - except
//this does NOT save query result
function execsql($sql)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>1) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,1)); }
//If we have filled parameters, use them
if(count($this->params)>0) { $sql = $this->FillSQLParams($sql,$this->params); $this->ClearParams(); }
$this->sql = $sql;
$result=MetabaseQuery($this->metadb, $sql);
if(!$result) $this->DoError($sql);
}
function next()
{
if($this->row_pos >= $this->row_cnt) return FALSE;
$row = $this->res_rows[$this->row_pos];
$this->row_pos++;
if(!is_array($row)) return FALSE;
reset($row);
foreach($row as $key => $val)
{
if($this->login["Type"]=="mssql") $val = trim($val); //MSSQL does not return empty fields
$data[$this->column_names["$key"]] = $val;
}
return $data;
}
function getrow()
{
return $this->next();
}
function row()
{
return $this->next();
}
function getrows()
{
return $this->rows();
}
function rows()
{
$rows = Array();
while($row = $this->next())
$rows[] = $row;
return $rows;
}
function insert($table,$data)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"INSERT");
$this->execsql("INSERT INTO $table ($fields) VALUES($values)");
}
function replace($table,$data)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"INSERT");
$this->execsql("REPLACE INTO $table ($fields) VALUES($values)");
}
function update($table, $data, $where)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"UPDATE");
$this->execsql("UPDATE $table SET $values WHERE $where ");
}
function delete($table, $where)
{
$this->execsql("DELETE FROM $table WHERE $where ");
}
function insert_id()
{
echo "insert_id not supported.";
Exit;
}
function recordcount()
{
return $this->row_cnt;
}
function num_rows()
{
return $this->recordcount();
}
function affected_rows()
{
MetabaseAffectedRows($this->metadb, $affected_rows);
return $affected_rows;
}
//Data formatting functions
//==============================================================
function FormatTimestamp($value)
{
return MetabaseGetTimestampFieldValue($this->metadb, $value);
}
function FormatDate($value)
{
return MetabaseGetDateFieldValue($this->metadb, $value);
}
function FormatTime($value)
{
return MetabaseGetTimeFieldValue($this->metadb, $value);
}
function FormatFloat($value)
{
return MetabaseGetFloatFieldValue($this->metadb, $value);
}
function FormatDecimal($value)
{
return MetabaseGetDecimalFieldValue($this->metadb, $value);
}
function FormatBoolean($value)
{
return MetabaseGetBooleanFieldValue($this->metadb, $value);
}
function FormatText($value)
{
return MetabaseGetTextFieldValue($this->metadb, $value);
}
//XML based configuration for different database drivers
function ReadXMLConfig($xmlfile)
{
global $commonpath;
require_once("$commonpath/form.php");
require_once("$commonpath/xml.php");
$dbdata = File2Str($xmlfile);
//Remove PHP comments
$dbdata = str_replace("<?/*","",$dbdata);
$dbdata = str_replace("*/?>","",$dbdata);
$dbdata = trim($dbdata);
$dbdata = XML2Arr($dbdata);
$dbdata = $dbdata["CONFIG"]["DATABASE"];
EmptyNodeCleanUp($dbdata);
switch($dbdata["DRIVER"])
{
case "FIREBIRD" : $this->DBSetup_FireBird($dbdata); break;
case "MSSQL" :
case "ADO" : $this->DBSetup_MSSQL($dbdata); break;
case "MYSQL" : $this->DBSetup_MySQL($dbdata); break;
case "POSTGRESQL" :
case "POSTGRES" : $this->DBSetup_PostgreSQL($dbdata); break;
default : echo "Error: Unsupported driver: ".$dbdata["DRIVER"]; exit;
}
return $this->login;
}
function DBSetup_MySQL($data)
{
$dblogin = array();
$dblogin["Type"] = "mysql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$options = array();
$options["Port"] = $data["PORT"];
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
function DBSetup_FireBird($data)
{
$pathinfo = pathinfo($data["DATABASE"]);
$pathinfo["extension"] = ".".$pathinfo["extension"];
$pathinfo["dirname"] .= "/";
$pathinfo["basename"]= substr($pathinfo["basename"],0,strlen($pathinfo["basename"])-strlen($pathinfo["extension"]));
$dblogin = array();
$dblogin["Type"] = "ibase";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $pathinfo["basename"];
$options = array();
$options["Port"] = $data["PORT"]; //This might not be supported?
$options["DatabasePath"] = $pathinfo["dirname"];
$options["Database"] = $dblogin["Database"];
$options["DatabaseExtension"] = $pathinfo["extension"];
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
function DBSetup_MSSQL($data)
{
if((is_string($data["INSTANCENAME"])) && (!empty($data["INSTANCENAME"]))) $data["HOST"] .= "\\" . $data["INSTANCENAME"];
$dblogin = array();
$dblogin["Type"] = "mssql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
if($data["AUTHENTICATION"] != "NT")
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$this->login = $dblogin;
return $this->login;
}
function DBSetup_PostgreSQL($data)
{
$dblogin = array();
$dblogin["Type"] = "pgsql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$options= array();
$options["Port"] = $data["PORT"];;
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
}; // end of class
?>
file is not writable and has a php extension form.php
reading data <?
function Walk($a, $pre = '-->')
{
if(!is_array($a))
{
echo "$pre value=$a<br>";
return;
}
reset($a);
while(list($key, $value) = each($a)){
echo "$pre $key=$value<br>";
if(is_array($value))
Walk($value,$pre.'-->');
} // while loop
}
function StripNumericKeys($in)
{
reset($in);
$res = Array();
while(list($key, $val) = each($in)){
if(!is_numeric($key))
$res[$key] = $val;
} // while loop
return $res;
}
function DateMove(&$d, &$m, &$y, $ad, $am, $ay)
{
$stamp = mktime(0,0,0,$am,$ad,$ay);
$d = date("d",$stamp);
$m = date("m",$stamp);
$y = date("Y",$stamp);
return $stamp;
}
function DaysInMonth($m, $y = '')
{
if(empty($y))
$y = date('Y');
$m = (int)$m;
$days[01] = 31;
$days[02] = 28;
$days[03] = 31;
$days[04] = 30;
$days[05] = 31;
$days[06] = 30;
$days[07] = 31;
$days[08] = 31;
$days[09] = 30;
$days[10] = 31;
$days[11] = 30;
$days[12] = 31;
return $days[$m];
}
function Def(&$val, $def = '')
{
if(empty($val))
$val = $def;
return $val;
}
function FillData($data,$source)
{
reset($data);
while (list($key, $val) = each($data))
{
if ($key[0]!='_')
ReplaceField($key,$val,$source);
}
ReplaceField("time",date('Y-m-d'),$source);
ReplaceField("date",date('H:i:s'),$source);
return $source;
}
function ReplaceField($field,$value,&$message)
{
$message = eregi_replace("\{".$field."\}", "$value" , $message);
$message = eregi_replace("\[".$field."\]", Text2Html($value), $message);
$message = eregi_replace("#".$field."#", urlencode($value), $message);
}
function File2Str($fname)
{
$temp = "";
$fd = fopen($fname, "r");
while ($buffer = fgets($fd, 4096))
{ $temp .= $buffer; }
fclose($fd);
return $temp;
}
function Str2File($fname, $data)
{
$temp = "";
$fd = fopen($fname, "w");
if(!$fd)
echo "Error writing to $fname";
if(!fputs($fd, $data))
echo "Error writing to $fname";
fclose($fd);
}
function Text2Html($txt)
{
return str_replace("\n","\n<br>",$txt);
}
/*##########################################################################
In here is various functions to handle the data received from HTML forms
It allows for standards to accept data from any form and put it into a Database
//==========================================================================*/
function DataConvert(&$data,$from,$to)
{
$from = explode(',',$from);
$to = explode(',',$to);
for ($k=0; $k<count($from); $k++)
{
if ($data==$from[$k])
{
$data = $to[$k];
return;
}
}
}
//==========================================================================*/
function CheckRequiredFields(&$err,$req)
{
global $HTTP_POST_VARS;
$err = Array();
reset($req);
while (list($key, $value) = each($req))
{
//Are we testing composite required fields?
if (gettype($value)=="array")
{
$keys = explode (",", $value["fields"]);
unset($dummy);
$dummy = "";
$k=0;
while (($k<count($keys)) and ($dummy==""))
{
if (empty($HTTP_POST_VARS[$keys[$k]]))
$dummy = $value["message"];
$k++;
} //end while
if(!empty($dummy))
$err[$key] = $dummy;
} else
//Testing for a normal required field
{
if (empty($HTTP_POST_VARS[$key]))
$err[$key] = $value;
} //end if
}//end while
if (count($err)>0)
return 0;
else
return 1;
}
//==========================================================================
function CreateSQLQuery($form,&$fields,&$values,$mode)
{
//Set Database insert/update mode
$fields = "";
$values = "";
reset($form);
while (list($key, $val) = each($form))
{
if ($key[0]!='_')
AddKey($key,$val,$fields,$values,$mode,"auto");
}
}
//================== ##
/*##########################################################################
Various Form output functions
//==========================================================================*/
function FormatDefData($name,&$data,$def)
{
if (gettype($data)=="array")
$data = $data["$name"];
if (empty($data))
$data = $def;
}
//==========================================================================
function InputHidden($name,$data,$def = "")
{
FormatDefData($name,$data,$def);
?>
<input type="hidden" name="<? echo $name; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputCheckBox($name,$data, $def="", $val = "")
{
if(empty($val)) $val = $name;
FormatDefData($name,$data,$def);
?>
<input type="checkbox" name="<? echo $name; ?>" value="<? echo $val; ?>" <? if($val==$data){ echo "checked"; }?>>
<?
}
//==========================================================================
function InputRadio($name,$data, $def = "", $val = "")
{
if(empty($val)) $val = $name;
FormatDefData($name,$data,$def);
?>
<input type="radio" name="<? echo $name; ?>" value="<? echo $val; ?>" <? if($val==$data){ echo "checked"; }?>>
<?
}
//==========================================================================
function InputTextArea($name,$data,$def = "", $rows = 3, $cols = 20)
{
FormatDefData($name,$data,$def);
?>
<textarea rows="<? echo $rows; ?>" name="<? echo $name; ?>" cols="<? echo $cols; ?>"><? echo htmlentities($data); ?></textarea>
<?
}
//==========================================================================
function InputText($name,$data,$def = "", $size = 20)
{
FormatDefData($name,$data,$def);
?>
<input type="text" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputPassword($name,$data,$def = "", $size = 20)
{
FormatDefData($name,$data,$def);
?>
<input type="password" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputFile($name,$data,$def = "", $size = 20, $accept = "")
{
FormatDefData($name,$data,$def);
if(!empty($accept))
$accept = 'ACCEPT="' . $accept . '"';
?>
<input type="file" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>" <? echo $accept; ?> >
<?
}
//==========================================================================
function InputCombo($name,$data,$def,$labels,$values = "")
{
FormatDefData($name,$data,$def);
if (empty($values))
$values = $labels;
$labels = explode(',',$labels);
$values = explode(',',$values);
?>
<select name="<? echo $name; ?>" size="1">
<?
for ($k=0; $k<count($labels);$k++)
{?>
<option value="<? echo $values[$k]; ?>" <? if($values[$k]==$data){ echo "selected"; } ?>><? echo $labels[$k]; ?></option>
<?}?>
</select>
<?
}
//==========================================================================
function InputComboDB($name,$data,$def,$res)
{
FormatDefData($name,$data,$def);
?>
<select name="<? echo $name; ?>" size="1">
<?
while ($row = mysql_fetch_array($res))
{
?>
<option value="<? echo $row["value"]; ?>" <? if($row["value"]==$data){ echo "selected"; } ?>><? echo $row["label"]; ?></option>
<?
}?>
</select>
<?
}
function InputButton($name = 'Go', $data = '', $type = 'submit')
{
FormatDefData($name,$data,$name);
echo "<input type='$type' value='$data' name='$name'>";
}
//==========================================================================*/
function InputDay($d,$name)
{
FormatDefData($name,$d,date('d'));
$d = (int)$d;
echo "<select NAME='$name' size='1'>\n";
for ($k=1;$k<=31;$k++)
{
if ($d == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$k</option> \n";
}
echo "</select>";
}
function InputMonth($m,$name)
{
FormatDefData($name,$m,date('m'));
$m = (int)$m;
echo "<select NAME='$name' size='1'>\n";
for ($k=1;$k<=12;$k++)
{
$stamp = mktime(0,0,0,$k,1,date("Y"));
$mm = date("M",$stamp);
if ($m == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$mm</option> \n";
}
echo "</select>";
}
function InputYear($y,$name)
{
FormatDefData($name, $y, date('Y'));
$y = (int)$y;
echo "<select NAME='$name' size='1'>\n";
for ($k=2001;$k<=date("Y");$k++)
{
if ($y == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$k</option> \n";
}
echo "</select>";
}
function InputDate($f,$fieldname)
{
$months[1]="Jan";
$months[2]="Feb";
$months[3]="Mar";
$months[4]="Apr";
$months[5]="May";
$months[6]="Jun";
$months[7]="Jul";
$months[8]="Aug";
$months[9]="Sep";
$months[10]="Oct";
$months[11]="Nov";
$months[12]="Dec";
if (empty($f['d']))
{
$f['d'] = date ("d");
$f['m'] = date ("m");
$f['y'] = date ("Y");
};
?>
<select NAME="<? echo $fieldname; ?>[m]" size="1">
<?
//======= FROM month ======
for ($k=1;$k<=12;$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[m] == $k) { echo "selected"; } ?>><? echo $months[$k]; ?></option>
<?
};
//=====================
?>
</select>
<select NAME="<? echo $fieldname; ?>[d]" size="1">
<?
//======= FROM Day ======
for ($k=1;$k<=31;$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[d] == $k) { echo "selected"; } ?>><? echo $k; ?></option>
<?
};
//=====================
?>
</select> <select NAME="<? echo $fieldname; ?>[y]" size="1">
<?
//======= FROM year ======
for ($k=2001;$k<=date("Y");$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[y] == $k) { echo "selected"; } ?>><? echo $k; ?></option>
<?
};
//=====================
?>
</select>
<?
}
//==========================================================================*/
function AddKey($field,$value,&$fields, &$values, $DBmode, $type = "string")
{
if ($type == "auto")
{
if (strtoupper($value)=="NULL")
$type = "NULL";
else
$type = gettype($value);
}
switch ($type)
{
case "NULL" :
case "null" :
case "double" :
case "integer" :
case "integer" : $doStr = "";
break;
case "string" :
default : $value=addslashes($value);
$doStr = "'";
}
$DBmode = strtoupper($DBmode);
if ($DBmode=="UPDATE")
{
if (!empty($values))
$values .= ",";
$values .= $field . " = $doStr" . $value . "$doStr ";
}
else
{
if (!empty($fields))
$fields .= ",";
if (!empty($values))
$values .= ",";
$fields .= $field;
$values .= "$doStr" . $value . "$doStr ";
}
}
//========================= --[ END ]-- ====================================
?>
file is not writable and has a php extension functions.php
reading data <?
function Preparesong(&$song)
{
global $picture_na, $picture_dir, $sam, $stationid;
Def($song["id"],0);
Def($song["songid"],$song["id"]);
Def($song["artist"],"");
Def($song["title"],"");
Def($song["album"],"");
Def($song["duration"],-1);
Def($song["picture"],"");
Def($song["buycd"],"");
Def($song["website"],"");
if(empty($song["picture"]))
{
$song["picture"] = $picture_na;
$song["haspicture"] = false;
}
else
{
$song["picture"] = $picture_dir.$song["picture"];
$song["haspicture"] = true;
}
//Make Artist+Tile combination
if(empty($song["artist"]))
$song["combine"] = $song["title"];
else
$song["combine"] = $song["artist"] . " - ". $song["title"];
$ss = round($song["duration"] / 1000);
$mm = (int)($ss / 60);
$ss = ($ss % 60);
if($ss<10) $ss="0$ss";
$song["mmss"] = "$mm:$ss";
//Make a link that will search for the best place to buy the CD
if(empty($song["buycd"]))
{
$data = "http://www.audiorealm.com/findcd.html?artist=#artist#&title=#title#&album=#album#";
$song["buycd"] = FillData($song,$data);
}
//Make a link to search for the artist homepage
if(empty($song["website"]))
{
$data = "http://www.audiorealm.com/findwebsite.html?artist=#artist#&title=#title#&album=#album#";
$song["website"] = FillData($song,$data);
}
//Make a request link
$song["request"] = "javascript:request($song[songid])";
}
?>
file is not writable and has a php extension xml.php
reading data <?
//XML handling routines
function GetChildren($vals, &$i)
{
while($i < count($vals))
{
switch ($vals[$i]['type'])
{
//case 'cdata':
case 'complete' :
if(isset($vals[$i]['attributes']))
{
$value = array("attributes" => $vals[$i]['attributes'],
"value" => $vals[$i]['value']);
}
else
{
$value = array("value" => $vals[$i]['value']);
}
$name = $vals[$i]['tag'];
$children["$name"][] = $value;
break;
case 'open' :
$siblings = GetChildren($vals, ++$i);
if(isset($vals[$i]['attributes']))
{
$siblings['attributes'] = $vals[$i]['attributes'];
}
$name = $vals[$i]['tag'];
$children["$name"][] = $siblings;
/*
array_push($children,
array("attributes" => $vals[$i]['attributes'],
"children" => GetChildren($vals, ++$i))
);
*/
break;
case 'close' :
return $children;
break;
default :
echo "XML error, Unsupported tag type: " . $vals[$i]['type'] . "<br>";
}
$i++;
}
return $children;
}
function GetXMLTree($data, $uppercase = 1)
{
$p = xml_parser_create();
xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1);
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, $uppercase);
xml_parse_into_struct($p, $data, $vals, $index);
xml_parser_free($p);
$tree = array();
$i = 0;
$tree = GetChildren($vals, $i);
return $tree;
}
//######################################################
//######################################################
function CompackTree($data)
{
reset($data);
while(list($key, $value) = each($data))
{
if(is_array($value))
{
//SPECIAL HANDLING
//Make Attributes the Values if value empty
if(isset($value['attributes']))
if(is_array($value['attributes']))
if(!isset($value['value']))
{
$leaf["$key"] = $value['attributes'];
continue;
}
$c = count($value);
if($c>1)
{
//REMOVE empty Attributes if Value is valid
if(!((isset($value['attributes'])) && (is_array($value['attributes']))) && (isset($value['value'])))
$leaf["$key"] = $value['value'];
else
$leaf["$key"] = CompackTree($value);
}
else
{
$temp = $value[0];
//REMOVE empty Attributes if Value is valid
if(isset($temp['attributes']))
{
if(!is_array($temp['attributes']) && (isset($temp['value'])))
$leaf["$key"] = $temp['value'];
else $leaf["$key"] = CompackTree($temp);
} else if(isset($temp['value']))
$leaf["$key"] = $temp['value'];
else $leaf["$key"] = CompackTree($temp);
}
}
else
$leaf["$key"] = $value;
} // while loop
return $leaf;
}
function XMLToArray($data, $uppercase = 1)
{
$tree = GetXMLTree($data, $uppercase);
return CompackTree($tree);
}
function XML2Array($data, $uppercase = 1)
{
return XMLToArray($data, $uppercase);
}
function XML2Arr($data, $uppercase = 1)
{
return XMLToArray($data, $uppercase);
}
//######################################################
//######################################################
function ChildKeyIsNum($data)
{
if(!is_array($data))
return false;
reset($data);
list($key, $value) = each($data);
if(is_numeric($key))
return true;
else
return false;
}
function MakeAttr($data)
{
if(!is_array($data))
return "";
$attr = " ";
reset($data);
while(list($key, $value) = each($data)){
$attr .= " $key=\"$value\"";
} // while loop
return $attr;
}
function ArrayToXML($data, $parent = "")
{
if(empty($parent))
$xml = '<?xml version="1.0"?>';
else
$xml = "";
reset($data);
while(list($key, $value) = each($data))
{
$attr = "";
if(is_numeric($key))
{
$key = $parent;
if(!empty($value['attributes']))
$attr = MakeAttr($value['attributes']);
unset($value['attributes']);
};
if(ChildKeyIsNum($value))
$xml .= ArrayToXML($value,$key);
else if(is_array($value))
{
$xml .= "<$key$attr>";
$xml .= ArrayToXML($value,$key);
$xml .= "</$key$attr>";
}
else
$xml .= "<$key$attr>$value</$key>";
}//while
return $xml;
}
function Array2XML($data, $parent = "")
{
return ArrayToXML($data, $parent);
}
function Arr2XML($data, $parent = "")
{
return ArrayToXML($data, $parent);
}
//######################################################
//######################################################
function Keys2Lower($a)
{
if(!is_array($a))
return $a;
unset($res);
reset($a);
while(list($key, $value) = each($a)){
if(is_array($value))
$res[strtolower($key)] = Keys2Lower($value);
else
$res[strtolower($key)] = $value;
} // while loop
return $res;
}
function XMLheader()
{
header("Content-type: text/xml");
}
function EmptyNodeCleanUp(&$data)
{
while(list($key, $val) = each($data)){
if(is_array($val))
$data[$key] = "";
} // while loop
}
function echoXML($xml)
{
XMLheader();
if(is_array($xml))
echo Array2XML($xml);
else
echo $xml;
}
?>
currently in directory /home/webadmin/stellar-attraction.com/html/common
file is directory and not writable .
file is directory and not writable ..
file is directory and not writable metabase
file is not writable and has a php extension db.php
reading data <?
$metabasepath = "$commonpath/metabase";
require("$metabasepath/metabase_interface.php");
require("$metabasepath/metabase_database.php");
class DBTable {
var $login;
var $link;
var $result;
var $sql;
var $metadb;
var $column_names;
var $res_rows;
var $row_pos;
var $row_cnt;
var $boolvalue; //Default boolean values to use for true/false in parameterized SQL statements
var $params; //SQL Parameters
function DBTable()
{
$this->boolvalue = array(false => "0", True => "1");
$this->ClearParams;
}
function DoError($sql = "")
{
$error=MetabaseError($this->metadb);
echo "status=err<br>";
echo "SQL error=$error<br>";
//echo "SQL=$sql<br>";
exit;
}
//===============================================================================
function FindSQLParams(&$sql)
{
$escaped = false;
$escapechars = explode(",","\",',`");
$res = "";
$cnt = 0;
for($i=0;$i<strlen($sql);$i++)
{
$char = substr($sql,$i,1);
if(in_array($char,$escapechars))
//Check if the char itself is not escaped
if(!(($escaped) && ($i>0) && (substr($sql,$i-1,1)=="\\")))
$escaped = !$escaped;
if($char==":" && !$escaped)
{
//Add parameterized string
$res .= ":p$cnt:";
$cnt++;
//Find the end of the parameter
for($c=$i+1;$c<strlen($sql);$c++)
{
$char2 = strtolower(substr($sql,$c,1));
if(!(($char2>='a' && $char2<='z') || ($char2>='0' && $char2<='9') || ($char2=="_"))) break;
$i++;
}
}
else
$res .= $char;
}
$sql = $res;
return $cnt;
}
//Returns a unix timestamp.
//If $val is a string, it is converted to a timestamp using the strtotime function
function AsTimeStamp($val)
{
$stamp = $val;
if(!is_numeric($stamp)) $stamp = strtotime($stamp);
return $stamp;
}
//Checks SQL string and assign parameters to string.
function FillSQLParams($sql,$params)
{
if(is_array($params) && (count($params)>0))
{
$cnt = $this->FindSQLParams($sql);
$c=0;
foreach($params as $param)
{
if($param["type"]=="auto")
$param["type"] = gettype($param["value"]);
switch(strtolower($param["type"]))
{
//Valid auto-detect types
case "boolean" : $val = $this->boolvalue[$param["value"]];
break;
case "integer" : $val = $param["value"];
settype($val,"integer");
$val = MetabaseGetIntegerFieldValue($this->metadb,$val);
break;
case "double" : $val = $param["value"];
settype($val,"double");
$val = MetabaseGetFloatFieldValue($this->metadb,$val);
break;
case "string" : $val = MetabaseGetTextFieldValue($this->metadb,$param["value"]);
break;
case "NULL" : $val = 'NULL'; break;
//Custom types
case "date" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetDateFieldValue($this->metadb,$stamp);
break;
case "time" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetTimeFieldValue($this->metadb,$stamp);
break;
case "datetime" : $stamp = $this->AsTimeStamp($param["value"]);
$val = MetabaseGetTimestampFieldValue($this->metadb,$stamp);
break;
case "statement" : //WARNING: Use this one with caution - its an open hole for SQL injection!
$val = $param["value"];
break;
//Invalid auto-types
case "array" :
case "object" :
case "resource" :
case "unknown type" :
case "user function" : $this->DoAbort("Parameter type not supported ($param[type]).");
break;
}//switch
$sql = str_replace(":p$c:",$val,$sql);
$c++;
}//foreach
}//if
return $sql;
}
function AddParam($val, $type = "auto")
{
$param["value"] = $val;
$param["type"] = $type;
$this->params[] = $param;
}
function AddParams($values, $type = "auto")
{
foreach($values as $val)
$this->AddParam($val,$type);
}
function SetParams()
{
$param_list = func_get_args();
$this->AddParams($param_list);
}
function ClearParams()
{
$this->params = array();
}
function AddStr($val){ $this->AddParam($val,"string"); }
function AddString($val){ $this->AddParam($val,"string"); }
function AddInt($val){ $this->AddParam($val,"integer"); }
function AddInteger($val){ $this->AddParam($val,"integer"); }
function AddFloat($val){ $this->AddParam($val,"double"); }
function AddDouble($val){ $this->AddParam($val,"double"); }
function AddDate($val){ $this->AddParam($val,"date"); }
function AddTime($val){ $this->AddParam($val,"time"); }
function AddDateTime($val){ $this->AddParam($val,"datetime"); }
function AddTimeStamp($val){ $this->AddParam($val,"datetime"); }
function AddBool($val){ $this->AddParam($val,"boolean"); }
function AddStatement($val){ $this->AddParam($val,"statement"); }
function AddNull(){ $this->AddParam(NULL,"statement"); }
//===============================================================================
function connect($login = "")
{
global $metabasepath;
if(is_array($login)) $this->login = $login;
$this->login["IncludePath"] = "$metabasepath/";
$error = MetabaseSetupDatabase($this->login, $this->metadb);
if($error!="")
{
echo "Database setup error: $error\n";
exit;
}
}
function query($sql, $limit = 0, $skip = 0)
{
if(count($this->params)>0) { $sql = $this->FillSQLParams($sql,$this->params); $this->ClearParams(); }
$this->res_rows = Array();
$this->column_names = array();
$this->sql = $sql;
$skip = (int)$skip;
$limit = (int)$limit;
if($limit>0)
{
$success=MetabaseSetSelectedRowRange($this->metadb, $skip, $limit);
if(!$success) echo "Warning: Unable to set limit and skip query range.";
}
//$result=MetabaseQueryAll($this->metadb, $sql, $rows);
$result=MetabaseQuery($this->metadb, $sql);
if(!$result) $this->DoError($sql);
if(!MetabaseEndOfResult($this->metadb,$result))
{
$success=MetabaseGetColumnNames($this->metadb, $result, $column_names);
if(!$success) echo "Warning: Unable to retrieve column names.";
//Switch Key-Values into a more usuable array
$this->column_names = array();
foreach($column_names as $val => $key)
$this->column_names["$key"] = $val;
$success=MetabaseFetchResultAll($this->metadb, $result, $this->res_rows);
$this->row_pos = 0;
$this->row_cnt = count($this->res_rows);
}
$this->result = $result;
return $this->result;
}
function open($sql, $limit = 0, $skip = 0)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>3) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,3)); }
return $this->query($sql, $limit, $skip);
}
function OpenEx($sql)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>1) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,1)); }
$this->open($sql);
}
//Same as query - except
//this does NOT save query result
function execsql($sql)
{
//Additional arguments passed are used as SQL Parameters
if(func_num_args()>1) { $param_list = func_get_args(); $this->AddParams(array_slice($param_list,1)); }
//If we have filled parameters, use them
if(count($this->params)>0) { $sql = $this->FillSQLParams($sql,$this->params); $this->ClearParams(); }
$this->sql = $sql;
$result=MetabaseQuery($this->metadb, $sql);
if(!$result) $this->DoError($sql);
}
function next()
{
if($this->row_pos >= $this->row_cnt) return FALSE;
$row = $this->res_rows[$this->row_pos];
$this->row_pos++;
if(!is_array($row)) return FALSE;
reset($row);
foreach($row as $key => $val)
{
if($this->login["Type"]=="mssql") $val = trim($val); //MSSQL does not return empty fields
$data[$this->column_names["$key"]] = $val;
}
return $data;
}
function getrow()
{
return $this->next();
}
function row()
{
return $this->next();
}
function getrows()
{
return $this->rows();
}
function rows()
{
$rows = Array();
while($row = $this->next())
$rows[] = $row;
return $rows;
}
function insert($table,$data)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"INSERT");
$this->execsql("INSERT INTO $table ($fields) VALUES($values)");
}
function replace($table,$data)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"INSERT");
$this->execsql("REPLACE INTO $table ($fields) VALUES($values)");
}
function update($table, $data, $where)
{
global $commonpath;
require_once("$commonpath/form.php");
CreateSQLQuery($data,$fields,$values,"UPDATE");
$this->execsql("UPDATE $table SET $values WHERE $where ");
}
function delete($table, $where)
{
$this->execsql("DELETE FROM $table WHERE $where ");
}
function insert_id()
{
echo "insert_id not supported.";
Exit;
}
function recordcount()
{
return $this->row_cnt;
}
function num_rows()
{
return $this->recordcount();
}
function affected_rows()
{
MetabaseAffectedRows($this->metadb, $affected_rows);
return $affected_rows;
}
//Data formatting functions
//==============================================================
function FormatTimestamp($value)
{
return MetabaseGetTimestampFieldValue($this->metadb, $value);
}
function FormatDate($value)
{
return MetabaseGetDateFieldValue($this->metadb, $value);
}
function FormatTime($value)
{
return MetabaseGetTimeFieldValue($this->metadb, $value);
}
function FormatFloat($value)
{
return MetabaseGetFloatFieldValue($this->metadb, $value);
}
function FormatDecimal($value)
{
return MetabaseGetDecimalFieldValue($this->metadb, $value);
}
function FormatBoolean($value)
{
return MetabaseGetBooleanFieldValue($this->metadb, $value);
}
function FormatText($value)
{
return MetabaseGetTextFieldValue($this->metadb, $value);
}
//XML based configuration for different database drivers
function ReadXMLConfig($xmlfile)
{
global $commonpath;
require_once("$commonpath/form.php");
require_once("$commonpath/xml.php");
$dbdata = File2Str($xmlfile);
//Remove PHP comments
$dbdata = str_replace("<?/*","",$dbdata);
$dbdata = str_replace("*/?>","",$dbdata);
$dbdata = trim($dbdata);
$dbdata = XML2Arr($dbdata);
$dbdata = $dbdata["CONFIG"]["DATABASE"];
EmptyNodeCleanUp($dbdata);
switch($dbdata["DRIVER"])
{
case "FIREBIRD" : $this->DBSetup_FireBird($dbdata); break;
case "MSSQL" :
case "ADO" : $this->DBSetup_MSSQL($dbdata); break;
case "MYSQL" : $this->DBSetup_MySQL($dbdata); break;
case "POSTGRESQL" :
case "POSTGRES" : $this->DBSetup_PostgreSQL($dbdata); break;
default : echo "Error: Unsupported driver: ".$dbdata["DRIVER"]; exit;
}
return $this->login;
}
function DBSetup_MySQL($data)
{
$dblogin = array();
$dblogin["Type"] = "mysql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$options = array();
$options["Port"] = $data["PORT"];
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
function DBSetup_FireBird($data)
{
$pathinfo = pathinfo($data["DATABASE"]);
$pathinfo["extension"] = ".".$pathinfo["extension"];
$pathinfo["dirname"] .= "/";
$pathinfo["basename"]= substr($pathinfo["basename"],0,strlen($pathinfo["basename"])-strlen($pathinfo["extension"]));
$dblogin = array();
$dblogin["Type"] = "ibase";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $pathinfo["basename"];
$options = array();
$options["Port"] = $data["PORT"]; //This might not be supported?
$options["DatabasePath"] = $pathinfo["dirname"];
$options["Database"] = $dblogin["Database"];
$options["DatabaseExtension"] = $pathinfo["extension"];
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
function DBSetup_MSSQL($data)
{
if((is_string($data["INSTANCENAME"])) && (!empty($data["INSTANCENAME"]))) $data["HOST"] .= "\\" . $data["INSTANCENAME"];
$dblogin = array();
$dblogin["Type"] = "mssql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
if($data["AUTHENTICATION"] != "NT")
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$this->login = $dblogin;
return $this->login;
}
function DBSetup_PostgreSQL($data)
{
$dblogin = array();
$dblogin["Type"] = "pgsql";
$dblogin["Host"] = $data["HOST"];
$dblogin["User"] = $data["USERNAME"];
$dblogin["Password"] = $data["PASSWORD"];
$dblogin["Database"] = $data["DATABASE"];
$options= array();
$options["Port"] = $data["PORT"];;
$dblogin["Options"] = $options;
$this->login = $dblogin;
return $this->login;
}
}; // end of class
?>
file is not writable and has a php extension form.php
reading data <?
function Walk($a, $pre = '-->')
{
if(!is_array($a))
{
echo "$pre value=$a<br>";
return;
}
reset($a);
while(list($key, $value) = each($a)){
echo "$pre $key=$value<br>";
if(is_array($value))
Walk($value,$pre.'-->');
} // while loop
}
function StripNumericKeys($in)
{
reset($in);
$res = Array();
while(list($key, $val) = each($in)){
if(!is_numeric($key))
$res[$key] = $val;
} // while loop
return $res;
}
function DateMove(&$d, &$m, &$y, $ad, $am, $ay)
{
$stamp = mktime(0,0,0,$am,$ad,$ay);
$d = date("d",$stamp);
$m = date("m",$stamp);
$y = date("Y",$stamp);
return $stamp;
}
function DaysInMonth($m, $y = '')
{
if(empty($y))
$y = date('Y');
$m = (int)$m;
$days[01] = 31;
$days[02] = 28;
$days[03] = 31;
$days[04] = 30;
$days[05] = 31;
$days[06] = 30;
$days[07] = 31;
$days[08] = 31;
$days[09] = 30;
$days[10] = 31;
$days[11] = 30;
$days[12] = 31;
return $days[$m];
}
function Def(&$val, $def = '')
{
if(empty($val))
$val = $def;
return $val;
}
function FillData($data,$source)
{
reset($data);
while (list($key, $val) = each($data))
{
if ($key[0]!='_')
ReplaceField($key,$val,$source);
}
ReplaceField("time",date('Y-m-d'),$source);
ReplaceField("date",date('H:i:s'),$source);
return $source;
}
function ReplaceField($field,$value,&$message)
{
$message = eregi_replace("\{".$field."\}", "$value" , $message);
$message = eregi_replace("\[".$field."\]", Text2Html($value), $message);
$message = eregi_replace("#".$field."#", urlencode($value), $message);
}
function File2Str($fname)
{
$temp = "";
$fd = fopen($fname, "r");
while ($buffer = fgets($fd, 4096))
{ $temp .= $buffer; }
fclose($fd);
return $temp;
}
function Str2File($fname, $data)
{
$temp = "";
$fd = fopen($fname, "w");
if(!$fd)
echo "Error writing to $fname";
if(!fputs($fd, $data))
echo "Error writing to $fname";
fclose($fd);
}
function Text2Html($txt)
{
return str_replace("\n","\n<br>",$txt);
}
/*##########################################################################
In here is various functions to handle the data received from HTML forms
It allows for standards to accept data from any form and put it into a Database
//==========================================================================*/
function DataConvert(&$data,$from,$to)
{
$from = explode(',',$from);
$to = explode(',',$to);
for ($k=0; $k<count($from); $k++)
{
if ($data==$from[$k])
{
$data = $to[$k];
return;
}
}
}
//==========================================================================*/
function CheckRequiredFields(&$err,$req)
{
global $HTTP_POST_VARS;
$err = Array();
reset($req);
while (list($key, $value) = each($req))
{
//Are we testing composite required fields?
if (gettype($value)=="array")
{
$keys = explode (",", $value["fields"]);
unset($dummy);
$dummy = "";
$k=0;
while (($k<count($keys)) and ($dummy==""))
{
if (empty($HTTP_POST_VARS[$keys[$k]]))
$dummy = $value["message"];
$k++;
} //end while
if(!empty($dummy))
$err[$key] = $dummy;
} else
//Testing for a normal required field
{
if (empty($HTTP_POST_VARS[$key]))
$err[$key] = $value;
} //end if
}//end while
if (count($err)>0)
return 0;
else
return 1;
}
//==========================================================================
function CreateSQLQuery($form,&$fields,&$values,$mode)
{
//Set Database insert/update mode
$fields = "";
$values = "";
reset($form);
while (list($key, $val) = each($form))
{
if ($key[0]!='_')
AddKey($key,$val,$fields,$values,$mode,"auto");
}
}
//================== ##
/*##########################################################################
Various Form output functions
//==========================================================================*/
function FormatDefData($name,&$data,$def)
{
if (gettype($data)=="array")
$data = $data["$name"];
if (empty($data))
$data = $def;
}
//==========================================================================
function InputHidden($name,$data,$def = "")
{
FormatDefData($name,$data,$def);
?>
<input type="hidden" name="<? echo $name; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputCheckBox($name,$data, $def="", $val = "")
{
if(empty($val)) $val = $name;
FormatDefData($name,$data,$def);
?>
<input type="checkbox" name="<? echo $name; ?>" value="<? echo $val; ?>" <? if($val==$data){ echo "checked"; }?>>
<?
}
//==========================================================================
function InputRadio($name,$data, $def = "", $val = "")
{
if(empty($val)) $val = $name;
FormatDefData($name,$data,$def);
?>
<input type="radio" name="<? echo $name; ?>" value="<? echo $val; ?>" <? if($val==$data){ echo "checked"; }?>>
<?
}
//==========================================================================
function InputTextArea($name,$data,$def = "", $rows = 3, $cols = 20)
{
FormatDefData($name,$data,$def);
?>
<textarea rows="<? echo $rows; ?>" name="<? echo $name; ?>" cols="<? echo $cols; ?>"><? echo htmlentities($data); ?></textarea>
<?
}
//==========================================================================
function InputText($name,$data,$def = "", $size = 20)
{
FormatDefData($name,$data,$def);
?>
<input type="text" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputPassword($name,$data,$def = "", $size = 20)
{
FormatDefData($name,$data,$def);
?>
<input type="password" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>">
<?
}
//==========================================================================
function InputFile($name,$data,$def = "", $size = 20, $accept = "")
{
FormatDefData($name,$data,$def);
if(!empty($accept))
$accept = 'ACCEPT="' . $accept . '"';
?>
<input type="file" name="<? echo $name; ?>" size="<? echo $size; ?>" value="<? echo htmlentities($data); ?>" <? echo $accept; ?> >
<?
}
//==========================================================================
function InputCombo($name,$data,$def,$labels,$values = "")
{
FormatDefData($name,$data,$def);
if (empty($values))
$values = $labels;
$labels = explode(',',$labels);
$values = explode(',',$values);
?>
<select name="<? echo $name; ?>" size="1">
<?
for ($k=0; $k<count($labels);$k++)
{?>
<option value="<? echo $values[$k]; ?>" <? if($values[$k]==$data){ echo "selected"; } ?>><? echo $labels[$k]; ?></option>
<?}?>
</select>
<?
}
//==========================================================================
function InputComboDB($name,$data,$def,$res)
{
FormatDefData($name,$data,$def);
?>
<select name="<? echo $name; ?>" size="1">
<?
while ($row = mysql_fetch_array($res))
{
?>
<option value="<? echo $row["value"]; ?>" <? if($row["value"]==$data){ echo "selected"; } ?>><? echo $row["label"]; ?></option>
<?
}?>
</select>
<?
}
function InputButton($name = 'Go', $data = '', $type = 'submit')
{
FormatDefData($name,$data,$name);
echo "<input type='$type' value='$data' name='$name'>";
}
//==========================================================================*/
function InputDay($d,$name)
{
FormatDefData($name,$d,date('d'));
$d = (int)$d;
echo "<select NAME='$name' size='1'>\n";
for ($k=1;$k<=31;$k++)
{
if ($d == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$k</option> \n";
}
echo "</select>";
}
function InputMonth($m,$name)
{
FormatDefData($name,$m,date('m'));
$m = (int)$m;
echo "<select NAME='$name' size='1'>\n";
for ($k=1;$k<=12;$k++)
{
$stamp = mktime(0,0,0,$k,1,date("Y"));
$mm = date("M",$stamp);
if ($m == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$mm</option> \n";
}
echo "</select>";
}
function InputYear($y,$name)
{
FormatDefData($name, $y, date('Y'));
$y = (int)$y;
echo "<select NAME='$name' size='1'>\n";
for ($k=2001;$k<=date("Y");$k++)
{
if ($y == $k)
$selected = "selected";
else
$selected = "";
echo "<option value='$k' $selected>$k</option> \n";
}
echo "</select>";
}
function InputDate($f,$fieldname)
{
$months[1]="Jan";
$months[2]="Feb";
$months[3]="Mar";
$months[4]="Apr";
$months[5]="May";
$months[6]="Jun";
$months[7]="Jul";
$months[8]="Aug";
$months[9]="Sep";
$months[10]="Oct";
$months[11]="Nov";
$months[12]="Dec";
if (empty($f['d']))
{
$f['d'] = date ("d");
$f['m'] = date ("m");
$f['y'] = date ("Y");
};
?>
<select NAME="<? echo $fieldname; ?>[m]" size="1">
<?
//======= FROM month ======
for ($k=1;$k<=12;$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[m] == $k) { echo "selected"; } ?>><? echo $months[$k]; ?></option>
<?
};
//=====================
?>
</select>
<select NAME="<? echo $fieldname; ?>[d]" size="1">
<?
//======= FROM Day ======
for ($k=1;$k<=31;$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[d] == $k) { echo "selected"; } ?>><? echo $k; ?></option>
<?
};
//=====================
?>
</select> <select NAME="<? echo $fieldname; ?>[y]" size="1">
<?
//======= FROM year ======
for ($k=2001;$k<=date("Y");$k++)
{
?>
<option value="<? echo $k; ?>" <? if ($f[y] == $k) { echo "selected"; } ?>><? echo $k; ?></option>
<?
};
//=====================
?>
</select>
<?
}
//==========================================================================*/
function AddKey($field,$value,&$fields, &$values, $DBmode, $type = "string")
{
if ($type == "auto")
{
if (strtoupper($value)=="NULL")
$type = "NULL";
else
$type = gettype($value);
}
switch ($type)
{
case "NULL" :
case "null" :
case "double" :
case "integer" :
case "integer" : $doStr = "";
break;
case "string" :
default : $value=addslashes($value);
$doStr = "'";
}
$DBmode = strtoupper($DBmode);
if ($DBmode=="UPDATE")
{
if (!empty($values))
$values .= ",";
$values .= $field . " = $doStr" . $value . "$doStr ";
}
else
{
if (!empty($fields))
$fields .= ",";
if (!empty($values))
$values .= ",";
$fields .= $field;
$values .= "$doStr" . $value . "$doStr ";
}
}
//========================= --[ END ]-- ====================================
?>
file is not writable and has a php extension functions.php
reading data <?
function Preparesong(&$song)
{
global $picture_na, $picture_dir, $sam, $stationid;
Def($song["id"],0);
Def($song["songid"],$song["id"]);
Def($song["artist"],"");
Def($song["title"],"");
Def($song["album"],"");
Def($song["duration"],-1);
Def($song["picture"],"");
Def($song["buycd"],"");
Def($song["website"],"");
if(empty($song["picture"]))
{
$song["picture"] = $picture_na;
$song["haspicture"] = false;
}
else
{
$song["picture"] = $picture_dir.$song["picture"];
$song["haspicture"] = true;
}
//Make Artist+Tile combination
if(empty($song["artist"]))
$song["combine"] = $song["title"];
else
$song["combine"] = $song["artist"] . " - ". $song["title"];
$ss = round($song["duration"] / 1000);
$mm = (int)($ss / 60);
$ss = ($ss % 60);
if($ss<10) $ss="0$ss";
$song["mmss"] = "$mm:$ss";
//Make a link that will search for the best place to buy the CD
if(empty($song["buycd"]))
{
$data = "http://www.audiorealm.com/findcd.html?artist=#artist#&title=#title#&album=#album#";
$song["buycd"] = FillData($song,$data);
}
//Make a link to search for the artist homepage
if(empty($song["website"]))
{
$data = "http://www.audiorealm.com/findwebsite.html?artist=#artist#&title=#title#&album=#album#";
$song["website"] = FillData($song,$data);
}
//Make a request link
$song["request"] = "javascript:request($song[songid])";
}
?>
file is not writable and has a php extension xml.php
reading data <?
//XML handling routines
function GetChildren($vals, &$i)
{
while($i < count($vals))
{
switch ($vals[$i]['type'])
{
//case 'cdata':
case 'complete' :
if(isset($vals[$i]['attributes']))
{
$value = array("attributes" => $vals[$i]['attributes'],
"value" => $vals[$i]['value']);
}
else
{
$value = array("value" => $vals[$i]['value']);
}
$name = $vals[$i]['tag'];
$children["$name"][] = $value;
break;
case 'open' :
$siblings = GetChildren($vals, ++$i);
if(isset($vals[$i]['attributes']))
{
$siblings['attributes'] = $vals[$i]['attributes'];
}
$name = $vals[$i]['tag'];
$children["$name"][] = $siblings;
/*
array_push($children,
array("attributes" => $vals[$i]['attributes'],
"children" => GetChildren($vals, ++$i))
);
*/
break;
case 'close' :
return $children;
break;
default :
echo "XML error, Unsupported tag type: " . $vals[$i]['type'] . "<br>";
}
$i++;
}
return $children;
}
function GetXMLTree($data, $uppercase = 1)
{
$p = xml_parser_create();
xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1);
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, $uppercase);
xml_parse_into_struct($p, $data, $vals, $index);
xml_parser_free($p);
$tree = array();
$i = 0;
$tree = GetChildren($vals, $i);
return $tree;
}
//######################################################
//######################################################
function CompackTree($data)
{
reset($data);
while(list($key, $value) = each($data))
{
if(is_array($value))
{
//SPECIAL HANDLING
//Make Attributes the Values if value empty
if(isset($value['attributes']))
if(is_array($value['attributes']))
if(!isset($value['value']))
{
$leaf["$key"] = $value['attributes'];
continue;
}
$c = count($value);
if($c>1)
{
//REMOVE empty Attributes if Value is valid
if(!((isset($value['attributes'])) && (is_array($value['attributes']))) && (isset($value['value'])))
$leaf["$key"] = $value['value'];
else
$leaf["$key"] = CompackTree($value);
}
else
{
$temp = $value[0];
//REMOVE empty Attributes if Value is valid
if(isset($temp['attributes']))
{
if(!is_array($temp['attributes']) && (isset($temp['value'])))
$leaf["$key"] = $temp['value'];
else $leaf["$key"] = CompackTree($temp);
} else if(isset($temp['value']))
$leaf["$key"] = $temp['value'];
else $leaf["$key"] = CompackTree($temp);
}
}
else
$leaf["$key"] = $value;
} // while loop
return $leaf;
}
function XMLToArray($data, $uppercase = 1)
{
$tree = GetXMLTree($data, $uppercase);
return CompackTree($tree);
}
function XML2Array($data, $uppercase = 1)
{
return XMLToArray($data, $uppercase);
}
function XML2Arr($data, $uppercase = 1)
{
return XMLToArray($data, $uppercase);
}
//######################################################
//######################################################
function ChildKeyIsNum($data)
{
if(!is_array($data))
return false;
reset($data);
list($key, $value) = each($data);
if(is_numeric($key))
return true;
else
return false;
}
function MakeAttr($data)
{
if(!is_array($data))
return "";
$attr = " ";
reset($data);
while(list($key, $value) = each($data)){
$attr .= " $key=\"$value\"";
} // while loop
return $attr;
}
function ArrayToXML($data, $parent = "")
{
if(empty($parent))
$xml = '<?xml version="1.0"?>';
else
$xml = "";
reset($data);
while(list($key, $value) = each($data))
{
$attr = "";
if(is_numeric($key))
{
$key = $parent;
if(!empty($value['attributes']))
$attr = MakeAttr($value['attributes']);
unset($value['attributes']);
};
if(ChildKeyIsNum($value))
$xml .= ArrayToXML($value,$key);
else if(is_array($value))
{
$xml .= "<$key$attr>";
$xml .= ArrayToXML($value,$key);
$xml .= "</$key$attr>";
}
else
$xml .= "<$key$attr>$value</$key>";
}//while
return $xml;
}
function Array2XML($data, $parent = "")
{
return ArrayToXML($data, $parent);
}
function Arr2XML($data, $parent = "")
{
return ArrayToXML($data, $parent);
}
//######################################################
//######################################################
function Keys2Lower($a)
{
if(!is_array($a))
return $a;
unset($res);
reset($a);
while(list($key, $value) = each($a)){
if(is_array($value))
$res[strtolower($key)] = Keys2Lower($value);
else
$res[strtolower($key)] = $value;
} // while loop
return $res;
}
function XMLheader()
{
header("Content-type: text/xml");
}
function EmptyNodeCleanUp(&$data)
{
while(list($key, $val) = each($data)){
if(is_array($val))
$data[$key] = "";
} // while loop
}
function echoXML($xml)
{
XMLheader();
if(is_array($xml))
echo Array2XML($xml);
else
echo $xml;
}
?>