SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.07.2005, 13:56:05
Benutzerbild von Bombe
Bombe Bombe ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 78
Die Grundfunktion einer Session?

Hallo erstmal,

ich grüble seit wochen über das Problem von Sessions nach! Also das Problem über die Anwendung einer Session. Ich habe mich tagelang durchgegoogelt und tutorials gelesen.

Doch ich verstehe immer noch nicht wie das in der Praxis nun funktioniert!
Ich schreibe dies mal so wie ich es verstanden hab und es wäre gut, wenn ihr mich da mal endlich aufklärt, damit die sucherei und grübelei ein Ende hat.

#####################################################

Ok, gehen wir davon aus ich habe ein Login-Formular (index.php):
PHP-Code:
<?php
echo "<form method="post" action="login.php";
echo " 
<input name="user">";
echo " 
<input name="pass" type="password">";
echo "
</form>"; //stark vereinfacht
echo "
<input type="submit" value="Login">";
?>
ok...das war jetzt nur für das formular und die Daten sollen nun an die login.php übermittelt werden, wo die Daten getestet werden.

PHP-Code:
<?php
start_session
(); //hier wird die session gestartet
include ("#mysql.inc");

$user mysql_real_escape_string($_POST['user']); 
$pass mysql_real_escape_string($_POST['pass']);
 
$abfrage "SELECT 
               username, 
               password 
            FROM 
               nachr_user 
            WHERE
               username = '$user' AND 
               password = '$pass'"
;      

 
$sql mysql_query($abfrage); 

 if ( 
mysql_fetch_assoc($sql) == true ) { 
  
$_SESSION["username"] = $user;
  
$_SESSION["passwort"] = $pass;
  echo 
"<head><meta http-equiv=\"refresh\" content=\"1; url=admin/seite2.php?SID\"></head>"//hier soll die ID übermittelt werden
  
echo "<center>Sie werden weiter geleitet...</center>";
  }
?>
naja, hier sieht man deutlich, dass das so wie ich es verstanden habe gar net klappen kann! ich weiß aber nicht wie ich das anders machen muss oder soll geschweige denn kann!

und wie ich hinterher die Daten wieder auslesen soll, da habe ich absolut mal gar keine Ahnung!

Das oben war mal eine Demonstration meiner Verwirrung was die Verwendung einer Session angeht.

Ich hoffe es findet sich die eine oder andere barmherzige Seele, die mir das mal zeigt wie ich eine Session für mein Script verwenden kann. <:-(


MfG,
Bombe

Geändert von Bombe (17.07.2005 um 13:57:47 Uhr)
Mit Zitat antworten
  #2  
Alt 17.07.2005, 15:05:57
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Die Grundfunktion einer Session?

Zitat:
Zitat von Bombe
PHP-Code:
$abfrage "SELECT 
               username, 
               password 
            FROM 
               nachr_user 
            WHERE
               username = '$user' AND 
               password = '$pass'"

Wenn du die Daten nach der Abfrage eh nicht weiterverarbeitest, reicht SELECT COUNT() hier vollkommen aus:
PHP-Code:
<?php
    $sql 
"SELECT
                COUNT(username) AS num
            FROM
                nachr_user
            WHERE
                username   = '$user' AND
                `password` = '$pass'
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    if($row['num'] == 1) {
        //  Benutzername und Passwort sind richtig
    }
?>
Bedenke hier auch, dass password in MySQL ein reserviertes Wort ist.

Zitat:
Zitat von Bombe
PHP-Code:
  echo "<head><meta http-equiv=\"refresh\" content=\"1; url=admin/seite2.php?SID\"></head>"//hier soll die ID übermittelt werden 
SID ist eine Konstante. Du kannst sie also nicht innerhalb von Anführungszeichen verwenden:
PHP-Code:
<?php
    
echo '<meta http-equiv="refresh" content="1; url=admin/seite2.php?' SID '>';
?>
Hier dürfte eine Weiterleitung mit header('Location: ...') allerdings ausreichen.
Mit Zitat antworten
  #3  
Alt 17.07.2005, 16:35:21
Benutzerbild von Bombe
Bombe Bombe ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 78
AW: Die Grundfunktion einer Session?

ja, mhh...ich hätte noch etwas dazu schreiben müssen! mein fehler. Trotzdem vielen Dank, dass du mir das mal mit dem Header gezeigt hast, das könnte ich gut gebrauchen.

also nochmal zu meinem Problem mit den Daten!
Das ganze war so gedacht:
1. Man kommt auf eine index.php, wo man sich einloggen soll
2. Die Daten werden an login.php geschickt und dort kontrolliert
--> Das script kann in ausführlicher Form noch mehr:
Es ermittelt für den jeweiligen User auch den
entsprechenden Zugangsbereich!
Es wird also
1.) kontrolliert ob die Daten stimmen
2.) für welche Location der Nutzer zugelassen ist.

Ich möchte aber (da dies für einen Privaten Adminbereich sein soll) in jedem weiteren Script kontrollieren, ob sich der Nutzer auch brav über das Login-Script eingewählt hat! Es soll also immer kontrolliert werden ob Daten vorliegen (das weist auf ein login logischerweise hin).
Es soll vermieden werden, dass sich ein Mr.X über direktlink auf einen internen Bereich zugriff haben kann.

Ich hoffe ich verwirre jetzt niemanden! Diese Sache funktioniert bei meinen Scripten auch wunderbar, jedoch muss ich jedes mal den Nutzernamen über die URL mitliefern! Und hier fangen die Sicherheitslücken an dramatisch aufzuklaffen, denn jemand, der sich ein wenig mit PHP auskennt kann so total leicht in den internen Bereich!
==================================================================

Ich will die Daten nicht lesbar über die URL, sondern per Sessions übertragen! Ich weiß allerdings nicht wie ich so eine Session benutze!
nach möglichkeit soll auch das Passwort per Session mitgeliefert werden, sodass in jedem Script erst einmal kontrolliert wird, ob ein gültiger Benutzer vorhanden ist! Versteht ihr was ich meine?
Mit Zitat antworten
  #4  
Alt 17.07.2005, 18:45:39
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Die Grundfunktion einer Session?

Führe doch folgende Zeile aus, sobald sich ein Benutzer erfolgreich einloggt:
PHP-Code:
$_SESSION['login'] = true
So kannst du dann auf jeder geschützten Seite abfragen, ob der Benutzer eingeloggt ist:
PHP-Code:
<?php
    
if(array_key_exists('login'$_SESSION) && $_SESSION['login'] === true)
?>
Mit Zitat antworten
  #5  
Alt 18.07.2005, 15:02:37
Benutzerbild von Bombe
Bombe Bombe ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 78
AW: Die Grundfunktion einer Session?

Das ist genial!!

Xabbuh, ich muss sagen ich find das klasse, weil du immer eine lösung für meine probleme parat hast!
Tausend Dank.


ABER,
ich habe das Problem, dass ich gar nicht weiß was ich machen muss um eine solche Session zu verwenden.
Hab was gelesen von einem Start usw.
Könnt ihr mir einfach mal erklären (für anfänger und dumme wie mich) wie ich daten von Script A zu Script B befördere, ohne dass ich Post oder noch schlimmer GET verwenden muss.

Trotzdem schon mal ein riesen Danke an euch!
Mit Zitat antworten
  #6  
Alt 18.07.2005, 15:41:08
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Die Grundfunktion einer Session?

Um eine Session zu verwenden, benötigst du die Funktion session_start() am Anfang jeder Seite. So wird überprüft, ob eine gültige Sessionid per URL oder Cookie geliefert wurde. Wenn ja, wird diese aufgenommen. Ansonsten wird eine neue Session erstellt. Daten speicherst du in dem superglobalen $_SESSION-Array:
PHP-Code:
<?php
    $_SESSION
['var'] = 'hallo';
?>
Diese Werte können natürlich über das $_SESSION-Array auch wieder ausgegeben werden:
PHP-Code:
<?php
    
print $_SESSION['var'];    //  Ausgabe: hallo
?>
Mehr zu Sessions findest du auch im Tutorial: http://tut.php-q.net/sessions.html
Mit Zitat antworten
  #7  
Alt 18.07.2005, 16:06:09
Benutzerbild von Bombe
Bombe Bombe ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 78
AW: Die Grundfunktion einer Session?

hui, also vieln tausend Dank!

Dieses Tutorial habe ich mir schon bestimmt 4 mal durchgelsen bei den sessions, aber habs bisher nie verstanden.

Nochmal zur kontrolle:

Ich verwende jedes mal session_start() am Anfang einer Scriptdatei. Klaro!
Dann lege ich eine Art "Variablen" fest
(z.B. $_SESSION['moiin'] = $blabla;)

Das wird irgendwie vom Server gespeichert und kann ich einfach wieder ohne weitere vorkehrungen ausspucken lassen???

Aber was zum Henker ist das nochmal mit der Session-ID ? Muss ich das auch irgendwie verwenden oder passiert das automatisch?
Mit Zitat antworten
  #8  
Alt 18.07.2005, 16:32:02
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Die Grundfunktion einer Session?

Zitat:
Zitat von Bombe
Das wird irgendwie vom Server gespeichert und kann ich einfach wieder ohne weitere vorkehrungen ausspucken lassen???
DIe Daten des Sessionarrays werden grob gesagt auf dem Webspace abgelegt und einer bestimmten Sessionid zugeordnet.

Zitat:
Zitat von Bombe
Aber was zum Henker ist das nochmal mit der Session-ID ? Muss ich das auch irgendwie verwenden oder passiert das automatisch?
Diese Sessionid wird automatisch durch session_start() vergeben.
Mit Zitat antworten
  #9  
Alt 18.07.2005, 16:51:53
Benutzerbild von Bombe
Bombe Bombe ist offline
Anfänger
 
Registriert seit: Apr 2005
Beiträge: 78
AW: Die Grundfunktion einer Session?

coole sache! werds bei der nächsten gelegenheit sofort ausprobieren! Vielen Dank!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
session problem mit session id Fabian85 PHP für Fortgeschrittene und Experten 24 01.02.2005 08:30:19
Session verliert sich auf zweiter Seite CyberAge PHP für Fortgeschrittene und Experten 5 10.06.2004 10:48:43
Session Probleme CounterStar PHP für Fortgeschrittene und Experten 1 09.04.2004 22:55:23
SESSION daten gehen leider nicht verloren! - wennd as fenster geschlossen wird Phil PHP für Fortgeschrittene und Experten 3 31.03.2004 13:08:33
session überprüfen... Xantos PHP für Fortgeschrittene und Experten 4 21.05.2002 10:54:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:28:55 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt