I developed a website that is based on Joomla for a client. The client have a shared hosting account in hostgator.
Web sitesinin ilk sürümü müşterinin hosting hesabı üzerinde birkaç ay boyunca sorunsuz çalıştı. Web sitesinin ikinci versiyonu (hosgator içinde) barındıran bir VPS üzerinde geliştirilen ve orada çalışıyor, ama ben hosting taşımak çalıştığınızda, bazı hataları almak oldu.
Yeni sürümde başlıca gelişmeler şunlardır:
1) jConnect Ekleme (www.webscribble.com/jconnector?utm_source=joomla&utm_medium=listing&utm_content=jconnector&utm_campaign=jconnector)
2) daireler arasında çevirmek için nakit daireler listesini kaydetme.
The new version on development server - homehotel4.zone1global.com/ And the new version on shared hosting - www.homehotel.co.il/
Ben olsun hataları yeni gelişmelerden biri koduna ancak çekirdek joomla kodu (bu kod aynı kalmış olsa bile) işaret etmemektedir.
The errors happens when I try to add a new property to the web site. If you'll look at the property page of an old property (from the old version) like property number 60, The page loads fine both on the VPS hosting (homehotel4.zone1global.com/component/realtyna/?view=propertyshow&pid=60) and the on the shared hosting (www.homehotel.co.il/component/realtyna/?view=propertyshow&pid=60)
I've added a new property on both hostings, on the VPS hosting the property page loads without problems (homehotel4.zone1global.com/component/realtyna/?view=propertyshow&pid=580)
but on the shared hosting I get errors in the new property page (www.homehotel.co.il/component/realtyna/?view=propertyshow&pid=580) :
Earlier today when I tried to enter the new property page :
homehotel.co.il/component/realtyna/?view=propertyshow&pid=580
I got the error :
"Catchable fatal error: Object of class JDatabaseMySQL could not be converted to string in /home/gahlnir/public_html/libraries/joomla/database/database.php on line 588"
I just tried to enter this URL again and I'm no longer getting the error (the same thing happens every time when I add a property in the new version on the shared hosting)
And when I'm trying to enter the same URL but with the "www" (www.homehotel.co.il/component/realtyna/?view=propertyshow&pid=580)
I get a different error :
"Fatal error: Cannot use object of type JDocumentHTML as array in /home/gahlnir/public_html/libraries/joomla/document/html/html.php on line 272"
(this error didn't disappear)
Ben hatları hataları noktaları üzerinde kodunu kontrol etmek denedim -
kütüphanelerde hat 588 / joomla / database / database.php satırı:
$literal .= str_replace( $prefix, $this->_table_prefix,substr( $sql, $startPos, $j - $startPos ) );
fonksiyon olarak replacePrefix
/**
* This function replaces a string identifier <var>$prefix</var> with the
* string held is the <var>_table_prefix</var> class variable.
*
* @access public
* @param string The SQL query
* @param string The common table prefix
*/
function replacePrefix( $sql, $prefix='#__' )
{
$sql = trim( $sql );
$escaped = false;
$quoteChar = '';
$n = strlen( $sql );
$startPos = 0;
$literal = '';
while ($startPos < $n) {
$ip = strpos($sql, $prefix, $startPos);
if ($ip === false) {
break;
}
$j = strpos( $sql, "'", $startPos );
$k = strpos( $sql, '"', $startPos );
if (($k !== FALSE) && (($k < $j) || ($j === FALSE))) {
$quoteChar = '"';
$j = $k;
} else {
$quoteChar = "'";
}
if ($j === false) {
$j = $n;
}
$literal .= str_replace( $prefix, $this->_table_prefix,substr( $sql, $startPos, $j - $startPos ) );
$startPos = $j;
$j = $startPos + 1;
if ($j >= $n) {
break;
}
// quote comes first, find end of quote
while (TRUE) {
$k = strpos( $sql, $quoteChar, $j );
$escaped = false;
if ($k === false) {
break;
}
$l = $k - 1;
while ($l >= 0 && $sql{$l} == '\\') {
$l--;
$escaped = !$escaped;
}
if ($escaped) {
$j = $k+1;
continue;
}
break;
}
if ($k === FALSE) {
// error in the query - no end quote; ignore it
break;
}
$literal .= substr( $sql, $startPos, $k - $startPos + 1 );
$startPos = $k+1;
}
if ($startPos < $n) {
$literal .= substr( $sql, $startPos, $n - $startPos );
}
return $literal;
}
Ve çizgi kütüphaneleri / joomla / belge / html / html.php 272 fonksiyon countModules bir çizgi:
/**
* Count the modules based on the given condition
*
* @access public
* @param string $condition The condition to use
* @return integer Number of modules found
*/
function countModules($condition)
{
$result = '';
$words = explode(' ', $condition);
for($i = 0; $i < count($words); $i+=2)
{
// odd parts (modules)
$name = strtolower($words[$i]);
$words[$i] = ((isset($this->_buffer['modules'][$name])) && ($this->_buffer['modules'][$name] === false)) ? 0 : count(JModuleHelper::getModules($name));
}
$str = 'return '.implode(' ', $words).';';
return eval($str);
}
(272 satırı: $ kelimeler [$ i] = ((isset ($ this-> _buffer ['modüller'] [$ isim])) && ($ this-> _buffer ['modüller'] [$ isim] === false)) 0:? sayımı (JModuleHelper :: getModules ($ isim)) ;)
In case it's relevant :
VPS :
PHP Version 5.2.9
MYSQL - Client API version 5.0.91
Shared hosting :
PHP Version 5.2.14
MYSQL - Client API version 5.1.50
Ben forumları aradım ama böyle bir şey bulamadık. Herhangi ne barındırma paylaşılan bu hataları couse olabilir fikir?
------------------------------------------- GÜNCELLEME ------ -----------------------------------
Birkaç saat sonra, sayfa (Ben bir şey değişmemiş olsa bile) farklı hareket başladı -
I'm no longer getting the error :
"Catchable fatal error: Object of class JDatabaseMySQL could not be converted to string in /home/gahlnir/public_html/libraries/joomla/database/database.php on line 588"
Now I only get the error :
"Fatal error: Cannot use object of type JDocumentHTML as array in /home/gahlnir/public_html/libraries/joomla/document/html/html.php on line 272"
(both when I have WWW in the URL and when I don't), but the errors doesn't show up all the time. I can enter the page and have no errors and then load it again and have this error.
Ne web sitesinin bu garip davranışa neden olabilir?