tschulian Geschrieben 19. November 2014 Teilen Geschrieben 19. November 2014 Guten Morgen, Momentan habe ich noch eine settings.cfg in der ich die Einstellungen (z.B. Titel der Website in der index.php, oder Namen von Menüpunkten) nur mit einem FTP Client verändern kann. Ich wollte, um meine Hauptinformationen über mein Backend zu bearbeiten, die settings in eine Tabelle auslagern. Habe dazu ein Template von einer älteren Homepage genommen (die ich nicht selber Programmiert habe) und die Codeschnipsel in meine settings.cfg eingefügt. Problem an meiner Version: wenn $aConfig = array(array()); nicht auskommentiert ist, erhalte ich eine komplett weiße Seite (deutet auf nen Syntaxfehler hin, oder?) meine Version (zusammengesetzt aus den Schnipseln): $this -> initSettings(); $aConfig = array(array()); public function initSettings() { $cfgQuery = mysql_query("select * from dbo._settings"); while($row = mysql_fetch_array($cfgQuery)) { //$row['ValueName'] = $row['Value']; //$row['Value'] = $row['ValueName']; $this -> aConfig[$row['ValueName']] = $row['Value']; } } */ $website_title = $row['hs1'];[/PHP] Original Files Index.php [PHP] <?php require_once('config.php'); require_once('core.php'); global $core; $core = new core(); core::$sql-> changeDB('acc');?><!DOCTYPE html> <html lang="en"> <head> <title><?php echo $core -> aConfig['WebsiteName']; ?></title> //WebsiteName ist der WertName aus der dbo.setting core.php class core { public $aConfig = array(array()); function __construct() { session_start(); //$this -> _loadClasses(); $this -> initCore(); $this -> initSettings(); $this -> setIniVariables(); } private function initSettings() { $isQuery = mysql_query("select * from settings"); while($row = mysql_fetch_array($isQuery)) { $this -> aConfig[$row['WertName']] = $row['Wert']; } } }[/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fiae12 Geschrieben 19. November 2014 Teilen Geschrieben 19. November 2014 (bearbeitet) Ich vermute (wie bereits irgendwo mal gesagt, ich bin kein PHP-Fachmann, lerne es gerade selber noch), dass es bei dir "knallt" weil du zuerst einmal ein zweidimensionales Arrays initialisierst $aConfig [] [] (zweidimensional dann weißt du diesem aber ein Wert zu: aConfig[$row['ValueName']] = $row['Value']; also $aConfig[] = $value das müsste dann ja $aConfig[][] = $value sein, wenn ich mich nicht irre. Also müsstest du glaube ich deine doppelte Arrays initialisierung ändern in eine Einfache... weil am Ende willst du so wie ich verstehe ein eindimensionales-assoziatives Array. PS: Schau dir mysqli_ oder PDO an ... mysql ist veraltet. Zusätzlich habe ich mal irgendwo aufgeschnappt, dass "SELECT * ..." unschön ist. Schreibe lieber alle Spalten genau hin. Hat den vorteil, dass Sich die Abfrage NICHT verändert, wenn du mal die Tabelle änderst (Spalten hinzufügst, oder entfernst) Gruß Edit: Oder es liegt evtl. an der sichtbarkeit deiner variable ? Du benutzt es scheinbar innerhalb einer Klasse, hast aber nicht public vorgeschrieben ... kann natürlich auch sein, dass du dies weiter oben getan hast... Vergiss, was ich oben geschrieben habe... Bei den Originalfiles klappt es ja. Müsste an der Sichtbarkeit der Variable $aConfig liegen. Bei den Originalfiles ist es eine public Eigenschaft der Klasse und wird mit $this-> angesprochen. Bei dir auch, nur ist bei dir die Variable keine public Eigenschaft der Klasse. Hast du die PHP-Feldermeldungen aktiviert in deiner Entwicklungsumgebung? Bearbeitet 19. November 2014 von fiae12 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschulian Geschrieben 19. November 2014 Autor Teilen Geschrieben 19. November 2014 Das Array müsste so eig. passen array(array()); ist ja ein zweidimensionales array Das mit mysqli und pdo ist ja wie gesagt schön und gut, aber ich will erstmal das Grundgerüst jetzt endlich fertig kriegen. Danach kann man sich ja über modifikationen gedanken machen. Die Syntaxen aller querys bleibt ja fast gleich. aber ich fang jetzt nicht mitten drin an alles auf mysqli zu stellen. Hab jetzt public $aConfig = array(array()); gemacht krieg aber immer noch weißes Fenster. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fiae12 Geschrieben 19. November 2014 Teilen Geschrieben 19. November 2014 Das Array müsste so eig. passen array(array()); ist ja ein zweidimensionales array ... Hab jetzt public $aConfig = array(array()); gemacht krieg aber immer noch weißes Fenster. Konnte meinen Beitrag irgendwie nichtmehr bearbeiten. Du hast Recht mit dem Array, sollte so passen. Nochmal: Hast du die PHP-Fehlermeldungen an? Mach sonst mal rechtsklick auf den Browserfenster und Quelltext anzeigen und guck mal was da so steht. Sonst würde ich mal vermuten, dass deine SQL-Abfrage aus irgendeinem Grund nichts zurückliefert? Steht was in der Tabelle? Ist der Tabellenname richtig? Sprichst du nach dem hinzufügen der Werte zum Array bei der Ausgabe die Indizes des Arrays wieder richtig an? etc. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschulian Geschrieben 19. November 2014 Autor Teilen Geschrieben 19. November 2014 (bearbeitet) Der Quelltext ist leer wenn ich ihn Anzeigen lasse. Php Fehlermeldungen sind aus. Ja, die Namen sind definitiv richtig. Habe jetzt error_reporting(E_ALL); auf der index eingebunden, sehe dennoch noch keinen Error. Bearbeitet 19. November 2014 von tschulian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fiae12 Geschrieben 19. November 2014 Teilen Geschrieben 19. November 2014 Php Fehlermeldungen sind aus. Dann mach Sie doch mal an ... und guck mal was dir für ein Fehler ausgespuckt wird. Soweit ich weiß in der php.ini und/oder in der config Datei deines Webservers ... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschulian Geschrieben 19. November 2014 Autor Teilen Geschrieben 19. November 2014 echo error_reporting(E_ALL); zeigte folgendes an: 22519 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fiae12 Geschrieben 19. November 2014 Teilen Geschrieben 19. November 2014 Nee.... nicht echo. echo ist ja eine Ausgabe... // Muss in die erste Zeile des Scripts error_reporting(E_ALL); [/PHP] Einfach die Einstellung setzten, darauf dass alle Fehler angezeigt werden sollen .. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschulian Geschrieben 20. November 2014 Autor Teilen Geschrieben 20. November 2014 Ja, und wo kann ich das dann auslesen, hab nirgendwo ein Logfile, hab das nochnie so gemacht... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fiae12 Geschrieben 20. November 2014 Teilen Geschrieben 20. November 2014 Sofern Fehler auftreten sollten diese dir direkt im Browser angezeigt werden ... evtl. liegt irgendwo anders dein Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
feuerjinn Geschrieben 20. November 2014 Teilen Geschrieben 20. November 2014 (bearbeitet) Wenn die Seite komplett weiß ist, kannst du ja mal im "seiten-Quelltext" (Je nach Browser heisst das anders) nachschauen. Dorthin werden dann oft PHP Fehler rausgeschrieben. Ein paar Anmerkungen sind wir noch am Quellcode aufgefallen. Du übernimmst ja den Code aus einer Klasse, übernimmst du nur die Klasse oder nur die Funktion? Nach der Public Function steht ein "*/" im Raum, gehört das dahin oder Wurde der gesamte Block auskommentiert? Generell sollte man aufpassen, wenn man fremdem Code kopiert den man eventuell noch nicht ganz durchschaut hat. Bearbeitet 20. November 2014 von feuerjinn Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschulian Geschrieben 21. November 2014 Autor Teilen Geschrieben 21. November 2014 der Code ist von meiner anderen Homepage, die ich vor 2 Jahren als Schulprojekt erstellen musste. Jetzt wollte ich die class.user.php auflösen und die Klassen und Funktionen die ich nicht brauche entfernen. Habe dann die hier benötigte Funktion mit allen Teilen in die setttings kopiert und jetzt entsteht ein Fehler. Ja die Seite ist komplett weiß, aber wenn ich den Quelltext anzeigen lassen, sehe ich genau nichts. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
markuskoehler Geschrieben 25. November 2014 Teilen Geschrieben 25. November 2014 Also wie ich verstehe hast du error_reporting(E_ALL) gesetzt. Umfänglicher wäre u.U. noch error_reporting(-1), das zeigt dir wirklich alle Fehler an. Evtl. musst du, damit du die Fehler auch siehst, in der php.ini noch display_errors=On setzen, dann solltest du aber definitiv nen Fehler sehen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
feuerjinn Geschrieben 25. November 2014 Teilen Geschrieben 25. November 2014 Habe es ebend bei meinem PHP-Code getestet. Dieses */ verursacht den fehler. $this -> aConfig[$row['ValueName']] = $row['Value']; } } ------->>>> */ $website_title = $row['hs1']; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.