PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Fehler wenn ich eine function benutzen will (http://www.selfphp.de/forum/showthread.php?t=2473)

Diabolo 23.10.2002 19:58:23

Fehler wenn ich eine function benutzen will
 
Hallo Folgendes ich hab ein kleines Problem mit einem Script.

Ich Starte eine Session und möchte diese wenn die alle Logindaten des benutzers stimmen diese in eine Datenbank speichern.
if($login == "true")
{
save_session($sid, $user_id);

if($user == $admin)
{
require("adminedit.php");
}
else
{
require("edit.php");
}

Die Funktion (steht in einem anderem Script und wird mit include aufgerufen):

function save_session($sid, $user_id)
{
require("../include/db.inc");
$query = "UPDATE aaouser SET sid = "$sid" WHERE user_id = "$user_id"";
$db_query = mysql_query($query, $dbh)
return;
}

Wenn ich das so mache bekomme ich folgende Fehlermeldung:

Fatal error: Cannot redeclare passwdcheck() in /homepages/12/d66599670/htdocs/army/editarea/function.php on line 5

Wenn ich jetzt aber den Inhalte der Funktion direckt ins Script schreibe:

if($login == "true")
{
require("../include/db.inc");
$query = "UPDATE aaouser SET sid = "$sid" WHERE user_id = "$user_id"";
$db_query = mysql_query($query, $dbh)

if($user == $admin)
{
require("adminedit.php");
}
else
{
require("edit.php");
}

funzt es. Ich benötige den Aufruf aber mehrmals darum hab ich ja ne function geschrieben.

Irgendwie versteh ich das nett. Kann mir das einer Erklären?

Danke

Michael

Ben20 24.10.2002 00:09:11

Habe mir den Quelltext jetzt nicht ganz durchgelesen, aber ich vermute mal es liegt an einem fehlenden Global.

Variablen die außerhalb von Funktionen definiert werden sind in Funktionen nicht vorhanden und umgekehrt. Wenn Du willst, dass die Vars auch in den Funktione vorhanden sind mußt Du sie global setzen. Das geht mit global.


function xyz() {
global $var;

}

Nur so kannst Du innerhalb der Funktion auf $var zugreifen.

MiH 24.10.2002 10:20:58

du musst 2 x die gleiche die includen.
beim ersten aufruf steht vielleicht schon require() und in der function nun nochmal.
das würde bedeuten das eine function 2x in der datei vorkommt, deshalb auch der hinweis das er die function nicht nocheinmal deklarieren kann.


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:58:08 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.