PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php zu sicher? :-D



johnyb
10-12-2002, 16:02
Hallo,
ich habe irgendwie ein verständnisproblem mit php. Wenn ich eine Datei habe, die in andere Dokumente per include eingefügt werden soll und dazu gut ist, praktisch als config Datei zu dienen, wo die bestimmte Variablen drin gespeichert sind. (z.B. datenbankname, host, passwort usw.) dann lege ich halt eine solche datei an und speichere da drin globale variablen, die diese werte beinhalten, sodass ich sie nicht an allen stellen ändern muss (und vor allem nicht direkt im quellcode einer klasse/funktion etwas ändern muss!!). In den einzelnen Dateien kann man ja dann super auf die in der config festgelegten variablen zugreifen, aber sobald ich in einer klasse/funktion auf diese zugreifen will, geht das nicht mehr. das ist doch aber nicht sinnvoll, oder?

es ist umständlich immer die werte an die funktion mit zu übergeben. viel besser wäre es doch, wenn die funktion an sich direkt darauf zugreifen kann. dann muss ich halt als entwickler darauf achten, dass ich wirklich nur diese variablen global deklariere, die so wichtig sind. (wie z.b. datenbankvariablen,... die sich nur ändern, wenn das script auf einer anderen maschine läuft....) es ist doch durchaus sinnvoll diese variablen getrennt vom quellcode anzulegen, aber was nützt das einem, wenn man seine klasse/funktion dann trotzdem noch extra mit diesen variablen füttern muss.....

oder hab ich da was übersehen??

bis dann
julian

johnyb
10-12-2002, 16:16
Hallo,
noch was: ein Kumpel hat nen WAMP Server...... und da funktioniert das alles so, wie ich es gerne haben würde *gg* aber mir missfällt der Gedanke, wenn ich dieses W am anfang sehe :-P (Dann lieber Die Klassen mit Variablen füttern *gg*). Auf allen anderen LAMP Servern, die mir so zur Verfügung stehen (kontent,...), da laufen diese Scripte von dem Rechner nicht.

bis dann
julian

The Ripper
10-12-2002, 16:44
Du hast wohl das Schlüsselwort "global" übersehen.
Anders als in den meisten (mir bekannten) Programmiersprachen, wird die Variable damit nicht deklariert, sondern innerhalb der Funktion, in der du sie benutzen möchtest, "markiert". Es folgt ein kleines Beispiel, das du sicher gut übertragen kannst:



...
$sql_host = "localhost"
$sql_user = "myphpskript"
$sql_password = "geheim"
...

function sql_connect() {
global $sql_host, $sql_user, $sql_password;

return mysql_connect($sql_host, $sql_user, $sql_password);
}


Die Variablen müssen übrigens nicht zwangsläufig in derselben Datei definiert werden, in der sie benutzt werden, "config"-Dateien inkludieren geht also ;)

johnyb
10-12-2002, 16:54
Hallo,
ahhhhhhhh.... ;) es hätte mich schwer gewundert, wenn das nicht gehen würde, wie ich mir das gedacht habe.. also muss ich in der Funktion sagen, dass ich diese Variablen, die global deklariert sind haben will... Das ist natürlich dann noch besser, daran hatte ich gar nicht gedacht! ;) Das freut mich.. :) danke...
das hat ja den vorteil, dass ich die "globalen" variablen wirklich auch nur in den funktionen zur verfügung habe, in denen ich sie brauche! so gefällt mir das! ;)

bis dann
julian