zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Seit PHP5 funktioniert Include nicht mehr.

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 18.08.2011, 16:31
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.08.2011
Beiträge: 4
Chefechse befindet sich auf einem aufstrebenden Ast
Standard Seit PHP5 funktioniert Include nicht mehr.

Hallo Leute,

habe folgendes Problem:

Ich möchte in eine Datei "banner.php" eine Datei "configuration.php" includen.
leider werden die Variablen aus der includierten Datei nicht übergeben.

Unter PHP4 funktionierte das Script einwandfrei


Hier mal die Auszüge aus den Dateien.

configuratio.php

PHP-Code:
<?php
class JConfig {
    var 
$host 'localhost';
    var 
$user 'username';
    var 
$db 'Datenbankname';
        var 
$password 'user-pass';
}
?>
banner.php

PHP-Code:
<?php

//-----------------------
include  ("configuration.php");

$database mysql_connect($host$user$password);
mysql_select_db($db);

...
....
?>
übergebe ich die Werte so an die SQL-Abfrage funktioniert es.

PHP-Code:
include  ("configuration.php");

$database mysql_connect($host$user='username'$password='user-pass'true) or die("Konnte keine Verbindug zur Datenbank herstellen!");
mysql_select_db($db='Datenbankname'); 
Habe schon Stunden im Netz verbracht, habe auch schon einiges Probiert,
jedoch immer wieder ohne Erfolg.

Habt Ihr noch Tips?

Hier noch die Fehlermeldung die ich erhalte
Code:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'localhost' (using password: NO) in /home/xxxxxx/public_html/banner.php on line 20

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'user'@'localhost' (using password: NO) in /home/xxxxxx/public_html/banner.php on line 24
LG
Chefechse
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 18.08.2011, 16:51
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Wenn ich nicht ganz falsch liege erzeugst du durch die Klasse eine Kapselung. Das heißt, du musst über die Klasse auf die Variablen zugreifen.

Wenn du die Klasse nicht unbedigt brauchst, dann würde ich die weglassen und die Variablen einfach einbinden.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 18.08.2011, 17:53
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.08.2011
Beiträge: 4
Chefechse befindet sich auf einem aufstrebenden Ast
Standard

Hallo Paktikant,

da diese configuration.php ein teil unseres CMS ist und ich lediglich
auf die Variablen zugreife, denke ich wird diese Class benötigt.

Aber wenn ich Dich richtig verstanden habe, würde es mit einer PHP Datei
funktionieren in der die Variablen stehen ohne Class.

Bedeutet configuration.php kopieren Class raus und diese PHP dann includen?

LG
Chefechse
__________________
Jeder tut was er will und keiner tut was er soll,was ist das?


TEAMARBEIT
Mit Zitat antworten
  #4 (permalink)  
Alt 18.08.2011, 17:58
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Wenn das so ist, dann würde ich das vorher so probieren. Sonst musst du nachher bei Änderungen doppelt pflegen.

PHP-Code:
<?php

//-----------------------
include  ("configuration.php");

$database mysql_connect(JConfig::$hostJConfig::$userJConfig::$password);
mysql_select_db(JConfig::$db);

...
....
?>
Dafür müssen die Variablen aber unter Umständen static deklariert werden.

Du kannst auch eine Instanz der Klasse JConfig erzeugen und dann darüber auf die variablen zugreifen, zum Beispiel so.
PHP-Code:
<?php

//-----------------------
include  ("configuration.php");
$oConfig = new JConfig();

$database mysql_connect($oConfig->$host$oConfig->$user$oConfig->$password);
mysql_select_db($oConfig->$db);

...
....
?>
Allerdings weiß ich nicht wie der Konstruktor der Klasse definiert ist. Diesen hast du leider nicht angegeben.

Wenn das ein CMS ist, dann sollte es aber auch eine DB-Klasse geben, die auf die Variablen zugreifen kann. Diese solltest du dann nutzen.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #5 (permalink)  
Alt 18.08.2011, 20:42
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.08.2011
Beiträge: 4
Chefechse befindet sich auf einem aufstrebenden Ast
Standard

Hm mit dieser Änderung:

PHP-Code:
include  ("configuration.php");


$database mysql_connect(JConfig::$hostJConfig::$userJConfig::$password);
mysql_select_db(JConfig::$db); 
erhalte ich diesen Fehler

Fatal error: Access to undeclared static property: JConfig::$host in /home/xxxxx/public_html/banner.php on line 22

Zitat:
Dafür müssen die Variablen aber unter Umständen static deklariert werden.
Hattest Du ja geschrieben, ich muß gestehen das ich nicht weis was damit gemeint ist.

und mit dieser Änderung

PHP-Code:
include  ("configuration.php"); 
$oConfig = new JConfig();

$database mysql_connect($oConfig->$host$oConfig->$user$oConfig->$password);
mysql_select_db($oConfig->$db); 
erhalte ich diesen Fehler

Fatal error: Cannot access empty property in /home/xxxxx/public_html/banner.php on line 22

Diese Lösung kam mir am elegantesten vor.

Hast Du noch eine Idee?

Zitat:
Allerdings weiß ich nicht wie der Konstruktor der Klasse definiert ist. Diesen hast du leider nicht angegeben.
Brauchst Du da den gesamten Quelltext der banner.php?

Danke für Deine Hilfe.

LG
Chefechse
__________________
Jeder tut was er will und keiner tut was er soll,was ist das?


TEAMARBEIT
Mit Zitat antworten
  #6 (permalink)  
Alt 18.08.2011, 21:41
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Eher den Quelltext der configuration.php. Aber auch dann könnte es schwer bleiben etwas zu sagen. Gibt es ursprünglichen Programmierer nicht mehr? Der kennt das System ja am besten.

Am elegantesten wäre es eine Klasse zu nutzen, welche den Aufbau zur Datenbank übernimmt. Gibt es das nicht?

Wie werden denn in anderen Fällen Datenbankverbindungen aufgebaut?

Welche Zeile im zweiten Beispiel Zeile 22?
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
  #7 (permalink)  
Alt 19.08.2011, 04:02
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 745
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Es müsste $oConfig->host und so weiter heißen, ohne das zweite Dollarzeichen.

Wundert mich aber ehrlichgesagt, dass das früher funktioniert haben soll. Ich würde spontan sagen, dass dort ein anderer Effekt wie Register Globals am Werk war.

- PHP: Using Register Globals - Manual

So ganz geheuer ist das alles nicht.
Mit Zitat antworten
  #8 (permalink)  
Alt 19.08.2011, 10:00
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.08.2011
Beiträge: 4
Chefechse befindet sich auf einem aufstrebenden Ast
Standard

@mermshaus

Das wars.... ohne das 2 $ funkts.

Ich Danke Euch beiden....

Werde aber sicher noch öfter hier aufschlagen

LG
Chefechse
__________________
Jeder tut was er will und keiner tut was er soll,was ist das?


TEAMARBEIT

Geändert von Chefechse (19.08.2011 um 10:05 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 19.08.2011, 11:38
Benutzerbild von Praktikant
Semantikbremse.
XHTMLforum-Kenner
 
Registriert seit: 22.04.2008
Beiträge: 4.985
Praktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz seinPraktikant kann auf vieles stolz sein
Standard

Danke mermhaus! Das habe ich glatt übersehen... Sowas passiert wenn man gesundheitlich nicht ganz auf der Höhe ist, den Fehler hätte ich noch Tage gesucht...

@Chefechse: Sorry für den doofen Fehler...
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade!
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Chat-Thread paracelsus Offtopic 22838 27.09.2022 14:27
include funktioniert nicht?! gudrunst Serveradministration und serverseitige Scripte 1 09.06.2011 20:08
include funktioniert nicht!? Guich Serveradministration und serverseitige Scripte 7 09.02.2011 19:35
PHP: Include funktioniert nicht Worance Serveradministration und serverseitige Scripte 20 27.02.2008 21:54
[PHP] Probleme mit .htaccess und include(); Ahoj Serveradministration und serverseitige Scripte 4 01.02.2006 15:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:59 Uhr.