PHP Variablen übergeben - von einer Datei zur nächsten (2024)

Allererste PHP Schritte
- Webserver Installation
- PHP Editor Installation

PHP Grundlagen
- PHP Grundwissen
- Mein erstes Programm
- Kommentare einfügen
- Variablen
- PHP+HTML mischen
- If Abfragen
- Rechenarten
- Arrays
- Schleifen
- Funktionen
- Klassen
- Includes
- Sessions und Cookies
- Login mit Sessions
- Login mit Datenbank
- Referer auslesen
- Wert aus Datenbank
- Variablen übergeben

MySQL Grundlagen
- Was ist das ?
- Erste Schritte
- Verbindung herstellen
- Einfache SQL Befehle
- SQL Injection

Häufig gefragt
- Was ist Adwords ?
- Interessante Links
- Wasserzeichen mod_rewrite
- Thumbnails erstellen
- PHP Gästebuch
- PHP Header
- Webseiten auslesen
- Socket Verbindungen
- E-Mail Adressen prüfen
- E-Mails versenden
-
- Datenbank sichern
- Server DDOS Angriffe Abwehren
- Webhosting - Worauf ist zu achten ?

Interessante Artikel
Folgende Situation: wir haben zwei verschiedene Dateien, nennen wir die ersteDatei login.php und die zweite ist unsere profil.php. Wir möchtennun eine Variable, welche in der login.php gespeichert wurde in der nächstenDatei weiter benutzen können. Wie greife ich auf die Variable in der zweitenDatei zu, wenn diese in einer anderen Datei gesetzt wurde ?

Hierzu müssen wir verschiedene Fälle betrachten und ein wenigGrundlagen erläutern.

Dies ist zugleich ein klassisches Beispiel dafür, wie man Daten mit POST übermittelt.

Wenn eine Datei eine andere Datei mit include(); einfügt,dann kann man in der zweiten Datei profil.php im Code auf alle Variablen zugreifen, die auchin der ersten Datei login.php gesetzt worden sind. Hierzu ein Beispiel, wie man mehrereDateien ineinander "includen" kann. Include bedeutet nichts anderes, als das genau an dieserStelle wo wir include("datei_xy.php"); schreiben der gesamte Quellcode von der Datei die wirin den runden Klammern angegeben haben für php zum abarbeiten eingefügt wird. Sokann man einen sehr großen Programmcode in viele kleine Unterteilen, in verschiedenenDateien abspeichern und dann mehrfach benutzen. Der Programmcode bleibt übersichtlich undich weiss, dass ich um was am Login zu ändern an der login.php ändern muss. Wäredies alles in einem einzigen Programmcode müsste ich die Zeilen für den Loginwarscheinlich aus tausenden von Zeilen raussuchen.

Datei: formular.html:

<formmethod="POST"action="login.php">
<b>Login</b><br>
<br>
Username:<inputname="loginname"><br>
Passwort:<inputname="loginpasswort"type=password><br>
<br>
<inputtype=submitname=submitvalue="Einloggen">
</form>


Datei: login.php:

<?php
session_start
();#DieLogindatenlautenUsername:adminPasswort:12345
$_logindaten=ARRAY("name"=>"admin","passwort"=>"12345");

if(isset(

$_POST["loginname"])&&isset($_POST["loginpasswort"]))
{
if(
$_logindaten["name"]==$_POST["loginname"]&&
$_logindaten["passwort"]==$_POST["loginpasswort"])
{
#Userdatenkorrekt-Useristeingeloggt
#LoginundLogindatenspeichern!
$_SESSION["login"]=1;
$_SESSION["username"]=$_POST["loginname"];
$_SESSION["passwort"]=$_POST["loginpasswort"];
}
}

if(

$_SESSION["login"]!=1)
{
#HierwirdmitincludederQuelltextvonderformular.htmlfür
#denParsergeladen-undsomitauchdieserQuellcode
#ausgeführt.Danachsteigenwirmitexitausderweiteren
#AbarbeitungdesProgrammsaus!
include("formular.html");
exit;
}
#Useristeingeloggt,wirdnurausgeführtwennLoginerfolgreich
#MitIncludeladenwirdenQuelltextderprofil.phpmitzudiesem
#Quelltext,damitdieserauchabgearbeitetwird!
include("profil.php");
?>


Datei: profil.php:

<?php
echo"EingeloggtistderBenutzter".$_SESSION["username"];
?>

In diesem Beispiel ist es nun so, dass das Formular für den Login nur angezeigt wird,wenn der User nicht eingeloggt ist. Gibt er einmal die Daten richtig ein, dann werden dieseund der erfolgreiche Loginversuch in der SESSION gespeichert. Die Session kann nicht von aussenmanipuliert werden. Dadurch dass die Daten dann in der Session verfügbar sind, könnenwir den Login überspringen und laden dann nur noch die profil.php.

Im zweiten Fall haben wir das Formular, die login.php und die profil.php . Die Dateienincluden sich nicht gegenseitig. Erst wird die login.php ausgeführt - wenn derLogin erfolgreich war, kommt man per Klick auf die nächste Datei. Die profil.phpwird ausgeführt, ohne dass vorher die login.php ausgeführt wird - wie kommt mannun an die Userdaten die vorher eingegeben wurden ?

Hierfür gibt es zwei verschiedene Möglichkeiten !

a) man kann die Daten einmalig per GET übergeben

b) Man kann die Daten in der Session speichern und dann später in jeder anderenaufgerufenen Datei aufrufen, bis die Session zerstört oder der Browser geschlossen wird

Zu beidem will ich euch hier ein Beispiel geben !

PHP Variablen übergeben - von einer Datei zur nächsten (1) GET und POST - der Unterschied: extra zu diesem Kapitel habe ich einExtra Kapitel angelegt, welches kurz erklärt was GET und POST überhaupt ist undwas die Unterschiede der beiden Daten Übertragungsarten sind - hier klicken -


Datei: login.php:

<?php
#DiesenBenutzerwollenwirandieprofil.phpmitGETübergeben
$_benutzer="Heinrich";
?>

<ahref="profil.php?name=<?php=$_benutzer?>&nach=Mueller">Weiter....</a>


Datei: profil.php:

<?php
echo"ÜbergebenwurdederName".$_GET["name"];
echo
"<br>Nachname".$_GET["nach"];
?>


Hier wird der Name per GET übergeben. Dafür müssen wir den Namen über dieAdresszeile des Browsers übergeben. Achtung: Groß- und Kleinschreibung nimmt auchPHP ganz übel - $name ist nicht das selbe wie $Name oder $nAme - das sind allesverschiedene Variablen. Beim Aufruf der nächsten Datei sind die Daten, die wir mitGET übergeben haben verfügbar. Nachteil des ganzen ist, dass diese Daten nurbeim Aufruf der nächsten Datei verfügbar sind - geben wir diese dann nicht erneutwieder mit GET weiter, dann gehen diese verloren - sie bleiben nicht dauerhaft im GETgespeichert.
Datei: login.php:

<?php
#DieSessionmussimmerzuerstgestartetwerden,bevor
#eineAusgabeandenBrowsererfolgt!!!
SESSION_START();$_SESSION["username"]="Heinz";
$_SESSION["uhrzeit"]=time();
?>
<ahref="profil.php">Hiergeht´szurprofil.php!</a>


Datei: profil.php:

<?php
#Sessionstartennichtvergessen!!!SonstgibtskeineDaten!
SESSION_START();

echo

"InderletztenDateiwurdederBenutzer".
$_SESSION["username"]."gespeichert-am".
date("d.m.YH:i:s",$_SESSION["uhrzeit"])."Uhr";
?>


Hier wird erst die login.php gestartet - diese startet die Session undspeichert in dieser den Benutzernamen und das aktuelle Datum mit der Uhrzeit(Unix Timestamp). Wenn der Surfer dann auf den Link klickt, kommt er zu der profil.phpund dort wird wieder die Session aufgegriffen und die Daten werden ausgegeben.

Vorteil dieser Methode: Daten die man einmal in einer Session speichert bleiben solangeerhalten bis man diese zerstört oder der Surfer den Browser schliesst und eine gewisseZeit vergeht. Man muss also nicht von Datei zu Datei immer wieder diese Daten übergebenwie bei GET damit diese nicht verloren gehen. Diese Daten sind dann aber auch nur für dieDomain gültig, auf der sich der Surfer gerade befindet - wechselt man die Domain, dannwäre dies eine neue Session. Es gibt Webserver, da wird die Session in der Adresszeilemit angezeigt - z.B. index.php?PHPSESSID=394829348928349283942934 - deshalb sollte man soeine Adresse nie mit der Sessionnummer weitergeben, weil der nächste der auf diesen Linkklickt surft mit euren Daten weiter. Die Daten werden nämlich auf dem Server gespeichertund nicht beim Surfer (was zum Beispiel bei Cookies der Fall ist). Um ein Skript abzusichernkönnte man z.B. die IP Adresse des Surfers noch mit in der Session speichern. Wenn dieseIP Adresse aus der Session nicht gleich der IP Adresse des Surfers ist, könnte man dieSession zerstören ( SESSION_DESTROY(); nur so als Anregungsbeispiel).


<<<< zurückKapitelauswahlvorwärts >>>>

PHP Variablen übergeben - von einer Datei zur nächsten (2024)

References

Top Articles
The 10 Best Clothing Alteration Services Near Me (with Free Estimates)
James Spann On Twitter
Menards Thermal Fuse
Joe Taylor, K1JT – “WSJT-X FT8 and Beyond”
Fan Van Ari Alectra
DPhil Research - List of thesis titles
Enrique Espinosa Melendez Obituary
Craigslist Vans
Practical Magic 123Movies
Craigslist Furniture Bedroom Set
Sportsman Warehouse Cda
Clafi Arab
123 Movies Babylon
Lima Crime Stoppers
Ssefth1203
Elizabethtown Mesothelioma Legal Question
State HOF Adds 25 More Players
Carson Municipal Code
Quadcitiesdaily
Unionjobsclearinghouse
Reborn Rich Kissasian
Lost Pizza Nutrition
Jordan Poyer Wiki
Inkwell, pen rests and nib boxes made of pewter, glass and porcelain.
Bolsa Feels Bad For Sancho's Loss.
Is Holly Warlick Married To Susan Patton
Dashboard Unt
10 Best Places to Go and Things to Know for a Trip to the Hickory M...
Ncal Kaiser Online Pay
Sinfuldeed Leaked
Eero Optimize For Conferencing And Gaming
Utexas Baseball Schedule 2023
Mega Millions Lottery - Winning Numbers & Results
Of An Age Showtimes Near Alamo Drafthouse Sloans Lake
Scioto Post News
Joplin Pets Craigslist
Suspect may have staked out Trump's golf course for 12 hours before the apparent assassination attempt
Cross-Border Share Swaps Made Easier Through Amendments to India’s Foreign Exchange Regulations - Transatlantic Law International
Bimmerpost version for Porsche forum?
Kelly Ripa Necklace 2022
Woodman's Carpentersville Gas Price
Eastern New Mexico News Obituaries
Directions To The Closest Auto Parts Store
26 Best & Fun Things to Do in Saginaw (MI)
Backpage New York | massage in New York, New York
552 Bus Schedule To Atlantic City
Sams Gas Price San Angelo
Cryptoquote Solver For Today
Poster & 1600 Autocollants créatifs | Activité facile et ludique | Poppik Stickers
The 5 Types of Intimacy Every Healthy Relationship Needs | All Points North
Minecraft Enchantment Calculator - calculattor.com
211475039
Latest Posts
Article information

Author: Merrill Bechtelar CPA

Last Updated:

Views: 6365

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Merrill Bechtelar CPA

Birthday: 1996-05-19

Address: Apt. 114 873 White Lodge, Libbyfurt, CA 93006

Phone: +5983010455207

Job: Legacy Representative

Hobby: Blacksmithing, Urban exploration, Sudoku, Slacklining, Creative writing, Community, Letterboxing

Introduction: My name is Merrill Bechtelar CPA, I am a clean, agreeable, glorious, magnificent, witty, enchanting, comfortable person who loves writing and wants to share my knowledge and understanding with you.