Deutschland United States United Kingdom
ContentLion - Open Source CMS

if($row = mysql_fetch_row($res))....

if($row = mysql_fetch_row($res))....

Hallo

bin gerade bei kapitel 14 angelangt und hab immer wieder das gleich Problem. Ich bekomme immer wieder die Fehlermeldung, dass die Tabel nicht gefunden wird, obwohl diese aber exzesstiert. In einem der vorigen Kapitel hatte ich schon einmal das gleich Problem, allerdings war dieses behoben, nach dem ich den Quellcode per Hand noch einmal eingegeben hatte.
Ich benutze Strato und immer wieder hat er ein Problem mit dieser Zeile...if($row = mysql_fetch_row($res)){

Wenn ich die Index.php im Browser aufruf bekomme ich folgendes zu sehen...
1
Error 404 - Not Found


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/webd/c2/65/52559165/htdocs/test_server/cms/system/classes/skincontroller.php on line 12
Test erfolgreich!

Was mach ich falsch?

versuchs mal mit index (kliengeschrieben).

Ansonsten kannst du im skincontroller.php vor der Zeile 12 eine neue Zeile mit "echo mysql_error()" schreiben? Dann dürftest du mehr sehen.

Gruß Stefan

Hi
vielen Dank erst einmal.
1. wie den index kleinschreiben? den schreibt man doch immer klein oder? ;) und ohne suffix?
2. wenn ich den mysql erro() befehl reinschreibe kommt eine merkwürdige Meldung...Table 'DB1088797.cms_settingsskins' doesn't exist allerdings hab ich
die Tabel schon gelegt und sie exzesstiert auch. Ich hab es auch schon wiederholt.

Das spuckt der Browser aus wenn ich folgendes eingegebe.
meinverzeichnis/cms/testseite.html

1

Testseite

Table 'DB1088797.cms_settingsskins' doesn't exist
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/webd/c2/65/52559165/htdocs/test_server/cms/system/classes/skincontroller.php on line 13
Test erfolgreich!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ScriptBee« (11. Juni 2012, 20:20)


Kannst du das Skript (skincontroller) mal hier posten? Die Tabelle cms_settingsskins soll es gar nicht geben ;-)
Mit index kleinschreiben meine ich, dass du oben Index.php statt index.php geschrieben hast.

Here it is..

<?PHP
class SkinController{

function getCurrentSkinId(){
return getSetting("selectedskin");
}

function getCurrentSkinName(){
global$dbpraefix;
$res=mysql_query("SELECT name FROM ".$dbpraefix."skins
WHERE id = '".SkinController::getCurrentSkinId()."'");
if($row=mysql_fetch_row($res)){ <---mit dieser Zeile gibt es die Probleme ,-(
return$row[0];
}
else{
return"default";
}
}

function getCurrentSkinPath(){
return"system/skins/".SkinController::getCurrentSkinName();
}
}
?>

ahh dann hab ich glaub ich den Fehler. Kann sein, dass du in der Datei /system/dbsettings.php bei $dbprefix "cms_settings" statt "cms_" eingegeben hast?

oh da hab ich etwas falsch verstanden. Habs jetzt geändert, nur hab ich jetzt mit der "settings.php" meine Problem...

Testseite


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /mnt/webd/c2/65/52559165/htdocs/test_server/cms/system/settings.php on line 5
Table 'DBXXXXX.cms_' doesn't exist
Test erfolgreich!


der quelltext sieht so aus...

<?PHP
function getSetting($property){
global $dbpraefix;
$res = mysql_query("SELECT value FROM ".$dbpraefix." WHERE property = '".$property."'");
$row = mysql_fetch_row($res);
echo mysql_error();
return $row[0];

}
?>


vor hab ich an dieser Stelle keine Fehlermeldung bekomm. Komisch obwohl ich "cms_settings" statt "cms" hatte!

mach da mal ...".$dbpraefix."settings... raus.
das $dbpraefix beschreibt, was vor dem eigentlichen Tabellennamen geschrieben wird.

Also hatte jetzt einfach einmal den das Script noch einmal neu hochgeladen und es kam keine Fehlermeldung mehr....

<?PHP
function getSetting($property){
global $dbpraefix;
$res = mysql_query("SELECT value FROM ".$dbpraefix."settings WHERE
property = '".$property."'");
$row = mysql_fetch_row($res);
return $row[0];
}
?>


Bin jetzt gerade bei dem Kapitel "PHP Breadcrumb erstellen" hängen gebilden. ;( Versuch auch wieder den Fehler zu finden und bin viel am lesen...

Testseite -> Testseite 2
Warning: include(content/articles/testseite2.php) [function.include]: failed to open stream: No such file or directory in /mnt/webd/c2/65/52559165/htdocs/test_server/cms/system/classes/page.php on line 43

Warning: include() [function.include]: Failed opening 'content/articles/testseite2.php' for inclusion (include_path='.:/opt/RZphp52/includes') in /mnt/webd/c2/65/52559165/htdocs/test_server/cms/system/classes/page.php on line 43


Page script


<?PHP
class Page{
var $id = -1;
var $alias = '';
var $title = '';
var $ownerid = -1;
var $owner = false;

function loadProperties($alias){
global $dbpraefix;
$res = mysql_query("SELECT id,title,owner FROM ".$dbpraefix."pages
WHERE alias = '".$alias."'");
if($row = mysql_fetch_row($res)){
$this->id = $row[0];
$this->title = $row[1];
$this->ownerid = $row[2];
$this->alias = $alias;
}
}
function getOwner(){
global $dbpraefix;
if(!$this->owner){
$res = mysql_query("SELECT alias FROM ".$dbpraefix."pages
WHERE id = '".$this->ownerid."'");
if($row = mysql_fetch_row($res)){
$this->owner = new Page();
$this->owner->loadProperties($row[0]);
}
}
return $this->owner;
}

function getBreadcrump(){
if(!$this->owner) $this->getOwner();
if($this->owner){
$breadcrump = $this->owner->getBreadcrump();
}
$breadcrump[] = array($this->alias,$this->title);
return $breadcrump;
}

function getContent(){
include(filterfilename("../content/articles/".$this->alias)); <--- hier mit hat er Problem
}
}
?>
Meine Frage welche Filterfilename Datei soll man benutzen. Es werden zwei angegeben. Die erst erwähnte Datei im Blog

Zitat


<?PHP
function filterfilename($filename){
$filename=strtolower($filename);
$filename=preg_replace("/[^a-z0-9\-\/]/i","",$filename);
if($filename[0]=="/"){
$filename=substr($filename,1);
}
$filename.=".php";
if(!file_exists($filename)){
$filename="content/articles/errors/404.php";
}
return$filename;
}
?>

bekommen "404 Error - Seite nicht gefunden".
Bei der Zweiten


<?PHP
function filterfilename($filename){
if ($filename == "content/articles/") {
$filename .= "errors/404";
}
$filename = strtolower($filename);
$filename = preg_replace("/[^a-z0-9\-\/]/i","",$filename);
if($filename[0] == "/"){
$filename = substr($filename,1);
}
$filename .= ".php";
return $filename;
}
?>
gibt mir die oben gezeigte Fehlermeldung aus.

Die Breadcrumbs funktionieren aber...;)

Hast du das CMS in einem Unterordner, oder auf oberster ebene der Domain?

ich hab es in einem Unterordner....domain-> test-ordner -> cms

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ScriptBee« (15. Juni 2012, 21:29)


ahh ok. Im damaligen Stand wurde das nicht unterstützt. Wärs möglich bei dir nen VHost oder ne Subdomain dafür anzulegen?
Ansonsten müssen wir mal schauen.

Mit dem VHost ist bei dem Rechner an dem ich arbeite ( Firma und Mac) voll der Mist, weil ich leider das root Kennwort nicht kenne. Das mit der Subdomain
ist es möglich, hab es auc schon getan. Nur wir jetzt nur noch das Menu angezeigt...

1. Ich geb im Browser nur die Subdomain ein...

Error 404 - Not Found


2. Ich geb die Subdomain/testseite.htm ein

Not Found

The requested URL /testseite2.htm was not found on this server.



Mein Htaccess datei sieht so aus. Ist doch richtig oder hab ich etwas falsch Verstanden?

RewriteEngine on
RewriteCond %{REQUEST_URI} test_server/cms/(.*).htm
RewriteRule (.*) index.php?include=%1


Irgendwie funktioniert gerade nichts mehr, alles hat ja habwegs funktioniert bis auf der Content nicht geladen wurde.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ScriptBee« (16. Juni 2012, 15:28)


was hast du in der cms_settings stehen?

cms_settings? Du meinst die Einstellung in der Datenbank oder meintest du settings.php?

settings.php

<?PHP
function getSetting($property){
global $dbpraefix;
$res = mysql_query("SELECT value FROM ".$dbpraefix."settings WHERE
property = '".$property."'");
$row = mysql_fetch_row($res);
return $row[0];
}
?>

datenbank...

SQL-Befehl: SELECT * FROM `cms_settings` LIMIT 0, 60 ;
Zeilen: 3
property value
title Test CMS
selectedskin 1
globalmenuid 1

ahh,

hab grad nochmal deinen alten Post gelesen.
Mit der Subdomain steht noch folgendes drin?
RewriteCond %{REQUEST_URI} test_server/cms/(.*).htm

mach da mal folgendes raus:
RewriteCond %{REQUEST_URI} /(.*).htm

Kannst übrigens beim Einfügen ins Forum auf "<?" tippen, wenn du Code eingibst, so kann man den hier besser sehen ;-)

Hi
entschuldige, wenn ich mich jetzt erst wieder melde.
Hat alles soweit funktioniert und bin jetzt an der
Stelle Seite "Bearbeiten’ goes WYSIWYG". Alles super!
Nur bei einer Sache muss ich meckern ... es ist ein
bisschen unübersichtlich an einigen Stellen ;)
z.b. der Quellcode auf der obergenannten Seite ist doppelt
am Anfang, nichts für ungut— es steigert mein Bewustsein für den Quellcode ;)


<input name="alias" value="<?PHP echo $page->alias; ?>" /><br />
<label for="content" />Inhalt</label>
<script type="text/javascript" src="/system/WYSIWYG/tiny_mce.js"></script>
<script type="text/javascript">


<input name="alias" value="<?PHP echo $page->alias; ?>" /><br />
<label for="content" />Inhalt</label>

<script type="text/javascript" src="/system/WYSIWYG/tiny_mce.js"></script>
<script type="text/javascript">




Es macht Spass und das ist Hauptsache! 8)