PHP - Inherited A Webmaster Position For A Site And Having Trouble Edition
So, I was given the task of editing a website. It was done in PHP for the most part.
If you visit the page http://cre-finance.com/?Contact-Us, I'm attempting to edit the contact info at the bottom but I have no idea where to find it in the website files. If you the view the source, it's right there like it's taunting me but none of the php files have that info in it. There is a contactus.php (I attached the code for it) but all it has is the code for the form at the bottom of the Contact Us page.
I've noticed references to "?p=Contact-Us" in the source, and also in the sitemap.xml file but I have no idea what that really means because there are no other "contactus" pages other than the one I mentioned above. I guess I'm not really looking for help with actual coding but perhaps to be pointed in the right direction to edit that information.
HELP!
Attached Files
contact_us.php 3.55KB
0 downloads
Similar TutorialsI cannot get flashmp3player.php to work on my webpage. Webhosting provider says problem is with the php code. When I cut and paste php code from file into phptester.net, it returns - FATAL ERROR syntax error, unexpected 'new' (T_NEW) on line number 344 Any idea how to fix this so it works? See complete code below - <?php $exclude_files = array( "_derived", "_private", "_vti_cnf", "_vti_pvt", "vti_script", "_vti_txt" ); // add any other folders or files you wish to exclude from the player. //READING ID3 TAGS // id3 tags converting to utf-8 function conv($str) { for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) { if((ord($str[$i])=='0'||ord($str[$i])=='4')){ $str1 = $str1; }else{ $str1 = $str1.$str[$i];} } if( ( strpos($str1,chr(209).chr(143).chr(209).chr(142)) === 0) ) { $str2 = substr($str1, 4); $str1 = $str2;}else{$str1 = $str1;} return $str1; } function detectUTF8($string) { return preg_match('%(?: [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte |\xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs |[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte |\xED[\x80-\x9F][\x80-\xBF] # excluding surrogates |\xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 |[\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 |\xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )+%xs', $string); } function cp1251_utf8( $sInput ) { $sOutput = ""; for ( $i = 0; $i < strlen( $sInput ); $i++ ) { $iAscii = ord( $sInput[$i] ); if ( $iAscii >= 192 && $iAscii <= 255 ) $sOutput .= "&#".( 1040 + ( $iAscii - 192 ) ).";"; else if ( $iAscii == 168 ) $sOutput .= "&#".( 1025 ).";"; else if ( $iAscii == 184 ) $sOutput .= "&#".( 1105 ).";"; else $sOutput .= $sInput[$i]; } return $sOutput; } function encoding($string){ if (function_exists('iconv')) { if (@!iconv('utf-8', 'cp1251', $string)) { $string = iconv('cp1251', 'utf-8', $string); } return $string; } else { if (detectUTF8($string)) { return $string; } else { return cp1251_utf8($string); } } } error_reporting(0); //errors $errors[0] = '';//means no error. (Change it and things can become very strange) $errors[1] = 'File Name not set'; $errors[2] = 'Unable to open MP3 file'; $errors[3] = 'ID3v2 Tag not found on this file'; $errors[4] = 'TAG not Supported'; $errors[5] = 'Tag not found(maybe you need to call getInfo() first?)'; //pear define('PEAR_ERROR_RETURN', 1); define('PEAR_ERROR_PRINT', 2); define('PEAR_ERROR_TRIGGER', 4); define('PEAR_ERROR_DIE', 8); define('PEAR_ERROR_CALLBACK', 16); define('PEAR_ERROR_EXCEPTION', 32); define('PEAR_ZE2', (function_exists('version_compare') && version_compare(zend_version(), "2-dev", "ge"))); if (substr(PHP_OS, 0, 3) == 'WIN') { define('OS_WINDOWS', true); define('OS_UNIX', false); define('PEAR_OS', 'Windows'); } else { define('OS_WINDOWS', false); define('OS_UNIX', true); define('PEAR_OS', 'Unix'); } if (!defined('PATH_SEPARATOR')) { if (OS_WINDOWS) { define('PATH_SEPARATOR', ';'); } else { define('PATH_SEPARATOR', ':'); } } $GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN; $GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE; $GLOBALS['_PEAR_destructor_object_list'] = array(); $GLOBALS['_PEAR_shutdown_funcs'] = array(); $GLOBALS['_PEAR_error_handler_stack'] = array(); @ini_set('track_errors', true); class PEAR { var $_debug = false; var $_default_error_mode = null; var $_default_error_options = null; var $_default_error_handler = ''; var $_error_class = 'PEAR_Error'; var $_expected_errors = array(); function PEAR($error_class = null) { $classname = strtolower(get_class($this)); if ($this->_debug) { print "PEAR constructor called, class=$classname\n"; } if ($error_class !== null) { $this->_error_class = $error_class; } while ($classname && strcasecmp($classname, "pear")) { $destructor = "_$classname"; if (method_exists($this, $destructor)) { global $_PEAR_destructor_object_list; $_PEAR_destructor_object_list[] = &$this; if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { register_shutdown_function("_PEAR_call_destructors"); $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; } break; } else { $classname = get_parent_class($classname); } } } function _PEAR() { if ($this->_debug) { printf("PEAR destructor called, class=%s\n", strtolower(get_class($this))); } } function &getStaticProperty($class, $var) { static $properties; return $properties[$class][$var]; } function registerShutdownFunc($func, $args = array()) { if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) { register_shutdown_function("_PEAR_call_destructors"); $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true; } $GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args); } function isError($data, $code = null) { if (is_a($data, 'PEAR_Error')) { if (is_null($code)) { return true; } elseif (is_string($code)) { return $data->getMessage() == $code; } else { return $data->getCode() == $code; } } return false; } function setErrorHandling($mode = null, $options = null) { if (isset($this) && is_a($this, 'PEAR')) { $setmode = &$this->_default_error_mode; $setoptions = &$this->_default_error_options; } else { $setmode = &$GLOBALS['_PEAR_default_error_mode']; $setoptions = &$GLOBALS['_PEAR_default_error_options']; } switch ($mode) { case PEAR_ERROR_EXCEPTION: case PEAR_ERROR_RETURN: case PEAR_ERROR_PRINT: case PEAR_ERROR_TRIGGER: case PEAR_ERROR_DIE: case null: $setmode = $mode; $setoptions = $options; break; case PEAR_ERROR_CALLBACK: $setmode = $mode; if (is_callable($options)) { $setoptions = $options; } else { trigger_error("invalid error callback", E_USER_WARNING); } break; default: trigger_error("invalid error mode", E_USER_WARNING); break; } } function expectError($code = '*') { if (is_array($code)) { array_push($this->_expected_errors, $code); } else { array_push($this->_expected_errors, array($code)); } return sizeof($this->_expected_errors); } function popExpect() { return array_pop($this->_expected_errors); } function _checkDelExpect($error_code) { $deleted = false; foreach ($this->_expected_errors AS $key => $error_array) { if (in_array($error_code, $error_array)) { unset($this->_expected_errors[$key][array_search($error_code, $error_array)]); $deleted = true; } if (0 == count($this->_expected_errors[$key])) { unset($this->_expected_errors[$key]); } } return $deleted; } function delExpect($error_code) { $deleted = false; if ((is_array($error_code) && (0 != count($error_code)))) { foreach($error_code as $key => $error) { if ($this->_checkDelExpect($error)) { $deleted = true; } else { $deleted = false; } } return $deleted ? true : PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME } elseif (!empty($error_code)) { if ($this->_checkDelExpect($error_code)) { return true; } else { return PEAR::raiseError("The expected error you submitted does not exist"); // IMPROVE ME } } else { return PEAR::raiseError("The expected error you submitted is empty"); // IMPROVE ME } } function &raiseError($message = null, $code = null, $mode = null, $options = null, $userinfo = null, $error_class = null, $skipmsg = false) { if (is_object($message)) { $code = $message->getCode(); $userinfo = $message->getUserInfo(); $error_class = $message->getType(); $message->error_message_prefix = ''; $message = $message->getMessage(); } if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) { if ($exp[0] == "*" || (is_int(reset($exp)) && in_array($code, $exp)) || (is_string(reset($exp)) && in_array($message, $exp))) { $mode = PEAR_ERROR_RETURN; } } if ($mode === null) { if (isset($this) && isset($this->_default_error_mode)) { $mode = $this->_default_error_mode; $options = $this->_default_error_options; } elseif (isset($GLOBALS['_PEAR_default_error_mode'])) { $mode = $GLOBALS['_PEAR_default_error_mode']; $options = $GLOBALS['_PEAR_default_error_options']; } } if ($error_class !== null) { $ec = $error_class; } elseif (isset($this) && isset($this->_error_class)) { $ec = $this->_error_class; } else { $ec = 'PEAR_Error'; } if ($skipmsg) { $a = &new $ec($code, $mode, $options, $userinfo); return $a; } else { $a = &new $ec($message, $code, $mode, $options, $userinfo); return $a; } } function &throwError($message = null, $code = null, $userinfo = null) { if (isset($this) && is_a($this, 'PEAR')) { $a = &$this->raiseError($message, $code, null, null, $userinfo); return $a; } else { $a = &PEAR::raiseError($message, $code, null, null, $userinfo); return $a; } } function staticPushErrorHandling($mode, $options = null) { $stack = &$GLOBALS['_PEAR_error_handler_stack']; $def_mode = &$GLOBALS['_PEAR_default_error_mode']; $def_options = &$GLOBALS['_PEAR_default_error_options']; $stack[] = array($def_mode, $def_options); switch ($mode) { case PEAR_ERROR_EXCEPTION: case PEAR_ERROR_RETURN: case PEAR_ERROR_PRINT: case PEAR_ERROR_TRIGGER: case PEAR_ERROR_DIE: case null: $def_mode = $mode; $def_options = $options; break; case PEAR_ERROR_CALLBACK: $def_mode = $mode; if (is_callable($options)) { $def_options = $options; } else { trigger_error("invalid error callback", E_USER_WARNING); } break; default: trigger_error("invalid error mode", E_USER_WARNING); break; } $stack[] = array($mode, $options); return true; } function staticPopErrorHandling() { $stack = &$GLOBALS['_PEAR_error_handler_stack']; $setmode = &$GLOBALS['_PEAR_default_error_mode']; $setoptions = &$GLOBALS['_PEAR_default_error_options']; array_pop($stack); list($mode, $options) = $stack[sizeof($stack) - 1]; array_pop($stack); switch ($mode) { case PEAR_ERROR_EXCEPTION: case PEAR_ERROR_RETURN: case PEAR_ERROR_PRINT: case PEAR_ERROR_TRIGGER: case PEAR_ERROR_DIE: case null: $setmode = $mode; $setoptions = $options; break; case PEAR_ERROR_CALLBACK: $setmode = $mode; if (is_callable($options)) { $setoptions = $options; } else { trigger_error("invalid error callback", E_USER_WARNING); } break; default: trigger_error("invalid error mode", E_USER_WARNING); break; } return true; } function pushErrorHandling($mode, $options = null) { $stack = &$GLOBALS['_PEAR_error_handler_stack']; if (isset($this) && is_a($this, 'PEAR')) { $def_mode = &$this->_default_error_mode; $def_options = &$this->_default_error_options; } else { $def_mode = &$GLOBALS['_PEAR_default_error_mode']; $def_options = &$GLOBALS['_PEAR_default_error_options']; } $stack[] = array($def_mode, $def_options); if (isset($this) && is_a($this, 'PEAR')) { $this->setErrorHandling($mode, $options); } else { PEAR::setErrorHandling($mode, $options); } $stack[] = array($mode, $options); return true; } function popErrorHandling() { $stack = &$GLOBALS['_PEAR_error_handler_stack']; array_pop($stack); list($mode, $options) = $stack[sizeof($stack) - 1]; array_pop($stack); if (isset($this) && is_a($this, 'PEAR')) { $this->setErrorHandling($mode, $options); } else { PEAR::setErrorHandling($mode, $options); } return true; } function loadExtension($ext) { if (!extension_loaded($ext)) { if ((ini_get('enable_dl') != 1) || (ini_get('safe_mode') == 1)) { return false; } if (OS_WINDOWS) { $suffix = '.dll'; } elseif (PHP_OS == 'HP-UX') { $suffix = '.sl'; } elseif (PHP_OS == 'AIX') { $suffix = '.a'; } elseif (PHP_OS == 'OSX') { $suffix = '.bundle'; } else { $suffix = '.so'; } return @dl('php_'.$ext.$suffix) || @dl($ext.$suffix); } return true; } } function _PEAR_call_destructors() { global $_PEAR_destructor_object_list; if (is_array($_PEAR_destructor_object_list) && sizeof($_PEAR_destructor_object_list)) { reset($_PEAR_destructor_object_list); if (@PEAR::getStaticProperty('PEAR', 'destructlifo')) { $_PEAR_destructor_object_list = array_reverse($_PEAR_destructor_object_list); } while (list($k, $objref) = each($_PEAR_destructor_object_list)) { $classname = get_class($objref); while ($classname) { $destructor = "_$classname"; if (method_exists($objref, $destructor)) { $objref->$destructor(); break; } else { $classname = get_parent_class($classname); } } } $_PEAR_destructor_object_list = array(); } if (is_array($GLOBALS['_PEAR_shutdown_funcs']) AND !empty($GLOBALS['_PEAR_shutdown_funcs'])) { foreach ($GLOBALS['_PEAR_shutdown_funcs'] as $value) { call_user_func_array($value[0], $value[1]); } } } class PEAR_Error { var $error_message_prefix = ''; var $mode = PEAR_ERROR_RETURN; var $level = E_USER_NOTICE; var $code = -1; var $message = ''; var $userinfo = ''; var $backtrace = null; function PEAR_Error($message = 'unknown error', $code = null, $mode = null, $options = null, $userinfo = null) { if ($mode === null) { $mode = PEAR_ERROR_RETURN; } $this->message = $message; $this->code = $code; $this->mode = $mode; $this->userinfo = $userinfo; if (function_exists("debug_backtrace")) { if (@!PEAR::getStaticProperty('PEAR_Error', 'skiptrace')) { $this->backtrace = debug_backtrace(); } } if ($mode & PEAR_ERROR_CALLBACK) { $this->level = E_USER_NOTICE; $this->callback = $options; } else { if ($options === null) { $options = E_USER_NOTICE; } $this->level = $options; $this->callback = null; } if ($this->mode & PEAR_ERROR_PRINT) { if (is_null($options) || is_int($options)) { $format = "%s"; } else { $format = $options; } printf($format, $this->getMessage()); } if ($this->mode & PEAR_ERROR_TRIGGER) { trigger_error($this->getMessage(), $this->level); } if ($this->mode & PEAR_ERROR_DIE) { $msg = $this->getMessage(); if (is_null($options) || is_int($options)) { $format = "%s"; if (substr($msg, -1) != "\n") { $msg .= "\n"; } } else { $format = $options; } die(sprintf($format, $msg)); } if ($this->mode & PEAR_ERROR_CALLBACK) { if (is_callable($this->callback)) { call_user_func($this->callback, $this); } } if ($this->mode & PEAR_ERROR_EXCEPTION) { trigger_error("PEAR_ERROR_EXCEPTION is obsolete, use class PEAR_Exception for exceptions", E_USER_WARNING); eval('$e = new Exception($this->message, $this->code);throw($e);'); } } function getMode() { return $this->mode; } function getCallback() { return $this->callback; } function getMessage() { return ($this->error_message_prefix . $this->message); } function getCode() { return $this->code; } function getType() { return get_class($this); } function getUserInfo() { return $this->userinfo; } function getDebugInfo() { return $this->getUserInfo(); } function getBacktrace($frame = null) { if (defined('PEAR_IGNORE_BACKTRACE')) { return null; } if ($frame === null) { return $this->backtrace; } return $this->backtrace[$frame]; } function addUserInfo($info) { if (empty($this->userinfo)) { $this->userinfo = $info; } else { $this->userinfo .= " ** $info"; } } function toString() { $modes = array(); $levels = array(E_USER_NOTICE => 'notice', E_USER_WARNING => 'warning', E_USER_ERROR => 'error'); if ($this->mode & PEAR_ERROR_CALLBACK) { if (is_array($this->callback)) { $callback = (is_object($this->callback[0]) ? strtolower(get_class($this->callback[0])) : $this->callback[0]) . '::' . $this->callback[1]; } else { $callback = $this->callback; } return sprintf('[%s: message="%s" code=%d mode=callback '. 'callback=%s prefix="%s" info="%s"]', strtolower(get_class($this)), $this->message, $this->code, $callback, $this->error_message_prefix, $this->userinfo); } if ($this->mode & PEAR_ERROR_PRINT) { $modes[] = 'print'; } if ($this->mode & PEAR_ERROR_TRIGGER) { $modes[] = 'trigger'; } if ($this->mode & PEAR_ERROR_DIE) { $modes[] = 'die'; } if ($this->mode & PEAR_ERROR_RETURN) { $modes[] = 'return'; } return sprintf('[%s: message="%s" code=%d mode=%s level=%s '. 'prefix="%s" info="%s"]', strtolower(get_class($this)), $this->message, $this->code, implode("|", $modes), $levels[$this->level], $this->error_message_prefix, $this->userinfo); } } //id3 v1 define('PEAR_MP3_ID_FNO', 1); define('PEAR_MP3_ID_RE', 2); define('PEAR_MP3_ID_TNF', 3); define('PEAR_MP3_ID_NOMP3', 4); class MP3_Id { var $file = false; var $id3v1 = false; var $id3v11 = false; var $id3v2 = false; var $name = ''; var $artists = ''; var $album = ''; var $year = ''; var $comment = ''; var $track = 0; var $genre = ''; var $genreno = 255; var $studied = false; var $mpeg_ver = 0; var $layer = 0; var $bitrate = 0; var $crc = false; var $frequency = 0; var $encoding_type = 0; var $samples_per_frame = 0; var $samples = 0; var $musicsize = -1; var $frames = 0; var $quality = 0; var $padding = false; var $private = false; var $mode = ''; var $copyright = false; var $original = false; var $emphasis = ''; var $filesize = -1; var $frameoffset = -1; var $lengthh = false; var $length = false; var $lengths = false; var $error = false; var $debug = false; var $debugbeg = '<DIV STYLE="margin: 0.5 em; padding: 0.5 em; border-width: thin; border-color: black; border-style: solid">'; var $debugend = '</DIV>'; ////////////////////////////////////////////////// function MP3_Id($study = false) { if(defined('ID3_SHOW_DEBUG')) $this->debug = true; $this->study=($study || defined('ID3_AUTO_STUDY')); } ///////////////////////////////////////////////// function read( $file="") { if ($this->debug) print($this->debugbeg . "id3('$file')<HR>\n"); if(!empty($file))$this->file = $file; if ($this->debug) print($this->debugend); return $this->_read_v1(); } ///////////////////////////////////////////////// function setTag($name, $value) { if( is_array($name)) { foreach( $name as $n => $v) { $this -> $n = $v ; } } else { $this -> $name = $value ; } } ///////////////////////////////////////////////// function getTag($name, $default = 0) { if(empty($this -> $name)) { return $default ; } else { return $this -> $name ; } } ////////////////////////////////////////////////// function write($v1 = true) { if ($this->debug) print($this->debugbeg . "write()<HR>\n"); if ($v1) { $this->_write_v1(); } if ($this->debug) print($this->debugend); } function study() { $this->studied = true; $this->_readframe(); } ///////////////////////////////////////////////////// function copy($from) { if ($this->debug) print($this->debugbeg . "copy(\$from)<HR>\n"); $this->name = $from->name; $this->artists = $from->artists; $this->album = $from->album; $this->year = $from->year; $this->comment = $from->comment; $this->track = $from->track; $this->genre = $from->genre; $this->genreno = $from->genreno; if ($this->debug) print($this->debugend); } /////////////////////////////////////////////////// function remove($id3v1 = true, $id3v2 = true) { if ($this->debug) print($this->debugbeg . "remove()<HR>\n"); if ($id3v1) { $this->_remove_v1(); } if ($id3v2) { } if ($this->debug) print($this->debugend); } ////////////////////////////////////////////////// function _read_v1() { if ($this->debug) print($this->debugbeg . "_read_v1()<HR>\n"); $mqr = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); if (! ($f = @fopen($this->file, 'rb')) ) { return PEAR::raiseError( "Unable to open " . $this->file, PEAR_MP3_ID_FNO); } if (fseek($f, -128, SEEK_END) == -1) { return PEAR::raiseError( 'Unable to see to end - 128 of ' . $this->file, PEAR_MP3_ID_RE); } $r = fread($f, 128); fclose($f); set_magic_quotes_runtime($mqr); if ($this->debug) { $unp = unpack('H*raw', $r); print_r($unp); } $id3tag = $this->_decode_v1($r); if(!PEAR::isError( $id3tag)) { $this->id3v1 = true; $tmp = explode(Chr(0), $id3tag['NAME']); $this->name = $tmp[0]; $tmp = explode(Chr(0), $id3tag['ARTISTS']); $this->artists = $tmp[0]; $tmp = explode(Chr(0), $id3tag['ALBUM']); $this->album = $tmp[0]; $tmp = explode(Chr(0), $id3tag['YEAR']); $this->year = $tmp[0]; $tmp = explode(Chr(0), $id3tag['COMMENT']); $this->comment = $tmp[0]; if (isset($id3tag['TRACK'])) { $this->id3v11 = true; $this->track = $id3tag['TRACK']; } $this->genreno = $id3tag['GENRENO']; $this->genre = $id3tag['GENRE']; } else { return $id3tag ; } if ($this->debug) print($this->debugend); } /////////////////////////////////////////////// function _decode_v1($rawtag) { if ($this->debug) print($this->debugbeg . "_decode_v1(\$rawtag)<HR>\n"); if ($rawtag[125] == Chr(0) and $rawtag[126] != Chr(0)) { $format = 'a3TAG/a30NAME/a30ARTISTS/a30ALBUM/a4YEAR/a28COMMENT/x1/C1TRACK/C1GENRENO'; } else { $format = 'a3TAG/a30NAME/a30ARTISTS/a30ALBUM/a4YEAR/a30COMMENT/C1GENRENO'; } $id3tag = unpack($format, $rawtag); if ($this->debug) print_r($id3tag); if ($id3tag['TAG'] == 'TAG') { $id3tag['GENRE'] = $this->getgenre($id3tag['GENRENO']); } else { $id3tag = PEAR::raiseError( 'TAG not found', PEAR_MP3_ID_TNF); } if ($this->debug) print($this->debugend); return $id3tag; } ////////////////////////////////////// function _write_v1() { if ($this->debug) print($this->debugbeg . "_write_v1()<HR>\n"); $file = $this->file; if (! ($f = @fopen($file, 'r+b')) ) { return PEAR::raiseError( "Unable to open " . $file, PEAR_MP3_ID_FNO); } if (fseek($f, -128, SEEK_END) == -1) { return PEAR::raiseError( "Unable to see to end - 128 of " . $file, PEAR_MP3_ID_RE); } $this->genreno = $this->getgenreno($this->genre, $this->genreno); $newtag = $this->_encode_v1(); $mqr = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); $r = fread($f, 128); if ( !PEAR::isError( $this->_decode_v1($r))) { if (fseek($f, -128, SEEK_END) == -1) { return PEAR::raiseError( "Unable to see to end - 128 of " . $file, PEAR_MP3_ID_RE); } fwrite($f, $newtag); } else { if (fseek($f, 0, SEEK_END) == -1) { return PEAR::raiseError( "Unable to see to end of " . $file, PEAR_MP3_ID_RE); } fwrite($f, $newtag); } fclose($f); set_magic_quotes_runtime($mqr); if ($this->debug) print($this->debugend); } ////////////////////////////////////////////////// function _encode_v1() { if ($this->debug) print($this->debugbeg . "_encode_v1()<HR>\n"); if ($this->track) { $id3pack = 'a3a30a30a30a4a28x1C1C1'; $newtag = pack($id3pack, 'TAG', $this->name, $this->artists, $this->album, $this->year, $this->comment, $this->track, $this->genreno ); } else { $id3pack = 'a3a30a30a30a4a30C1'; $newtag = pack($id3pack, 'TAG', $this->name, $this->artists, $this->album, $this->year, $this->comment, $this->genreno ); } if ($this->debug) { print('id3pack: ' . $id3pack . "\n"); $unp = unpack('H*new', $newtag); print_r($unp); } if ($this->debug) print($this->debugend); return $newtag; } /////////////////////////////////////////////// function _remove_v1() { if ($this->debug) print($this->debugbeg . "_remove_v1()<HR>\n"); $file = $this->file; if (! ($f = fopen($file, 'r+b')) ) { return PEAR::raiseError( "Unable to open " . $file, PEAR_MP3_ID_FNO); } if (fseek($f, -128, SEEK_END) == -1) { return PEAR::raiseError( 'Unable to see to end - 128 of ' . $file, PEAR_MP3_ID_RE); } $mqr = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); $r = fread($f, 128); $success = false; if ( !PEAR::isError( $this->_decode_v1($r))) { $size = filesize($this->file) - 128; if ($this->debug) print('size: old: ' . filesize($this->file)); $success = ftruncate($f, $size); clearstatcache(); if ($this->debug) print(' new: ' . filesize($this->file)); } fclose($f); set_magic_quotes_runtime($mqr); if ($this->debug) print($this->debugend); return $success; } ////////////////////////////////////////////////// function _readframe() { if ($this->debug) print($this->debugbeg . "_readframe()<HR>\n"); $file = $this->file; $mqr = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); if (! ($f = fopen($file, 'rb')) ) { if ($this->debug) print($this->debugend); return PEAR::raiseError( "Unable to open " . $file, PEAR_MP3_ID_FNO) ; } $this->filesize = filesize($file); do { while (fread($f,1) != Chr(255)) { if ($this->debug) echo "Find...\n"; if (feof($f)) { if ($this->debug) print($this->debugend); return PEAR::raiseError( "No mpeg frame found", PEAR_MP3_ID_NOMP3) ; } } fseek($f, ftell($f) - 1); $frameoffset = ftell($f); $r = fread($f, 4); $bits = sprintf("%'08b%'08b%'08b%'08b", ord($r{0}), ord($r{1}), ord($r{2}), ord($r{3})); } while (!$bits[8] and !$bits[9] and !$bits[10]); if ($this->debug) print('Bits: ' . $bits . "\n"); $this->frameoffset = $frameoffset; if ($bits[11] == 0) { if (($bits[24] == 1) && ($bits[25] == 1)) { $vbroffset = 9; } else { $vbroffset = 17; } } else if ($bits[12] == 0) { if (($bits[24] == 1) && ($bits[25] == 1)) { $vbroffset = 9; } else { $vbroffset = 17; } } else { if (($bits[24] == 1) && ($bits[25] == 1)) { $vbroffset = 17; } else { $vbroffset = 32; } } fseek($f, ftell($f) + $vbroffset); $r = fread($f, 4); switch ($r) { case 'Xing': $this->encoding_type = 'VBR'; case 'Info': if ($this->debug) print('Encoding Header: ' . $r . "\n"); $r = fread($f, 4); $vbrbits = sprintf("%'08b", ord($r{3})); if ($this->debug) print('XING Header Bits: ' . $vbrbits . "\n"); if ($vbrbits[7] == 1) { $r = fread($f, 4); $this->frames = unpack('N', $r); $this->frames = $this->frames[1]; } if ($vbrbits[6] == 1) { $r = fread($f, 4); $this->musicsize = unpack('N', $r); $this->musicsize = $this->musicsize[1]; } if ($vbrbits[5] == 1) { fseek($f, ftell($f) + 100); } if ($vbrbits[4] == 1) { $r = fread($f, 4); $this->quality = unpack('N', $r); $this->quality = $this->quality[1]; } break; case 'VBRI': default: if ($vbroffset != 32) { fseek($f, ftell($f) + 32 - $vbroffset); $r = fread($f, 4); if ($r != 'VBRI') { $this->encoding_type = 'CBR'; break; } } else { $this->encoding_type = 'CBR'; break; } if ($this->debug) print('Encoding Header: ' . $r . "\n"); $this->encoding_type = 'VBR'; fseek($f, ftell($f) + 2); fseek($f, ftell($f) + 2); $r = fread($f, 2); $this->quality = unpack('n', $r); $this->quality = $this->quality[1]; $r = fread($f, 4); $this->musicsize = unpack('N', $r); $this->musicsize = $this->musicsize[1]; $r = fread($f, 4); $this->frames = unpack('N', $r); $this->frames = $this->frames[1]; } fclose($f); set_magic_quotes_runtime($mqr); if ($bits[11] == 0) { $this->mpeg_ver = "2.5"; $bitrates = array( '1' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0), '2' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0), '3' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0), ); } else if ($bits[12] == 0) { $this->mpeg_ver = "2"; $bitrates = array( '1' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0), '2' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0), '3' => array(0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0), ); } else { $this->mpeg_ver = "1"; $bitrates = array( '1' => array(0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0), '2' => array(0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0), '3' => array(0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0), ); } if ($this->debug) print('MPEG' . $this->mpeg_ver . "\n"); $layer = array( array(0,3), array(2,1), ); $this->layer = $layer[$bits[13]][$bits[14]]; if ($this->debug) print('layer: ' . $this->layer . "\n"); if ($bits[15] == 0) { if ($this->debug) print("protected (crc)\n"); $this->crc = true; } $bitrate = 0; if ($bits[16] == 1) $bitrate += 8; if ($bits[17] == 1) $bitrate += 4; if ($bits[18] == 1) $bitrate += 2; if ($bits[19] == 1) $bitrate += 1; $this->bitrate = $bitrates[$this->layer][$bitrate]; $frequency = array( '1' => array( '0' => array(44100, 48000), '1' => array(32000, 0), ), '2' => array( '0' => array(22050, 24000), '1' => array(16000, 0), ), '2.5' => array( '0' => array(11025, 12000), '1' => array(8000, 0), ), ); $this->frequency = $frequency[$this->mpeg_ver][$bits[20]][$bits[21]]; $this->padding = $bits[22]; $this->private = $bits[23]; $mode = array( array('Stereo', 'Joint Stereo'), array('Dual Channel', 'Mono'), ); $this->mode = $mode[$bits[24]][$bits[25]]; $this->copyright = $bits[28]; $this->original = $bits[29]; $emphasis = array( array('none', '50/15ms'), array('', 'CCITT j.17'), ); $this->emphasis = $emphasis[$bits[30]][$bits[31]]; $samplesperframe = array( '1' => array( '1' => 384, '2' => 1152, '3' => 1152 ), '2' => array( '1' => 384, '2' => 1152, '3' => 576 ), '2.5' => array( '1' => 384, '2' => 1152, '3' => 576 ), ); $this->samples_per_frame = $samplesperframe[$this->mpeg_ver][$this->layer]; if ($this->encoding_type != 'VBR') { if ($this->bitrate == 0) { $s = -1; } else { $s = ((8*filesize($this->file))/1000) / $this->bitrate; } $this->length = sprintf('%02d:%02d',floor($s/60),floor($s-(floor($s/60)*60))); $this->lengthh = sprintf('%02d:%02d:%02d',floor($s/3600),floor($s/60),floor($s-(floor($s/60)*60))); $this->lengths = (int)$s; $this->samples = ceil($this->lengths * $this->frequency); if(0 != $this->samples_per_frame) { $this->frames = ceil($this->samples / $this->samples_per_frame); } else { $this->frames = 0; } $this->musicsize = ceil($this->lengths * $this->bitrate * 1000 / 8); } else { $this->samples = $this->samples_per_frame * $this->frames; $s = $this->samples / $this->frequency; $this->length = sprintf('%02d:%02d',floor($s/60),floor($s-(floor($s/60)*60))); $this->lengthh = sprintf('%02d:%02d:%02d',floor($s/3600),floor($s/60),floor($s-(floor($s/60)*60))); $this->lengths = (int)$s; $this->bitrate = (int)(($this->musicsize / $s) * 8 / 1000); } if ($this->debug) print($this->debugend); } //////////////////////////////////////////// function getGenre($genreno) { if ($this->debug) print($this->debugbeg . "getgenre($genreno)<HR>\n"); $genres = $this->genres(); if (isset($genres[$genreno])) { $genre = $genres[$genreno]; if ($this->debug) print($genre . "\n"); } else { $genre = ''; } if ($this->debug) print($this->debugend); return $genre; } //////////////////////////////////////////// function getGenreNo($genre, $default = 0xff) { if ($this->debug) print($this->debugbeg . "getgenreno('$genre',$default)<HR>\n"); $genres = $this->genres(); $genreno = false; if ($genre) { foreach ($genres as $no => $name) { if (strtolower($genre) == strtolower($name)) { if ($this->debug) print("$no:'$name' == '$genre'"); $genreno = $no; } } } if ($genreno === false) $genreno = $default; if ($this->debug) print($this->debugend); return $genreno; } //////////////////////////////////////////// function genres() { return array( 0 => 'Blues', 1 => 'Classic Rock', 2 => 'Country', 3 => 'Dance', 4 => 'Disco', 5 => 'Funk', 6 => 'Grunge', 7 => 'Hip-Hop', 8 => 'Jazz', 9 => 'Metal', 10 => 'New Age', 11 => 'Oldies', 12 => 'Other', 13 => 'Pop', 14 => 'R&B', 15 => 'Rap', 16 => 'Reggae', 17 => 'Rock', 18 => 'Techno', 19 => 'Industrial', 20 => 'Alternative', 21 => 'Ska', 22 => 'Death Metal', 23 => 'Pranks', 24 => 'Soundtrack', 25 => 'Euro-Techno', 26 => 'Ambient', 27 => 'Trip-Hop', 28 => 'Vocal', 29 => 'Jazz+Funk', 30 => 'Fusion', 31 => 'Trance', 32 => 'Classical', 33 => 'Instrumental', 34 => 'Acid', 35 => 'House', 36 => 'Game', 37 => 'Sound Clip', 38 => 'Gospel', 39 => 'Noise', 40 => 'Alternative Rock', 41 => 'Bass', 42 => 'Soul', 43 => 'Punk', 44 => 'Space', 45 => 'Meditative', 46 => 'Instrumental Pop', 47 => 'Instrumental Rock', 48 => 'Ethnic', 49 => 'Gothic', 50 => 'Darkwave', 51 => 'Techno-Industrial', 52 => 'Electronic', 53 => 'Pop-Folk', 54 => 'Eurodance', 55 => 'Dream', 56 => 'Southern Rock', 57 => 'Comedy', 58 => 'Cult', 59 => 'Gangsta', 60 => 'Top 40', 61 => 'Christian Rap', 62 => 'Pop/Funk', 63 => 'Jungle', 64 => 'Native US', 65 => 'Cabaret', 66 => 'New Wave', 67 => 'Psychadelic', 68 => 'Rave', 69 => 'Showtunes', 70 => 'Trailer', 71 => 'Lo-Fi', 72 => 'Tribal', 73 => 'Acid Punk', 74 => 'Acid Jazz', 75 => 'Polka', 76 => 'Retro', 77 => 'Musical', 78 => 'Rock & Roll', 79 => 'Hard Rock', 80 => 'Folk', 81 => 'Folk-Rock', 82 => 'National Folk', 83 => 'Swing', 84 => 'Fast Fusion', 85 => 'Bebob', 86 => 'Latin', 87 => 'Revival', 88 => 'Celtic', 89 => 'Bluegrass', 90 => 'Avantgarde', 91 => 'Gothic Rock', 92 => 'Progressive Rock', 93 => 'Psychedelic Rock', 94 => 'Symphonic Rock', 95 => 'Slow Rock', 96 => 'Big Band', 97 => 'Chorus', 98 => 'Easy Listening', 99 => 'Acoustic', 100 => 'Humour', 101 => 'Speech', 102 => 'Chanson', 103 => 'Opera', 104 => 'Chamber Music', 105 => 'Sonata', 106 => 'Symphony', 107 => 'Booty Bass', 108 => 'Primus', 109 => 'Porn Groove', 110 => 'Satire', 111 => 'Slow Jam', 112 => 'Club', 113 => 'Tango', 114 => 'Samba', 115 => 'Folklore', 116 => 'Ballad', 117 => 'Power Ballad', 118 => 'Rhytmic Soul', 119 => 'Freestyle', 120 => 'Duet', 121 => 'Punk Rock', 122 => 'Drum Solo', 123 => 'Acapella', 124 => 'Euro-House', 125 => 'Dance Hall', 126 => 'Goa', 127 => 'Drum & Bass', 128 => 'Club-House', 129 => 'Hardcore', 130 => 'Terror', 131 => 'Indie', 132 => 'BritPop', 133 => 'Negerpunk', 134 => 'Polsk Punk', 135 => 'Beat', 136 => 'Christian Gangsta Rap', 137 => 'Heavy Metal', 138 => 'Black Metal', 139 => 'Crossover', 140 => 'Contemporary Christian', 141 => 'Christian Rock', 142 => 'Merengue', 143 => 'Salsa', 144 => 'Trash Metal', 145 => 'Anime', 146 => 'Jpop', 147 => 'Synthpop' ); } } //id3 v2 class ID3{ var $file_name=''; //full path to the file //the sugestion is that this path should be a //relative path var $tags; //array with ID3 tags extracted from the file var $last_error_num=0; //keep the number of the last error ocurred var $tags_count = 0; // the number of elements at the tags array /*********************/ /**private functions**/ /*********************/ function hex2bin($data) { //thankz for the one who wrote this function //If iknew your name I would say it here $len = strlen($data); for($i=0;$i<$len;$i+=2) { $newdata .= pack("C",hexdec(substr($data,$i,2))); } return $newdata; } function get_frame_size($fourBytes){ $tamanho[0] = str_pad(base_convert(substr($fourBytes,0,2),16,2),7,0,STR_PAD_LEFT); $tamanho[1] = str_pad(base_convert(substr($fourBytes,2,2),16,2),7,0,STR_PAD_LEFT); $tamanho[2] = str_pad(base_convert(substr($fourBytes,4,2),16,2),7,0,STR_PAD_LEFT); $tamanho[3] = str_pad(base_convert(substr($fourBytes,6,2),16,2),7,0,STR_PAD_LEFT); $total = $tamanho[0].$tamanho[1].$tamanho[2].$tamanho[3]; $tamanho[0] = substr($total,0,8); $tamanho[1] = substr($total,8,8); $tamanho[2] = substr($total,16,8); $tamanho[3] = substr($total,24,8); $total = $tamanho[0].$tamanho[1].$tamanho[2].$tamanho[3]; $total = base_convert($total,2,10); return $total; } function extractTags($text,&$tags){ $size = -1;//inicializando diferente de zero para nгo sair do while while ((strlen($text) != 0) and ($size != 0)){ //while there are tags to read and they have a meaning //while existem tags a serem tratadas e essas tags tem conteudo $ID = substr($text,0,4); $aux = substr($text,4,4); $aux = bin2hex($aux); $size = $this->get_frame_size($aux); $flags = substr($text,8,2); $info = substr($text,11,$size-1); if ($size != 0){ $tags[$ID] = $info; $this->tags_count++; } $text = substr($text,10+$size,strlen($text)); } } /********************/ /**public functions**/ /********************/ /**Constructor**/ function ID3($file_name){ $this->file_name = $file_name; $this->last_error_num = 0; } /**Read the file and put the TAGS content on $this->tags array**/ function getInfo(){ if ($this->file_name != ''){ $mp3 = @fopen($this->file_name,"r"); $header = @fread($mp3,10); if (!$header) { $this->last_error_num = 2; return false; die(); } if (substr($header,0,3) != "ID3"){ $this->last_error_num = 3; return false; die(); } $header = bin2hex($header); $version = base_convert(substr($header,6,2),16,10).".".base_convert(substr($header,8,2),16,10); $flags = base_convert(substr($header,10,2),16,2); $flags = str_pad($flags,8,0,STR_PAD_LEFT); if ($flags[7] == 1){ //echo('with Unsynchronisation<br>'); } if ($flags[6] == 1){ //echo('with Extended header<br>'); } if ($flags[5] == 1){//Esperimental tag $this->last_error_num = 4; return false; die(); } $total = $this->get_frame_size(substr($header,12,8)); $text = @fread($mp3,$total); fclose($mp3); $this->extractTags($text,$this->tags); } else{ $this->last_error_num = 1;//file not set return false; die(); } return true; } /************* * PUBLIC * Functions to get information * from the ID3 tag **************/ function getArtist(){ if (array_key_exists('TPE1',$this->tags)){ return $this->tags['TPE1']; }else{ $this->last_error_num = 5; return false; } } function getTrack(){ if (array_key_exists('TRCK',$this->tags)){ return $this->tags['TRCK']; }else{ $this->last_error_num = 5; return false; } } function getTitle(){ if (array_key_exists('TIT2',$this->tags)){ return $this->tags['TIT2']; }else{ $this->last_error_num = 5; return false; } } function getAlbum(){ if (array_key_exists('TALB',$this->tags)){ return $this->tags['TALB']; }else{ $this->last_error_num = 5; return false; } } function getYear(){ if (array_key_exists('TYER',$this->tags)){ return $this->tags['TYER']; }else{ $this->last_error_num = 5; return false; } } function getGender(){ if (array_key_exists('TCON',$this->tags)){ return $this->tags['TCON']; }else{ $this->last_error_num = 5; return false; } } } //SCANNING FOLDER FOR MP3 FILES $file_dir = $_GET['file_dir']; function filearray($start) { global $exclude_files; $dir=opendir($start); while (false !== ($found=readdir($dir))) { $getit[]=$found; } foreach($getit as $num => $item) { if (is_dir($start.$item) && $item!="." && $item!=".." && array_search($item, $exclude_files)===false) { $output["{$item}"]=filearray($start.$item."/"); } if (is_file($start.$item) && array_search($item, $exclude_files)===false) { $output["{$item}"]=$start.$item; } } closedir($dir); ksort($output); return $output; } $ff = filearray($file_dir."/"); function printXML($arr) { foreach($arr as $key => $val) { if(is_array($val)) { $folder_title=substr($key, $omit_folder_chars); ksort($val); printXML($val); }else { $file = $val; if(substr($file, -3) == 'mp3' || (substr($file, -3) == 'MP3')) { $file_title=substr($file,0,strlen($file)-4); // ID3v1 and ID3v2 tags parser $nome_arq = $file; $myId3 = new ID3($nome_arq); if ($myId3->getInfo()) { $f_title=$myId3->getTitle(); $f_artist=$myId3->getArtist(); } if(!($myId3->getArtist())) { $id3 = &new MP3_Id(); $result = $id3->read($file); $f_title=$id3->getTag('name'); $f_artist=$id3->getTag('artists'); } if ( $f_artist == '0' && $f_title == '0' ) { $arr_names = explode('/',strrev($nome_arq)); $substr = substr($arr_names[0],4,strlen($arr_names[0])); $arr_names_last = explode('_',strrev($substr)); //$f_artist = $arr_names_last[0]; //$f_title = $arr_names_last [1]; $f_artist = ''; $f_title = strrev($substr); } if($f_artist == '0'){ $f_artist=''; } $f_id=str_replace("/","",$file_title); $f_id=str_replace(".","",$f_id); $f_id=str_replace(">","",$f_id); $f_id=str_replace("<","",$f_id); $f_id=str_replace("=","",$f_id); $f_id=str_replace("(","",$f_id); $f_id=str_replace(")","",$f_id); $f_id=str_replace("\"","",$f_id); $f_title=encoding($f_title); $f_artist=encoding($f_artist); $f_title=conv($f_title); $f_artist=conv($f_artist); $file=encoding($file); $f_title=str_replace(">","",$f_title); $f_title=str_replace("<","",$f_title); $f_artist=str_replace(">","",$f_artist); $f_artist=str_replace("<","",$f_artist); $f_id=encoding($f_id); $f_id=conv($f_id); $path= $_SERVER['HTTP_HOST'] .$_SERVER['PHP_SELF']; $path=dirname($path); $file='http://'.$path.'/'.$file; // Writing in XML print ' <song id="'.$f_id.'" title="'.$f_title.'" artist="'.$f_artist.'" src="'.$file.'" />'; } } } } print '<?xml version="1.0" encoding="utf-8"?>'; print ' <playlist>'; printXML ($ff); print ' </playlist>'; ?> [Please use the "<>" code button in the future. Especially for code this long. This is ridiculously long.] Hey, this is my first time using this forum, so I apologize if I miss something and I'd like to thank you in advance for your help. I inherited some code from a different php programmer and it's not quite working right. The basics: We have a form for users to fill out where they select a Township from a drop down menu, then based on the township they choose there is a 2nd drop down populated with Range values. I can get the Township drop down to populate from the mysql database, but once you select the Township, the 2nd drop down does not populate as expected. This worked on the old web server (which I regrettably no longer have access to), but it's not working on the new web server. I hope that the problem is just a version issue where some syntax changed, but I'm not sure. Here's the function: Code: [Select] <?php echo "<form method='post' name='tsform' id='tsform' action='".$_SERVER['PHP_SELF']."'><input type=hidden name='page' id='page' value='viewfntown'>"; echo "<table><tr VALIGN=baseline><td></td>"; echo "<td>Township: <select name='ts' id='ts'><option value=''></option>"; $sql="SELECT distinct(township) from `linksurv_field_notes` WHERE `township`!='' order by `township`;"; $result=mysql_query($sql) or die("ts sel:".mysql_error()); $NumResults=mysql_num_rows($result); for ($q=1;$q<=$NumResults;$q++) { $row=mysql_fetch_row($result); $township=$row[0]; echo "<option value='".$township."'>".$township."</option>"; } echo "</select></td>"; echo "<td>Range: <select name='rg' id='rg'><option value=''></option>"; $sql="SELECT distinct(range) from `linksurv_field_notes` WHERE `range`!='' order by `range`;"; $result=mysql_query($sql) or die("rg sel:".mysql_error()); $NumResults=mysql_num_rows($result); for ($q=1;$q<=$NumResults;$q++) { $row=mysql_fetch_row($result); $range=$row[0]; echo "<option value='".$range."'>".$range."</option>"; } echo "</select></td>"; echo "<td><button type=button onClick=\"return submitCorner('NA','NA');\">Show All Corners</button></td>"; echo "</tr>"; echo "</table>"; ?> Also, here is the error I see in Firebug: Code: [Select] rg sel:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'range) from `linksurv_field_notes` WHERE `range`!='' order by `range`' at line 1 I've been stumped on this for a few weeks and any help you can give is appreciated. If I left some details out, just ask. Thanks. This topic has been moved to Other Libraries and Frameworks. http://www.phpfreaks.com/forums/index.php?topic=319295.0 I am trying to class type inheritance with Doctrine. Eventually, I will be defining things using XML, but all the examples are done using doctags. I found the following and it seems to work. <?php use Doctrine\ORM\Mapping as ORM; /** * Inventory entity * * @ORM\Entity(repositoryClass="Inventory") * @ORM\Table(name="inventory") * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="discriminator_column", type="string") * @ORM\DiscriminatorMap({"inventory" = "AbstractItem", "inventory_room" = "Room"}) */ abstract class AbstractItem { /** * @ORM\Id @ORM\Column(name="inventory_id") @ORM\GeneratedValue * @var int */ protected $inventory_id; /** * @ORM\Column(type="string") * @var string */ protected $category; /** * @ORM\Column(type="string") * @var string */ protected $part_number; } use Doctrine\ORM\Mapping as ORM; /** * Inventory Room entity * @ORM\Entity * @ORM\Table(name="inventory_room") */ class Room extends AbstractItem { /** * @ORM\Column(type="string") * @var string */ protected $room_type; /** * @ORM\Column(type="string") * @var string */ protected $rack_limit;
But then I convert it to XML or YAML, and I get a Entity class 'Room' used in the discriminator map of class 'AbstractItem' does not exist error when trying to build the classes. I've also tried changing the type to mappedSuperclass, but no success. Any ideas? Also, what is the purpose of the DiscriminatorColumn? Thanks
AbstractItem: type: entity table: inventory inheritanceType: JOINED discriminatorColumn: name: discriminator_column type: string discriminatorMap: inventory: AbstractItem inventory_room: Room repositoryClass: Inventory id: inventory_id: type: string fields: category: type: string part_number: type: string Room: type: entity table: inventory_room fields: room_type: type: string rack_limit: type: string
<?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity repository-class="Inventory" name="AbstractItem" table="inventory" inheritance-type="JOINED"> <discriminator-column name="discriminator_column" type="string" length="255"/> <discriminator-map> <discriminator-mapping value="inventory" class="AbstractItem"/> <discriminator-mapping value="inventory_room" class="Room"/> </discriminator-map> <id name="inventory_id" type="string" column="inventory_id"> <generator strategy="IDENTITY"/> </id> <field name="category" type="string" column="category" precision="0" scale="0" nullable="false"/> <field name="part_number" type="string" column="part_number" precision="0" scale="0" nullable="false"/> </entity> </doctrine-mapping> <?xml version="1.0" encoding="utf-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> <entity name="Room" table="inventory_room"> <id name="inventory_id" type="string" column="inventory_id"> <generator strategy="IDENTITY"/> </id> <field name="room_type" type="string" column="room_type" precision="0" scale="0" nullable="false"/> <field name="rack_limit" type="string" column="rack_limit" precision="0" scale="0" nullable="false"/> <field name="category" type="string" column="category" precision="0" scale="0" nullable="false"/> <field name="part_number" type="string" column="part_number" precision="0" scale="0" nullable="false"/> </entity> </doctrine-mapping>
Hi, when i extend a class containing a private variable and then access the variable in the extended class it doesn't produce any error and works fine and when i access the variable using the object of the extended class it works even then, i think private variable should not be accessable in an extended class neither by object of that extended class here is the code <?php class textbox{ var $body_text, $body_text1; private $body_private="this is private value"; protected $body_protect="this is protected value"; function __construct($text_in, $text_out){ $this->body_text=$text_in; $this->body_text1=$text_out; } function display(){ echo "$this->body_text<br>"; echo "<i>"; echo "$this->body_text1</i><br>"; echo "$this->body_private<br/>"; echo "$this->body_protect<br/>"; } function test_new(){ echo "see if this private echo works"; } } $box=new textbox("any new value","any old value" ); $box->display(); $box->body_text="this is public thats why i can access it"; $box->body_text1="this is public thats why i can access it"; /*$box->body_private="this is private value changed"; //you will see we can't access the private and protected memebers from outside $box->body_protect="this is protected value changed"; */ $box->display(); $box->test_new(); class textboxbold extends textbox{ function __construct($text_on, $text_off, $text_get, $text_go) {$this->body_text=$text_on; $this->body_text1=$text_off; $this->body_protect=$text_get; $this->body_private=$text_go; } function display(){ echo "<b>$this->body_text</b><br>"; echo "<b>$this->body_text1</b><br>"; echo "<b>$this->body_protect</b><br>"; echo "<i>$this->body_private</i><br>"; } } $boxnew=new textboxbold("new Bold text", "text in bold","protected member","private"); $boxnew->display(); $boxnew->body_private="this is simple text taken from outside"; $boxnew->display(); $boxnew->test_new(); ?> please recommend, is it working as it should be I have several "sites" located in my html directory, and each has a "general" access point and an "administrator" access point:
/var/www/html/site1/index.php /var/www/html/site1/administrator/index.php /var/www/html/site2/index.php /var/www/html/site2/administrator/index.php /var/www/html/site3/index.php /var/www/html/site3/administrator/index.phpAll sites are similar except that data will be specific to site1, site2, or site3, etc. Users who log onto /var/www/html/siteX/index.php are totally unrelated to those who logon to /var/www/html/siteX/administrator/index.php, will have different logon credentials, are stored in different DB tables, and each should have their own session. If a user logs off of either the general or administrator site, it should not effect the other site even if they were previously logged on to both on the same PC (and of course not effect other sites). When a user logs off, I would like to destroy their previous cookie and associated session. Users for either will only use https. I am using Apache to rewrite https://www.mysite.com/ to https://mysite.com/. While I named the administrator site "administrator" above, the administrator user has the ability to change the directory name. I am thinking I need to use session_set_cookie_params to specify where I wish the session cookie to be stored since /var/www/html/siteX/administrator/index.php is a sub-directory to /var/www/html/siteX/index.php, but am not really sure. Sorry for the cryptic post, but I am not very well versed in this subject. How would you recommend setting up cookies/sessions for this scenario? Thank you now i use this code to show where the visitors came from to my site. <?php $referer=$_SERVER['HTTP_REFERER']; echo $referer; ?> now, i want to show the 5 latest vistors referer's site url on my site ? Not sure if I'm trying to achieve something totally crazy here, or if this is something pretty standard. Didn't have much luck with searching as I'm not fully down with all the terms. (A) I have one site providing an RSS feed. (B) I have one site I want to search, once for each of the items in the feed A. (C) I want the results of the search in (B) to be displayed on page (C). So for example, the feed on (A) says; apples bananas oranges cheese I want site (B) to search for each of those terms (by passing the item in the feed (A) to the ?search= part of the URL of that page) and then show the results from THAT search on page C. Bit of a complex one, let me know if you need me to clarify. Thanks for any help! Hi, My first post here is a cry for help I have a Windows 2003 server running IIS6/PHP5, the server hosts multiple web sites. The problem is include files that are for site A are showing on site B (each site having its own includes as part of the site files in its own site folder), though not every time, its very random, sometimes the correct includes show, sometimes ones from another site on the same server. This only occurs where the include files for both sites have the same name, such as 'inc-header.php' for example. I can only assume PHP is caching includes and because they have the same name is showing the wrong one on other sites sometimes, if I rename them to something unique then the problem goes away, but its not a practical solution to rename all include files to unique names so I find myself looking for a 'real' fix. I have a feeling its to do with the include_path in the php.ini, but right now its disabled with a semi-colon, and I don't want to set one as I have no global includes, all includes are site specific. Any help would be very much appreciated! Phil I'm currently running a classified ads site and planning to display my own content from database combined with and external site rss. So here is what i got right now after the db query for the jobs ads (procedural php),
while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)){ echo '<div class="media margin-none"> <a class="pull-left bg-inverse innerAll text-center" href="#"><img src="'.$foto.'" share_alt="" width="100" height="100"></a> <div class="media-body innerAll"> <h4 class="media-heading innerT"> <a href="' . $row['title'] .'-da' . $row['id_ad'] . '" class="text-inverse">'. $remuneracion .' ' . substr(ucfirst(strtolower($row['title'])), 0, 53) . '</a> <small class="pull-right label label-default"><i class="fa fa-fw fa-calendar-o"></i> ' . $row['date_created'] . '</small></h4> <p>' . substr(ucfirst(strtolower($row['description'])), 0, 80) . ' ...</p>'; echo '</div> </div> <div class="col-separator-h"></div>'; } echo pagination($statement,$per_page,$page, $url_filtros, $filtros); ?>it is the while loop that i use to display ads from my database, what could be the best way to display (in this same loop?) other site's rss feed so i can show my content combined with the external rss? Thanks Transferring data from sub-domain.site.com Reading sub-domain.site.com What is this all about? I'm going to put all .. images into a separate sub-domain eg: images.site.com. This would create a folder inside my public_HTML called "images" Now when sites have that Transferring data, and Reading... is this .. something relating to what I want. Facebook also does it, and they get their images for the site from a sub domain, how is it all done? I'm not sure if its entirely PHP, but I hope someone can help. Thanks Hi I made a new design for my website and I made some changes. I want to use layout for my second site.
I'll like to know if my site is easier to browse through now and if you like the design better?. I test my site on internet explorer, chrome, and firefox. It is best to use site on better browsers like firefox and chrome to get a better experience of site. Thanks.
http://adjade.com
This topic has been moved to mod_rewrite. http://www.phpfreaks.com/forums/index.php?topic=318858.0 How do I only redirect the page when index.php is present? How can i make echo "<b>Site:</b> ".$req_user_info['site']."<br>"; linkable The site raw fron the db contains an site url. Regards guys i have a submit button that if(isset($_POST['sub_diplo'])) { $_SESSION['tmp']=$_SESSION['tmp']." counts "; } but tthe button is at the end of the page so when i press the button the page reloads and gose to start! exept that my code working! so is any way to move page to first location?? thanks Hi, I have 2 pages, config.php and category.php config.php is Code: [Select] class CategoryWork { public $form = ""; public $error = ""; public $add_form = "<br /><p><strong>Add New Category</strong></p><form id=\"form1\" name=\"form1\" method=\"post\" action=\"category.php?action=add\"> <table width=\"550\" height=\"170\" border=\"0\"> <tr> <td width=\"153\">Name :</td> <td colspan=\"2\"><label for=\"cat_name\"></label> <input name=\"cat_name\" type=\"text\" id=\"cat_name\" size=\"50\" maxlength=\"50\" /></td> </tr> <tr> <td>Slug :</td> <td colspan=\"2\"><label for=\"cat_slug\"></label> <input name=\"cat_slug\" type=\"text\" id=\"cat_slug\" size=\"50\" maxlength=\"50\" /></td> </tr> <tr> <td>Description</td> <td colspan=\"2\"><label for=\"cat_desc\"></label> <textarea name=\"cat_desc\" id=\"cat_desc\" cols=\"48\" rows=\"10\"></textarea></td> </tr> <tr> <td> </td> <td width=\"97\"><input type=\"submit\" name=\"button\" id=\"button\" value=\"Submit\" /></td> <td width=\"286\"><input type=\"reset\" name=\"button2\" id=\"button2\" value=\"Reset\" /></td> </tr> <tr> <td> </td> <td colspan=\"2\"></td> </tr> </table> </form>"; public $edit_form1_first = "<br /><p><strong>Edit Category</strong></p><form id=\"form1\" name=\"form1\" method=\"post\" action=\"category.php?action=edit\"> <table width=\"454\" height=\"79\" border=\"0\"> <tr> <td width=\"110\">Category :</td> <td width=\"334\"><label for=\"select\"></label> <select name=\"select_cat\" id=\"select\">"; public $edit_form1_last = "</select> </td> </tr> <tr> <td> </td> <td><input type=\"submit\" name=\"button\" id=\"button\" value=\"Submit\" /></td> </tr> </table> </form>"; public $invalid_get_error = "<br /><br /><p><font color=\"#990000\"><strong><em>ERROR : Invalid Option.</em></strong></font></p>"; public function CheckAction($action){ if(!isset($action)) { header("Location:dashboard.php"); } else { $action = $action; if($action == "add") { $this->form = NULL; $this->form = $this->add_form; } else if ($action == "edit") { $this->form = NULL; $this->form = $this->GenerateDropDown(); } else if ($action == "del") { $this->form = "del"; } else { $this->form = $this->invalid_get_error; } // if else .. else if ends here }// if else ends here } // Function CheckAction ends public function ValidateAddForm($name, $slug, $desc){ if(isset($name) || isset($slug) || isset($desc)) { if($name == NULL || $slug == NULL || $desc == NULL) { $this->error = "<br /><br /><p><font color=\"#990000\"><strong><em>ERROR : All 3 fields are required.</em></strong></font></p>"; } else { // Data Insert in database $name = $name; $slug = $slug; $desc = $desc; $check_category_query = "SELECT * FROM category where slug = '$slug'"; $check_category_result = mysql_query($check_category_query); $check_category_count = mysql_num_rows($check_category_result); if($check_category_count == 1) { $this->error = "<br /><br /><p><font color=\"#990000\"><strong><em>ERROR : Slug Already exists.</em></strong></font></p>"; } else if ($check_category_count == 0) { // Do insertion in database $categoryinsert_query = "INSERT INTO category (name, slug, description) VALUES ('$name', '$slug', '$desc')"; $categoryinsert_result = mysql_query($categoryinsert_query); $this->error = "<br /><br /><font color=\"#009900\"><p><em><strong>Success, Category added.</strong></em></p></font>"; } } } } // function ends here public function GenerateDropDown(){ $dropdown_query = "SELECT * FROM category ORDER BY name"; $dropdown_result = mysql_query($dropdown_query); echo $this->edit_form1_first; while($row = mysql_fetch_array($dropdown_result)) { echo "<option value=".$row['id'].">".$row['name']."</option>"; } echo $this->edit_form1_last; } // end of GenerateDropDown function } Here is the code of category.php page Code: [Select] <?php include('config.php'); $system = new SystemAdmin; $categorywork = new CategoryWork; $system->ValidateToken($_COOKIE['token']); $categorywork->CheckAction($_GET['action']); $categorywork->ValidateAddForm($_POST['cat_name'], $_POST['cat_slug'], $_POST['cat_desc']); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Welcome <?php echo $system->username; ?></title> <?php echo $system->metalines; ?> <?php echo $system->slug_javascript; ?> </head> <body> <h1>Welcome <?php echo $system->username; ?>,</h1> <?php echo $system->mainmenu; ?> <?php echo $system->spryfunctions; ?> <?php echo $categorywork->error; ?> <?php echo $categorywork->form; ?> </body> </html> Problem is that when I go to /category.php?action=edit, it shows dropdown at the top of page and not at the position of <?php echo $categorywork->form; ?> I have attached a screenshot, please go through it. How can I solve this ? Second problem is how can I hide undefined index notice ? Hi all, Not sure if this is a browser feature kind of thing, or if it can be done with a script. I'm looking at my page: www.mysite.com/index.php?start=0 I scroll to the bottom of the page with the vertical scroll bar, and then click the pagation link to start on page 2, record #50: www.mysite.com/index.php?start=50 Of course, the vertical scroll bar jumps back to the it jumps to the top of my page. Is there a way to make it remember that the scroll bar was at the bottom (or in the middle)? Thanks. Hello. i have created a template in dreamweaver, however when i added php code to a page the position of my bottom div got messed up... it works 100% with just text. I have a container div with other divs in it. inside the container div i have a div named content, and this div is the only div which is editable. in the bottom (outside of the container div) i have a bottom div which is centered with margin:0 auto; this divs position gets totally messed up once i add php code in the content div. http://elevweb.skit.no/0111nema/action_adventure.php here is the link to the page with php with it, as u can see the div with facebook etc in it got a messed up position. Hey all, If I have a number like this: 1245 then I want a '.' inserted at position -2: 12.45 how do I do that in the most simple and elegant way? 74342 -> 743.42 |