Session in Funktion?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session in Funktion?

    Hohoho zusammen!

    Wo ja heute der Tag der Sessions ist, hab ich da auch was, was ich erstmal auf Seite gelegt hatte:

    Wie man Sessions prüft und so weiter ist für mich kein Problem. Aber ich möchte neben der Prüfung noch etwas loggen, ... Also habe ich mir gedacht ich bastel mit eine FKT:

    PHP-Code:
    # Session
    session_name("s");
    session_start();

    if( 
    SESSION OK! ) {
        
    LOGFUNKTION
        

    Wenn ich das ganze in der Seite stehen habe, läuft es. Sobald ich daraus einen FKT mache: prfsess(); macht er es nicht mehr. Das heißt, er erkennt nicht welche Session er prüfen soll.

    Muss ich da irgendwie die Sessionid reinbringen? Wenn ja wie? Eigentlich sollte er die ja durch session_name erkennen.

  • #2
    entweder machst du innerhalb der Funktion ein

    global $_SESSION;

    und arbeitest dann immer mit $_SESSION[xyz'],
    oder du übergibst die Session als Parameter an die Funktion.
    Die muß in dem Falle per Referenz geschehen, da er sonst
    auf einer Kopie arbeitet.
    PHP-Code:
    function prfsession(&$_SESSION){
    ...
    }

    $ok=prfsession($_SESSION); 
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Hab mir sowas gedacht. Danke.

      Hatte die Var sogar schon global gesetzt, aber da hatte ich dann wohl noch woanders nen Fehler. Ich werds noch mal probieren.

      - Ich hätte nicht wirklich vorteile, wenn ich die Session an die FKT übergebe, oder?
      - Wenn ich ne Referenz benutze, und in der FKT änderungen mache, behält er diese, oder? Aber das macht er bei Global ja auch.

      Kommentar


      • #4
        Also mit global klappts jetzt prima. Nochmal danke TBT!

        Wüsste nur noch gerne, ob/wann es Sinn macht, die SID als Wert in die Funktion zu übergeben.

        Kommentar


        • #5
          es ist "sauberer" programmiert, die Variablen als Parameter zu übergeben.
          Außerdem siehste dann gleich, was in der Funktion benutzt wird, und was nicht.

          Wie schnell hat man vergessen, das in einer Funktion irgendwo mal ein

          global $xyz;

          aufgerufen wird, und sich dann nach einer Umstrukturierung des restlichen
          Codes wundert, das die Funktion nicht mehr arbeitet
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            Das stimmt natürlich. Habs bis jetzt auch nur ganz selten so gemacht. Ich werd mal sehen, was besser passt.

            Kommentar


            • #7
              Also mal ganz allgemein würde ich folgendes sagen:

              Funktionsvariablen werden als Parameter übergeben. Wie in der Mathematik: Die Variablen von der die Funktion abhängig ist, sind die Funktionsvariablen.

              Andere Paramter, z.B. Konstanten, die immer gleich sind, kann man als global deklarieren.
              [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
              [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
              [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

              © Harald Schmidt

              Kommentar


              • #8
                Du sagst es. Ich hab mich jetzt auch für global entschieden. Da kamen auch noch drei weitere Vars dazu.

                BTW: Wo gerade von Mathe redest. Mit PHP ist Mathe manschmal viel leichter zu verstehen. Obwohl Programmierer meiner Erfahrung nach sowieso kaum Probs mit Mathe haben. Das kann ich zumindest von mir behaupten.

                Kommentar

                Lädt...
                X