Variablen in mehreren Dateien

  • PHP

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Nikx.

    Variablen in mehreren Dateien

    Heyho,

    ich suche eine Möglichkeit Variablen über mehrere Dateien hinweg zu verwenden.
    Dabei sollen diese bestenfalls auch gespeichert werden.

    Ziel:
    1. Userdaten in data.php angeben, und in login.php abfragen.
    2. Fehlermeldungen zwischenspeichern und auf anderer Seite anzeigen. -> Wäre mit Sessions glaubich sowiso besser

    Dachte eigentlich dass ich das per include machen könnte, aber ich hätte mir denken
    können dass das nicht geht.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Nikx schrieb:

    Dachte eigentlich dass ich das per include machen könnte, aber ich hätte mir denken
    können dass das nicht geht.
    Was soll daran nicht gehen?

    Zwei Möglichkeiten:
    1. Mit global:

      file1.php schrieb:

      PHP-Quellcode

      1. global $foo;
      2. $foo = 'bla';
      3. include('file2.php');

      file2.php schrieb:

      PHP-Quellcode

      1. global $foo;
      2. echo $foo;

      Ausgabe schrieb:

      bla
    2. Mit dem Superglobalen Array $GLOBALS:

      file1.php schrieb:

      PHP-Quellcode

      1. $GLOBALS['foo'] = 'bla';
      2. include('file2.php');

      file2.php schrieb:

      PHP-Quellcode

      1. echo $GLOBALS['foo'];

      Ausgabe schrieb:

      bla
    Wozu brauch man da Globals? AFAIK geht das auch einfach so.

    a.php:

    PHP-Quellcode

    1. <?php
    2. $a = "Ich wurde in a.php definiert";
    3. ?>

    b.php:

    PHP-Quellcode

    1. <?php
    2. require_once('a.php');
    3. echo $a;
    4. ?>
    require_once vs. require vs. include vs. include_once

    Aber:
    Wenn sie gespeichert werden sollen: Warum keine Sessions?
    Von meinem iPhone gesendet
    Ich meinte eher so ala

    File1: $foo = '';
    File2: include(File1); $foo = 'hi';
    File3: echo $foo;

    ;)
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Öhm - dass es so nicht zu funktionieren scheint?

    Data.php: $error = ' ';
    Login.php: require('data.php'); $error = '<br /><p>Login incorrect, please try again.</p>';
    Index.php: require('login/data.php'); echo $error;

    Struktur:
    admin
    admin-index.php
    admin-login-login.php
    admin-login-data.php

    Zu den Sessions:
    Für $error wäre das schlauer, ja. Werde ich auch nutzen.
    Ich muss aber auch die Variablen $user und $pass aus einer anderen Datei auslesen
    sowie schreiben können. Und das soll dauerhaft geschehen.

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Nikx“ ()

    Soll der Pfad jedesmal anders sein der data.php?

    Zudem, wie werden sie aufgerufen? Variablen sind natürlich nur während EINES Requests gültig und nicht es wird auf login.php Navigiert und danach rufst du die index.php wieder auf, dann sind die Variablen natürlich wieder leer, das musst du dann über Sessions, Cookies machen.
    @Dodo: Und genau das ist was ich am Anfang meinte. Wie also lösen?
    Wie würde man da mit Sessions bzw. Cookies überhaupt arbeiten?

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    1. Request:

    PHP-Quellcode

    1. session_start();
    2. $_SESSION['variable1'] = "foo";
    3. setcookie("sid", session_id());


    2. Request:

    PHP-Quellcode

    1. session_id($_COOKIE['sid']);
    2. session_start();
    3. echo $_SESSION['variable1'];


    alles weitere über Session und Cookies findest aber auch im Netz.
    Problem:
    Da der User am Ende die Daten nur verändern soll, müsste ich ja jedesmal auchnoch die Data.php aufrufen, um den
    Cookie und so weiter neu zu setzen. Ausserdem: Lässt sich das manipulieren?
    Session wird von Browser Auto-Gelöscht und jeder Volldepp nutzt ja so nen Zeug wie TuneUp und leert die Cookies ^^

    Grüße
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
    Nö den musst du nicht jedesmal neu setzen. Die Cookie-Variable existiert ja bereits, wenn du sie einmal mit setcookie() angelegt hast. Den Wert kannst du entsprechend ändern, also mit $_COOKIE['deine_variable'] = 'neuer_wert';

    Session wird von Browser Auto-Gelöscht und jeder Volldepp nutzt ja so nen Zeug wie TuneUp und leert die Cookies

    Wobei das zwei unterschiedliche Dinge sind. Und Sessions werden nicht autogelöscht, sondern dann, wenn der Browser zugemacht wird. Die Einschränkung hast du bei Cookies nicht, die bleiben solang wie du es einstellst. Gut, wenn man explizit einstellt dass Cookies gelöscht werden wenn man den Browser schließt, ist wieder was anderes. Es gibt für Sessions und Cookies Vor- und Nachteile.
    Und auf Idioten die TuneUp-Tools im Einsatz haben brauchst du keine Rücksicht nehmen. Normale Menschen die zumindest ein bisschen Hirn haben verwenden das nicht. Du machst dir ja auch nicht die Mühe, darauf zu achten dass eine Webseite mit IE kompatibel ist (oder? :huh: ) Du siehst, du kannst nicht jeden Fall berücksichtigen.

    Link :thumbup:
    Hello World
    Also Sessions haben auch eine begrenzte Gültigkeit, glaube um die 10 Minuten, das wird in der PHP Ini festgesetzt wenn ich mich recht entsinne. Also wenn man länger nichts auf der Seite tut, bzw. die Session anfässt wird sie irgendwann automatisch gelöscht, auch wenn der Cookie mit der Session ID noch exisitiert. Aber das was du vor hast klingt eher danach, das eine vernünftige Datenbank benutzen solltest anstatt Sessions.
    Hatte schon über MySQL nachgedacht, dann bau ich da aber auch ne Userverwaltung für, sonst
    wird das zu viel.
    Thema Sessions wg. Error -> Hat Top funktioniert.
    Danke euch ^^
    "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

    Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!