wolfgang: session_ID erzeugen

Hallo zusammen,
ich möchte gerne eine session_id für ein voting system generieren. Bin ich da richtig bei php? Normal arbeite ich nur mit html und open source systemen.

Ich möchte das die session ID wie bei MZEE hier ein Link:

http://www.mzee.com/linkprojekt/site/in/5186/hip-hop-im-netz-communities-portale-projekte-rap.html

Aus dem Quelltext werde ich nicht schlau! Für Hilfe wäre ich sehr dankbar.

Gruß Wolfgang

  1. Hi Wolfgang,

    eine Session-ID kann man in PHP mit der Funktion session_start() erzeugen.
    Wie du aber aus dem Artikel entnehmen kannst, ist das abhängig von der PHP-Version, die du benutzt.
    Die Session-ID kann dann über session_id() abgerufen werden.

    MfG
    Urmel

    1. Hallo Urmel,
      ja, dass hab ich auch schon gelesen, leider kenne ich mich in php kein Stück aus. Könntest du mir den Code schreiben? Wäre echt super nett von dir!

      Der User soll so einen Link anklicken können:

      http://www.meineSeite.com/UserID.html?session_id=123456789

      Habe schon einige Codes gelesen und verstehe das überhauptnicht. Naja, bin ja auch nicht mehr der Jüngste ... lach

      1. Hi

        ja, dass hab ich auch schon gelesen, leider kenne ich mich in php kein Stück aus. Könntest du mir den Code schreiben? Wäre echt super nett von dir!

        Nö, dann geht der Lerneffekt flöten.
        Aber das Prinzip ist denkbar einfach. Eine Session-ID wird ganz einfach mit session_start() erzeugt. Und mit session_id() kann das dann abgerufen werden.

        Du setzt also einfach die gewünschte Zeichenkette, in deinem Fall "http://www.meineSeite.com/UserID.html?session_id=" mit der Rückgabe von session_id() zusammen (dazu dient der Punkt-Operator ".") , et voila, schon hast die gewünschte Adresse als String gespeichert.
        Das dann in einen Link-href einzuspeisen ist dann das kleinste Problem.

        MfG
        Urmel

        1. <?php
          session_start();
          ?>
          <a href="http://www.meineSeite.com/UserID.html?session_id=">Link-Text</a>

          Alles klar, soweit bin ich schon, aber wo schreibe ich jetzt die session_ID(); rein damit die generiert wird. Vor dem Link bestimmt oder? Aber wie?

          1. Hallo,

            <?php
            session_start();
            ?>
            <a href="http://www.meineSeite.com/UserID.html?session_id=">Link-Text</a>

            Alles klar, soweit bin ich schon, aber wo schreibe ich jetzt die session_ID(); rein damit die generiert wird. Vor dem Link bestimmt oder? Aber wie?

            Ich denk du kennst dich mit HTML aus? Zumindest sagst du, dass du damit arbeitest.
            Dann frag ich mich wieso du nicht weißt wo die ID hin gehört.
            Was soll sie vor dem Link? Wird etwas ausserhalb von <a ..> und </a> mit dem Link in Verbindung gebracht? Nein!
            Dann wird die ID nicht mit session_id() generiert, sondern wird durch die Funktionen ausgegeben. Generiert oder aufgenommen wird sie mit session_start().

            Vielleicht solltest du dir die verlinkten Seiten und den Abschnitt über GET-Variablen bei SelfHTML noch einmal durchlesen. Ich glaube nämlich nicht, dass du den Inhalt verstanden hast.

            Aber jetzt hast du es ja fast :)

            Grüße, Matze

            1. "Ich denk du kennst dich mit HTML aus? Zumindest sagst du, dass du damit arbeitest."

              Ich arbeite damit privat (seit einem Jahr) und möchte die Programmiersprachen lernen, bzw bin gerade dabei bei html. Aber alles auf einmal ist echt schwer. Schließlich bin ich schon 56 Jahre alt und da spielen die grauen Zellen nicht mehr so mit ...lach

              Also ich wäre euch wirklich dankbar wenn ihr mir den Code schreiben würdet damit ich sehe wie es richtig funktioniert. Ich bin wohl zu dumm um das zu verstehen.

              gruß wolfgang

              1. Hallo,

                Schließlich bin ich schon 56 Jahre alt und da spielen die grauen Zellen nicht mehr so mit ...lach

                Es erstaunt mich in der Tat das man so spät noch Programmiersprachen lernen möchte. Das geht allerdings nicht wenn man den fertigen Code vorgesetzt bekommt (obwohl das nun doch passiert ist) sondern indem man sich beliest und gegebene Hinweise verfolgt.

                Also ich wäre euch wirklich dankbar wenn ihr mir den Code schreiben würdet damit ich sehe wie es richtig funktioniert. Ich bin wohl zu dumm um das zu verstehen.

                Schon passiert und dass du dumm wärst hat niemand behauptet!

                Grüße, Matze

                1. Ich denke mir, "warum soll ich das nicht noch erlernen, ich habe ja die zeit" ... außerdem finde ich das alles sehr interessant wie alles funktioniert, zumindist wenn es funktioniert ...lach.

                  Ja, ihr habt mir gesagt wie alles funktioniert jetzt muss ich es nurnoch zusammen setzen... oha...

                  <?php
                  session_start();
                  ?>
                  <a href="http://www.meineSeite.com/UserID.html?session_id=">Link-Text</a>
                  <?php

                  Das mit den Variablen habe ich noch nicht verstanden. Wo setze ich das ein? hinter dem Befehl ?session_id, oder wo?
                  <?=/*...*/;?>

                  1. Hallo,

                    <?php
                    session_start();
                    ?>
                    <a href="http://www.meineSeite.com/UserID.html?session_id=">Link-Text</a>

                    Beinahe so. Du musst nur daran denken, dass du hier mit HTML _und_ PHP arbeitest.

                    Also zuerstmal dein Link:
                    <a href=http://www.meineSeite.com/UserID.html?
                    Dann wird ein Variablenname erwartet und dahinter mit dem = der Wert zugewiesen. Also:
                    <a href=http://www.meineSeite.com/UserID.html?SID=

                    "SID" ist jetzt also der Name der Variablen, dieser wird im HTML festgelegt. Die Wertzuweisung mit dem = ebenfalls.
                    Jetzt kommt der Wert. Dieser steht uns aber nicht in HTML, sondern in PHP zur Verfügung, also müssen wir in PHP wechseln:
                    <a href=http://www.meineSeite.com/UserID.html?SID=<?PHP

                    und unseren benötigten Wert z.B. so ausgeben:

                    <a href=http://www.meineSeite.com/UserID.html?SID=<?PHP echo session_id();

                    Dann verlassen wir PHP wieder und arbeiten mit HTML weiter:
                    <a href=http://www.meineSeite.com/UserID.html?SID=<?PHP echo session_id(); ?>">Linktext</a>

                    Fertig :)

                    Grüße, Matze

                    1. <a href=http://www.meineSeite.com/UserID.html?SID=<?PHP echo session_id(); ?>">Linktext</a>

                      Fertig :)

                      Grüße, Matze

                      ---

                      Achso... das echo kommt also dahinter. OK...
                      ich muss mich da auf jeden Fall nochmal reinlesen. Aber trotzdem schonmal vielen vielen Dank

                  2. <?php
                    session_start();
                    ?>
                    echo'<a href="meineSeite.com/userID.html?irgend_eine_session_variable='.session_id().'">Link</a>;
                    <?php

                    ok, habe jetzt dieses echo drin und muss nun noch die variablen einsetzen wie lege ich diese fest?
                    Am liebsten hätteich das ja wie hier:
                    http://www.mzee.com/linkprojekt/site/in/5186/hip-hop-im-netz-communities-portale-projekte-rap.html?session_id=1sNv1R0QyhFo17074cCZ62We
                    Wie lege ich eine so lange variable fest?

                    1. Hallo Wolfgang,

                      Wie lege ich eine so lange variable fest?

                      Die steht in der Konstante SID.

                      Aber mal eine andere Frage, warum willst du überhaupt eine Session haben oder anders ausgedrückt, was willst du damit erreichen?

                      Schöne Grüße,

                      Johannes

                      1. Ich will damit nichts erreichen... ich will es verstehen!

                        Ich habe im Internetgesurft und mein Sohn hat mich auf eine Seite aufmerksam gemacht www.mzee.com und ich war beeidruckt wie eine session_ID verhindert das eine Umfrage oder Abstimmung fetürkt werden kann.

                        Gruß Wolfgang

                        1. Hallo Wolfgang,

                          Ich habe im Internetgesurft und mein Sohn hat mich auf eine Seite aufmerksam gemacht www.mzee.com und ich war beeidruckt wie eine session_ID verhindert das eine Umfrage oder Abstimmung fetürkt werden kann.

                          Das kann auch durch die Verwendung von Sessions nicht verhindert werden. Zwar kann man verhindern, dass innerhalb der gleichen Session mehrmals abgestimmt wird, das kann man aber ganz einfach umgehen, im einfachsten Fall, indem man den Browser beendet und neu startet.

                          Eine Session dient dazu, den Benutzer während eines Besuchs auf einer Website eindeutig identifizieren zu können. Dadurch wird jedem Besucher eine ID vergeben, die dessen Browser bei jedem Aufruf einer Seite des Angebots während des Besuchs an den Server sendet. Normalerweise wird dies durch Cookies oder dadurch, dass die Session-ID an jeden angebotsinternen Link angehängt wird, realisiert.

                          Auch die Session-ID dauerhaft in einem Cookie zu speichern bringt wenig, da alle mir bekannten Browser die Möglichkeit bieten, gespeicherte Cookies zu löschen.

                          Eine andere Alternative ist es, auf dem Server eine Liste von IP-Adressen zu speichern, die bereits abgestimmt haben und bei jedem Abstimmungsversuch die IP-Adresse des Besuchers gegen diese Liste zu prüfen. Das hat verschiedene Nachteile, z.B. kann von mehreren Leuten, die über die gleiche IP-Adresse online gehen (Familienmitglieder, Schüler in der Schule, etc.) jeweils nur einer abstimmen. Außerdem lässt sich das auch umgehen, indem man die Verbindung zum Internet trennt und sich dann neu verbindet. Bei fast allen privat genutzten Internet-Anschlüssen in Deutschland ist es so, dass bei jeder Einwahl der Benutzer von seinem Provider eine andere IP-Adresse zugewiesen bekommt.

                          Die einzige halbwegs funktionierende Methode ist die, nur angemeldete Benutzer abstimmen zu lassen. Aber auch das lässt sich umgehen, nämlich durch das anlegen neuer Accounts.

                          Fazit: Es ist nicht zuverlässig möglich, einen Besucher über die Dauer eines einzelnen Besuchs heraus zuverlässig zu identifizieren. Das einzige, was man Erreichen kann, ist den Aufwand, den man Betreiben muss, damit dies nicht geschicht, zu erhöhen.

                          Schöne Grüße,

                          Johannes

                          1. Ich verstehe schon was du meinst, genau so gut könnte man einen forced Link machen wie z. B. diesen:

                            <a href=http://www.mzee.com/linkprojekt/site/in/5186/hip-hop-im-netz-communities-portale-projekte-hiphop.html?SID=<?PHP echo session_id(); ?>">Hier klicken</a>

                            oder nicht?  Nein, ich sehe gerade das der Link mit der session_id icht selbst generiert wird, sondern einfach nur auf die seite verweist. Wie kommt das?

                            Gruß
                            wolfgang

                            PS: nochmal dank an alle die mir den code erklärt haben!

                            1. Hallo Wolfgang,

                              Ich verstehe schon was du meinst, genau so gut könnte man einen forced Link machen wie z. B. diesen:

                              Was verstehst du unter einem "forced Link"?

                              <a href=http://www.mzee.com/linkprojekt/site/in/5186/hip-hop-im-netz-communities-portale-projekte-hiphop.html?SID=<?PHP echo session_id(); ?>">Hier klicken</a>

                              oder nicht?  Nein, ich sehe gerade das der Link mit der session_id icht selbst generiert wird, sondern einfach nur auf die seite verweist. Wie kommt das?

                              Was genau meinst du jetzt? Wenn du vorher mit session_start(); eine Session gestartet hast, steht dann im HTML-Quelltext z.B. ein Link zu

                              http://www.mzee.com/linkprojekt/site/in/5186/hip-hop-im-netz-communities-portale-projekte-hiphop.html?SID=jocp9s9jbrn1mf4rkbfvocbog2

                              Der Wert von SID ist natürlich bei jeder Session anders. Aber wie Sven sagte, solltest du bei Links statt der Funktion session_id(); lieber die Konstante SID verwenden:

                              <a href="http://www.example.org/seite.php?<?php echo SID; ?>">Linktext</a>

                              Schöne Grüße,

                              Johannes

                              1. Nein, ich meine das das umgangen wird, dass noch auf das "JA! Meine Stimme für... abgeben" geklickt werden muss. Denn die Session_ID wurde doch eigentlich schon generiert. Darum verstehe ich das nicht so ganz. Eigentlich hätte man doch mit:

                                <a href="http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html?<?php echo SID; ?>">Vote</a>

                                schon abgestimmt oder nicht? Das klappt aber eben nicht.

                                gruß
                                wolfgang

                                1. Hallo Wolfgang,

                                  Nein, ich meine das das umgangen wird, dass noch auf das "JA! Meine Stimme für... abgeben" geklickt werden muss. Denn die Session_ID wurde doch eigentlich schon generiert.

                                  Das hat mit der Session-ID nichts zu tun.

                                  Darum verstehe ich das nicht so ganz. Eigentlich hätte man doch mit:

                                  <a href="http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html?<?php echo SID; ?>">Vote</a>

                                  schon abgestimmt oder nicht?

                                  Wo abgestimmt wird und wann die Session-ID generiert wird, hängt ganz davon ab, wie das Script programmiert wurde. Bitte beschreib noch mal genauer, was du nicht verstehst.

                                  Schöne Grüße,

                                  Johannes

                                  1. "Wo abgestimmt wird und wann die Session-ID generiert wird, hängt ganz davon ab, wie das Script programmiert wurde. Bitte beschreib noch mal genauer, was du nicht verstehst."

                                    Meine Frage ist jetzt einfach nur:
                                    Könnte man das Script so schreiben, dass direkt abgestimmt wird? Also das die Session ID sofort in den Hyperlink generiert wird und die Seite wo "JA! Meine Stimme für... abgeben" gar nicht mehr angezeigt wird.
                                    Ich weiß nicht wie ich das anders erklären soll.

                                    Wenn ja, kannst du mir dieses Script abändern? Würde das gerne sehen.

                                    Ich sollte echt öfter mal vorbei schauen, hab heute richtig was dazu gelernt. Meine Frau mein das wäre alles nur Mist, aber ich finde es super interessant wie das alles funktioniert.

                                    Bin mal gespannt wie du das jetzt umgehen wirst.

                                    Gruß
                                    Wolfgang

                                    1. Hallo Wolfgang,

                                      Könnte man das Script so schreiben, dass direkt abgestimmt wird? Also das die Session ID sofort in den Hyperlink generiert wird und die Seite wo "JA! Meine Stimme für... abgeben" gar nicht mehr angezeigt wird.
                                      Ich weiß nicht wie ich das anders erklären soll.

                                      Ja. Einmal die Seite mit dem Abstimmungslink, dort muss folgendes geschehen.

                                      1. Die Session muss gestartet werden: session_start.
                                      2. Der Abstimmungslink wird generiert: <a href="abstimmung.php?<?php echo SID; ?>">Abstimmen</a>

                                      In der Datei abstimmung.php muss nun zweierlei geschehen:

                                      ...

                                      <?php  
                                      /* Überprüfen ob bereits abgestimmt wurde */  
                                      if (isset($_SESSION['abgestimmt']) and $_SESSION['abgestimmt']) {  
                                          /* Wenn schon mal abgestimmt wurde, Fehlermeldung anzeigen */  
                                          echo "<p>Sie können nur einmal abstimmen.</p>";  
                                      } else {  
                                          /* Ansonsten Stimme zählen (den Code dafür habe ich der  
                                             Einfachheit halber weggelassen) und sich merken, dass schonmal  
                                             abgestimmt wurde */  
                                          $_SESSION['abgestimmt'] = true;  
                                          echo "<p>Vielen Dank. Ihre Stimme wurde gezählt.</p>";  
                                      }
                                      

                                      Das Array $_SESSION enhält die Session-Variablen, d.h. die Werte darin sind auf jeder Seite der Session verfügbar und ändern sich auch nicht.

                                      Schöne Grüße,

                                      Johannes


                                      1. 1. Die Session muss gestartet werden: session_start.
                                        2. Der Abstimmungslink wird generiert: <a href="abstimmung.php?<?php echo SID; ?>">Abstimmen</a>
                                        ---
                                        ...die ganzen Zeichen etc habe ich natürlich nicht verstanden aber das Prinzip ist klar.
                                        Wir können die abstimmungs.php ja jetzt nicht ändern. Wie ändern wir das script dann so ab das wir bei diesem nur auf VOTE klicken müssten um sofort abzustimmen, sozusagen die abstimmungs.php zu umgehen:

                                        <a href="http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html?<?php echo SID; ?>">Vote</a>

                                        gruß

                                        1. Hallo Wolfgang,

                                          ...die ganzen Zeichen etc habe ich natürlich nicht verstanden aber das Prinzip ist klar.

                                          Es freut mich, dass ich dir helfen konnte.

                                          Wir können die abstimmungs.php ja jetzt nicht ändern.

                                          Wieso nicht?

                                          Wie ändern wir das script dann so ab das wir bei diesem nur auf VOTE klicken müssten um sofort abzustimmen, sozusagen die abstimmungs.php zu umgehen:

                                          Das hängt davon ab, was genau die "abstimmung.php" tut. Wir müssten also den Quelltext davon kennen.

                                          Schöne Grüße,

                                          Johannes

                                          1. Ich bin von Natur aus sehr Neugierig... lach, ich möchte gerne ein script haben, womit ich diese abstimmungs.php (ist auf einem anderen server):

                                            http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html

                                            so umgehen kann das ich bei diesem Script:

                                            <a href="http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html?<?php echo SID; ?>">Vote</a>

                                            nur noch auf Vote klicken muss um abzustimmen. Ist so etwas möglich? Betsimmt oder? Würde gerne wissen wie.

                                            Aber schon beeindruckend wie du das alles beherschst. Wie lange arbeitest du schon mit Programmiersprachen.

                                            gruß

                                            1. Hallo Wolfgang,

                                              Ich bin von Natur aus sehr Neugierig... lach, ich möchte gerne ein script haben, womit ich diese abstimmungs.php (ist auf einem anderen server):

                                              Achso, es geht dir gar nicht darum, ein eigenes Abstimmungsscript zu erstellen. Dann sind natürlich ganz andere Voraussetzungen gegeben.

                                              nur noch auf Vote klicken muss um abzustimmen. Ist so etwas möglich? Betsimmt oder? Würde gerne wissen wie.

                                              Ja, ist es, allerdings ist das deutlich komplizierter. Du müsstest dazu mit PHP die Seite http://www.mzee.com/linkprojekt/site/in/3739/hip-hop-im-netz-communities-portale-projekte-hiphop.html abrufen, den Link zum Abstimmen heraussuchen und dir dann selber einen Link zusammenbasteln. Ich vermute auch, dass das nicht im Sinne des Betreibers der Website sein dürfte.

                                              Aber schon beeindruckend wie du das alles beherschst. Wie lange arbeitest du schon mit Programmiersprachen.

                                              2001 habe ich angefangen mich mit HTML zu beschäftigen, programmieren tue ich noch nicht ganz so lange.

                                              Schöne Grüße,

                                              Johannes

                                              1. Das ist ja meine eigentliche Absicht gewesen, herauszufinden wie das funktioniert. Der Abstimmungslink enthält ja eine session_id.
                                                Ich dachte eigentlich das ich wenn ich selber eine session_id herstelle die Möglichkeit hätte mein eben genanntes direktvoting über das script machen könnte.
                                                Kannst du mir dafür den script zeigen?

                                                Achso,... nein ich habe selber keine Internetseite auf der ich so etwas anwenden möchte. Ich möchte einfach nur verstehen.

                                                1. Hallo Wolfgang,

                                                  Ich dachte eigentlich das ich wenn ich selber eine session_id herstelle die Möglichkeit hätte mein eben genanntes direktvoting über das script machen könnte.

                                                  Nein, das wird nicht gehen, wenn das Abstimmungsscript korrekt programmiert ist. Dann wird nämlich nicht nur überprüft, ob eine beliebige Session-ID mitgesendet wird, sondern auch ob eine bestimmte Session-Variable existiert.

                                                  D.h., auf der Seite mit dem Abstimmungslink wird beispielsweise eine Variable $_SESSION['check'] gesetzt. Die gilt allerdings nur für die Session, die auf dieser Seite mit session_start() erzeugt wird.

                                                  Folgst du dann dem "JA..."-Link wird überprüft, ob für diese Session eine derartige Variable existiert. Nur wenn dies der Fall ist, wird die Abstimmung als gültig bewertet. Es gibt keine Möglichkeit, abzustimmen ohne auf die Seite mit dem Link gekommen zu sein. Man kann das aufrufen der Link-Seite lediglich durch ein Programm statt durch den Benutzer erledigen lassen.

                                                  Schöne Grüße,

                                                  Johannes

                                                  1. Ich verstehe! Vielen Dank für deine Hilfe und deine Zeit. Ich werd dann jetzt auch mal den PC ausmachen. War jetzt lange genug.

                                                    Schönen Sonntag Abend wünsche ich dir noch.

                                                    gruß
                                                    wolfgang

                2. Hallo Matze,

                  Es erstaunt mich in der Tat das man so spät noch Programmiersprachen lernen möchte.

                  Wieso denn? Kennst du nicht den Spruch "Zum Lernen ist es nie zu spät"?

                  Das geht allerdings nicht wenn man den fertigen Code vorgesetzt bekommt (obwohl das nun doch passiert ist) sondern indem man sich beliest und gegebene Hinweise verfolgt.

                  Den Code anderer Leute zu lesen und nachzuvollziehen ist eine sehr effektive Methode sich das Programmieren bei zu bringen. Ich bin zwar auch der Meinung, dass man um Programmieren zu lernen auch programmieren muss, aber nur durch ausprobieren ist es z.B. relativ schwer sich einen guten Stil anzueignen.

                  Also ich wäre euch wirklich dankbar wenn ihr mir den Code schreiben würdet damit ich sehe wie es richtig funktioniert. Ich bin wohl zu dumm um das zu verstehen.

                  Schon passiert und dass du dumm wärst hat niemand behauptet!

                  Genau. _Alle_, die hier im Forum posten, haben mal klein angefangen und standen ewig vor irgendwelchen Problemen, die ihnen im Nachhinein lächerlich einfach vorkommen. Das hat nichts mit Dummheit zu tun, sonder mit Erfahrenheit auf diesem Gebiet.

                  Schöne Grüße,

                  Johannes

          2. Hi

            <?php
            session_start();
            ?>
            <a href="http://www.meineSeite.com/UserID.html?session_id=">Link-Text</a>

            Okay, du hast eine Funktion, die ich dir ans Herz gelegt hab, angewandt. Die andere fehlt noch.

            Alles klar, soweit bin ich schon, aber wo schreibe ich jetzt die session_ID(); rein damit die generiert wird. Vor dem Link bestimmt oder? Aber wie?

            Die Session-Id ist schon generiert worden und läuft im Hintergrund mit, solange bis die Session geschlossen wird. Sie wartet aber nur darauf, per session_id() abgerufen zu werden.
            Die Session-ID sollte schon hinter dem Link-href (besser gesagt: an _letzter_ Stelle des Link-Href's) stehen, damit sie auch als Parameter übertragen wird. Würde sie davor stehen, wäre sie sinnlos.

            Es gibt mehrere Möglichkeiten, nun den Link zu "formen". Die kürzeste wäre einfach dieses Mini-echo: <?=/*...*/;?> - das ist dasselbe wie ein echo, nur eben in der Kurzform. Ersetze einfach die auskommentierten Punkte durch die Variable die du zurückgegeben haben möchtest, in deinem Fall session_id(). Das ganze setzt du einfach in den HTML-Code rein, an die Stelle, wo es nachher stehen soll.
            Die zweite, ein bisschen aufwendigere Variante ist, den Link als Variable in PHP zu generieren, allerdings bevorzuge ich persönlich Variante Nummer 1, wobei Variante 2 auch seine Vorteile haben kann (bzgl Flexibilität etc).

            MfG
            Urmel

            1. Hallo Urmel,

              ich hab mal eine Zwischenfrage.

              Es gibt mehrere Möglichkeiten, nun den Link zu "formen". Die kürzeste wäre einfach dieses Mini-echo: <?=/*...*/;?>

              Funktioniert das _immer_?
              Ich glaube mich zu erinnern, dass ich mal eine Serverkonfiguration hatte,
              welche PHP nur innerhalb von <?PHP ?> ausgeführt hat.
              Also nicht innerhalb von <? ?>, <?php ?> oder <?php3 (o. php4) ?>.

              Oder geht dann auch <?PHP=/*...*/;?> ? müsste ich mal probieren :)

              Grüße, Matze

              1. Hallo Matze,

                Ich glaube mich zu erinnern, dass ich mal eine Serverkonfiguration hatte,
                welche PHP nur innerhalb von <?PHP ?> ausgeführt hat.
                Also nicht innerhalb von <? ?>, <?php ?> oder <?php3 (o. php4) ?>.

                Das glaube ich kaum. <?PHP und <?php sind aus PHP-Sicht das gleiche, <?php3 und <?php4 sind überhaupt keine gültigen Tags, um den Parser in den PHP-Modus zu versetzen.

                Oder geht dann auch <?PHP=/*...*/;?> ? müsste ich mal probieren :)

                Nicht probieren, nachlesen. Welche Tags PHP überhaupt erkennt, welche davon immmer verfügbar sind und welche durch verschiedenen Konfigurationsansweisungen deaktiviert werden können, steht im PHP-Handbuch.

                Schöne Grüße,

                Johannes

                1. Hallo Johannes,

                  ôÔ Da hab ich wohl die Tags mit den Dateiendungen durcheinander gewürfelt^^

                  Danke für den Link, die Seite hab ich ja ewig nicht mehr gelesen :)

                  Grüße, Matze

      2. Hallo,

        ja, dass hab ich auch schon gelesen, leider kenne ich mich in php kein Stück aus. Könntest du mir den Code schreiben? Wäre echt super nett von dir!

        Dafür gibt es reichlich Tutorials z.B. hier.

        Wenn dir PHP zur Verfügung steht, ist der Server eventuell so konfiguriert, dass er die Session nach session_start() automatisch an Links anhängt.

        Ansonten läuft das so:

          
        session_start();  
        echo'<a href="deinziel.xxx?irgend_eine_session_variable='.session_id().'">Link</a>;  
        
        

        Grüße, Matze

        1. Dafür gibt es reichlich Tutorials z.B. hier.

          Ich werd mich auf jeden Fall mal reinlesen! Aber wie gesagt, php ist absolutes Neuland für mich. Ich bin froh das ich die Anfänge verstanden habe ;-)

          Wie erzeuge ich denn die sessin variable? Diesen Code verstehe ich nicht.

          session_start();
          echo'<a href="deinziel.xxx?irgend_eine_session_variable='.session_id().'">Link</a>;

          1. Hallo,

            Wie erzeuge ich denn die sessin variable?

            Mit session_start(). Das wurde dir doch schon gesagt und verlinkt.

            Diesen Code verstehe ich nicht.

            Dann setz ihn zwischen <?PHP und ?>, führ ihn aus und guck dir die Ausgabe an.

            Noch einfacher können wir es dir nun wirklich nicht machen.

            Grüße, Matze

          2. Hallo,

            Sorry ich hatte ein ' vergessen.

            Richtig wäre also:
            <?PHP
            session_start();
            echo'<a href="deinziel.php?irgend_eine_session_variable='.session_id().'">Link</a>';
            ?>

            Grüße, Matze

        2. Moin!

          Ansonten läuft das so:

          Ganz schlechtes Beispiel.

          Wenn die Session-ID manuell an den Link angehängt werden soll, nutze die Konstante SID. Das ist wesentlich einfacher. Denn dein Code hier ist fehlerhaft:

          session_start();
          echo'<a href="deinziel.xxx?irgend_eine_session_variable='.session_id().'">Link</a>;

            
          "irgend\_eine\_session\_variable" ist nicht konstant, sondern kann beliebig konfiguriert werden. Mit anderen Worten: Der Parameter muß nicht auf den Namen PHPSESSID lauten, sondern kann (mit der session\_name()-Funktion oder in der php.ini) frei gewählt werden.  
            
          Abhilfe würde da nur der gleichzeitige Aufruf von session\_name() und session\_id() schaffen - die Verwendung von SID ist dann doch deutlich simpler, zumal SID nur gefüllt ist, wenn Cookies nicht funktionieren und man die Session-ID anderweitig weitergeben muß.  
            
           - Sven Rautenberg
          
          -- 
          "Love your nation - respect the others."
          
          1. Hallo,

            kannst du mir mal bitte einen Link geben wo das nochmal erklärt wird.
            Ich kann dir leider grad nicht ganz folgen.
            Du meinst ich solle lieber die in der php.ini festgelegte Variable für die Session verwenden? Hab ich das richtig verstanden?

            Grüße, Matze

            1. Moin!

              kannst du mir mal bitte einen Link geben wo das nochmal erklärt wird.

              Die Doku zu session_name() findest du sicherlich selbst, oder? :)

              Du meinst ich solle lieber die in der php.ini festgelegte Variable für die Session verwenden? Hab ich das richtig verstanden?

              Wenn du nichts selbst definierst, verwendest du automatisch den Wert der php.ini. Damit kriegst du die Session-Funktionen alle automatisch, brauchst im Prinzip nur session_start().

              Wenn du, aus welchen Gründen auch immer, z.B. aus optischen Gründen, die standardmäßige Vorgabe "PHPSESSID" oder die ggf. von deinem Provider geänderte Vorgabe nicht leiden magst, kannst du als Parametername (der dann bei automatischer Session-ID-Inkludierung in Links, in Formularen und als Cookie-Parametername verwendet wird) durch Aufruf der Funktion session_name() jeden beliebigen anderen String verwenden - beispielsweise "ShopSession".

              Wenn du das durch explizites Aufrufen von session_name() tust, hast du das Problem, dass du das _immer_ vor dem Aufruf von session_start() durchführen mußt. Ist simpel, wenn du ein zentrales Session-Skript in allen anderen Skripten includest, kann aber gerne mal vergessen werden. In diesem Fall aber wirst du dich bei der manuellen Generierung von Session-IDs in Links wohl dran erinnern und 'href="...?ShopSession='.session_id().'"' schreiben.

              Wenn du das NICHT tust, bist du abhängig von der Einstellung in der php.ini, die du eventuell nicht verändern kannst. Wenn du dann davon ausgehst, dass diese Einstellung auf allen Hosts dieser Welt konstant "PHPSESSID" ist, und deshalb statisch diesen String in deine Links schreibst, kriegst du Probleme, wenn dein Code auf einem Server laufen soll, der unerwartet doch eine andere Einstellung gewählt hat.

              Deshalb: Zur manuellen Integration der Session-ID in einen Link immer die Konstante SID verwenden. Diese Konstante enthält einen Leerstring, wenn PHP die Session-ID im Cookie entdeckt hat. Zur Integration eines versteckten Formularfeldes immer die Funktionsergebnisse von session_id() und (wichtig!) session_name() verwenden.

              - Sven Rautenberg

              --
              "Love your nation - respect the others."
              1. Hallo,

                Die Doku zu session_name() findest du sicherlich selbst, oder? :)

                Natürlich^^
                Und danke für die ausführliche Erklärung.

                Grüße, Matze