# Funktionen auslagern



## Hexberger (7. April 2005)

Servus

Sorry für meine evtl. banale Frage, aber ich konnte bis jetzt keine passende Lösung für mein Problem finden   

Folgendes:

Ich möchte für die Kontrolle der Sessions meiner User in jede dynamisch erstellte Seite eine Abfrage der Richtigkeit der Session machen. Um nicht zu Beginn jeder Seite den gleichen Quellcode schreiben zu müssen würde ich die betreffende Funktion gerne auslagern.

Ich habe es mir so vorgestellt: Die SessionID wird an die extern gelagerte (andere Datei) Funktion übergeben. Dort wird eine Datenbankabfrage gemacht und ein Wert zurückgegeben (vielleicht der Username).

Wie ist das zu machen?

Vielen Dank für eure Hilfe

Hexberger


----------



## Kerwin (7. April 2005)

Du kannst dir doch solch eine check.php schreiben und sie in jede Datei includen.


```
//check.php
if($ab=="cd"){
  // mache folgendes
}else{
  // ansonsten das hier
  die('Du bist nicht authorisiert');
}

//irgendeine Datei.php
include'check.php';
//normaler Contence
echo $user;//oder sonst was
```


----------



## Lukasz (7. April 2005)

Ich würde dir empfehlen eine php Datei für semmtliche Funktionen anzulegen, die du einmal in das Grunddokument einbindest.

if (!function_exists(Funktionsmane)){
function Funktionsname(){
// inhlat der Funktion
}
}

wir später eine Funktion abgerufen die nicht deklariert wird, sollte der Interpreter seine if !function_exists() Daten durchforsten.

Ich habe zwar keine Ahnung wie das der Interpreter verarbeitet, denke aber dass es so abläuft. Jedoch das Beispiel funktioniert in jedem Fall.


Hier mal so ein Bespiel:
functions.php

```
if (!function_exists(schreibtext)){
function schreibtext($text){
echo $text;
}
}
```

index.php Grunddokument:


```
include ("functions.php");
schreibtext("Hallo");
```

Nun sollte der Interpreter nach der schreibtext() ausschau halten.

Grüsse, und hoffe es hilft, oder ich habe vorbeigedacht.


----------



## Mathias Kuse (7. April 2005)

Hallo Lukasz,
ich glaub ich hab da ein kleines Verständnis-Problem.
Warum fragst du ab ob die Funktion existiert, und legst sie an, wenn sie nicht existiert?
Dann kann man sie doch gleich einfach anlegen und gut.
Is ja nich so das eine angelegte Funktion den Arbeitsspeicher sprapazieren würde.

MfG
Mathias


----------

