functionen mit parametern aufrufen
Sebastian Schimpf
- php
Hallo liebe Leute,
ich habe mal wieder eine Frage:
Ich bin mir immernoch nicht ganz sicher, wie der Aufruf von Functionen stattfindet, beziehungsweise, ob Funktionen wiklich IMMER nur dann ausgeführt werden, wenn Sie aufgerufen werden. Ich habe jetzt nämlich schon 2 Beispiele, wo die Funktion ausgeführt wird, obwohl sie nicht explizit aufgerufen wurde.
Das hier (siehe unten) ist ein Beispiel aus einem sehr guten Tutorial.
Ich habe die Funktion nicht getestet, doch glaube ich, das der Mann schon weiß was er tut. Liegt die unaufgerufene Ausführung an den Parametern, die durch die z.B. durch die superglobale Variable $_POST übergeben werden?
Ich habe nämlich aus einem Buch ein Gästbuch-Script abgetipt, indem auch eine Funktion ausgeführt, ohne das sie aufgerufen wird. Dort sit es eben so, dass Parameter übergeben werden, die aus dem $_POST Array kommen.
Diese Frage interesiert mich brennend!
<?php
error_reporting(E_ALL);
function login_right($User,$Pass)
{
if(empty($User) OR empty($Pass))
return false;
/* Hier kommt dann die Abfrage, ob der Login
richtig ist, z.B. mit einer Datenbank wo alle
Logins gespeichert sind. Wir nehmen
hier aber nur eine billige Abfrage */
if(($User=="admin")AND($Pass=="login"))
return true;
else
return false;
echo("Ich werde nicht ausgeführt");
}
if(isset($_POST['username']) AND
isset($_POST['password']) AND
login_right($_POST['username'], $_POST['password']))
{
echo("Willkommen im Adminbereich");
}
else
{
echo("Login ungültig");
}
?>
PS.
Ach übrigens Christian, falls du das hier liest,
ich habe gestern eine super Einführung in das Thema Reguläre Ausdrücke gefunden: http://tut.php-q.net/regex.html Das kann man sehr gut weiterempfehlen. Der junge Mann schreibt, mal von ein paar Rechtschreibfehlern abgesehen, sehr gut. Klar und deutlich! Eine super Einführung in das Thema PHP, besser als so manches Buch!
Einen freundlichen Gruß sendet Sebastian an alle die nett sind!
Hallo,
eine Function muss natürlich aufgerufen werden damit sie ausgeführt wird.
Weiss nicht genau ob ich dich richtig verstanden habe, aber im obigen beispiel ist die Function
login_right($User,$Pass)
ja mit der Zeile
login_right($_POST['username'], $_POST['password']))
aufgerufen worden!?!
Grüsse
Stolzi
Weiss nicht genau ob ich dich richtig verstanden habe, aber im obigen beispiel ist die Function
login_right($User,$Pass)
ja mit der Zeile
login_right($_POST['username'], $_POST['password']))
aufgerufen worden!?!
Ja, das stimmt wohl, irgenwie hab ich das nicht geblickt. Ich bin vom vielen Codeglotzen heute schon ganz stumpf im Schädel. Ich glaube ich mach gleich Feierabend. Zuviel Syntaxterror!
Aber trotzdem,
ich habe in einem Gästebuch ein Script, welches eine Funktion beinhaltet, die nirgentwo offensichtlich aufgerufen wird. Ich schwöre lan!
Wenn ihr lieb seid, zeig ich sie euch vieleicht mal :-)
Also bis
dann
Gruß
Sebastian
Weiss nicht genau ob ich dich richtig verstanden habe, aber im obigen beispiel ist die Function
login_right($User,$Pass)
ja mit der Zeile
login_right($_POST['username'], $_POST['password']))
aufgerufen worden!?!
Ja, das stimmt wohl, irgenwie hab ich das nicht geblickt. Ich bin vom vielen Codeglotzen heute schon ganz stumpf im Schädel. Ich glaube ich mach gleich Feierabend. Zuviel Syntaxterror!
Aber trotzdem,
ich habe in einem Gästebuch ein Script, welches eine Funktion beinhaltet, die nirgentwo offensichtlich aufgerufen wird. Ich schwöre lan!
Wenn ihr lieb seid, zeig ich sie euch vieleicht mal :-)
Also bis
dann
Gruß
Sebastian
Na dann spann uns mal nciht auf die Folter ;-))
Grüsse
Stolzi
Ich bin mir immernoch nicht ganz sicher, wie der Aufruf von Functionen stattfindet, beziehungsweise, ob Funktionen wiklich IMMER nur dann ausgeführt werden, wenn Sie aufgerufen werden.
Natürlich, alles andere wäre irgendwie etwas sinnlos :)
Liegt die unaufgerufene Ausführung an den Parametern, die durch die z.B. durch die superglobale Variable $_POST übergeben werden?
if(isset($_POST['username']) AND
isset($_POST['password']) AND
login_right($_POST['username'], $_POST['password']))
---------^^^^^^^^^^^
Da wird sie doch ausgeführt, login_right() steht innerhalb der if-Bedingung (verwechsel' das nicht mit dem nachfolgenden Anweisungsblock). Wenn if wissen will, ob es A oder B sagen soll, prüft es hier erst, ob "username" in $_POST gesetzt ist, dann ob "password" gesetzt ist und schlußendlich, ob login_right() für die vorliegende Kombination von "username" und "passwort" true zurückgibt.
Gruß,
soenk.e
Hi,
wo du recht hast, hast du recht.
Doch habe ich tatsächlich eine Funktion, die ausgeführt wird, ohne aufgerufen zu werden, ich schwöre lan.
Ist das irgenwie möglich, oder sind hier übersinnliche Kräfte am Werk? ;-)
Danke für deine Erklärung,
ich habe den Aufruf der Funktion nicht ganz gecheckt, übe noch!
Gruß
Sebastian
Also das würde mich auch interessieren. Zeig mal her deine Funktion die ohne Aufruf aufgerufen wird ;-))
Grüsse
Stolzi
Also das würde mich auch interessieren. Zeig mal her deine Funktion die ohne Aufruf aufgerufen wird ;-))
hi,
ok
http://www.zabdesign.de/temp/auswertung.txt
gruß
Sebastian
Also das würde mich auch interessieren. Zeig mal her deine Funktion die ohne Aufruf aufgerufen wird ;-))
neiiiiiiiiiiiiiiiiiiiiiiiiiiiiin!
Peinlich!
Ich habe gerade entdeckt, das sie ganz unten aufgrufen wird.
Schande über mein Haupt!
Aber, ... ich merke, solangsam verstehe ich ein bisschen mehr von Programmierung. Das Forum ist nicht ganz unbeteiligt daran.
Gott sei dank, ich habe mein "eigenes" Script geblickt!
*lol*
Gruß
ZAB
wollte gerade sagen: jetz mach ich mir die mühe nach der "unaufgerufenen" Function zu suchen und alle sind aufgerufen :-)
Vielleicht findest ja irgendwann doch noch eine!
Grüsse
Stolzi
HI,
Vielleicht findest ja irgendwann doch noch eine!
Das suchen nach solchen Dingen, überlasse ich lieber den Alchimisten! :)
Danke für deine Aufmerksamkeit.
Gruß
Sebastian
Es gibt schon "Funktionen" die nicht direkt aufgerufen werden.
Zum Beispiel in C++ die Konstruktoren und Destruktoren :-)