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 ::

Das Zend Framework

Das Zend Framework 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 > SELFPHP > 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 02.01.2013, 21:09:28
madio madio ist offline
Anfänger
 
Registriert seit: Jan 2013
Alter: 35
Beiträge: 3
Hilfe bei Session basiertem Login

Hallo liebe Forengemeinde,


ich bin ein absoluter Neuling auf dem ganzen Programmiergebiet, muss jedoch für die Uni eine Website bauen.

Hierzu habe ich ein Skript zur Registrierung und dem login von Usern gebaut (bezieht sich auf eine sql datenbank).
Bisher habe ich auch schon viel hinbekommen, bis darauf dass bestimmter content immernoch angezeigt wird, selbst wenn man nicht angemeldet ist.

Deshalb wollte ich fragen, was genau an meinen Skript falsch ist bzw. wie es richtig lauten müsste, damit bestimmte seiten erst nach dem erfolgreichen login zu sehen sind.

Nachdem die Registrierung oder der Login erfolgreich war, habe ich folgenden Befehl eingebaut
PHP-Code:
$_SESSION['user'] = $user
$user hatte ich als das definiert, was im login- bzw. registrierungsfeld eingegeben wurde.


auf den seiten, die erst nach dem login zu sehen sein sollen, ist oben folgender befehl eingefügt:
PHP-Code:
<?php 
include('login_check.php'); 
 
?>
Diese Datei 'login_check.php' sieht dann wie folgt aus:

PHP-Code:
<?php
 session_start
();
 
session_regenerate_id();
 if (!isset(
$_SESSION['user'])
 {
 echo 
"Sie sind nicht eingeloggt";
 echo 
"<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>";
 echo 
"<meta http-equiv='refresh' content='5;URL=index.html'>";
 }
 
?>


Zu guter letzt kommt noch die logout-datei, die mir leider einen fehler bezüglich des session_destroy befehls ausspuckt:

PHP-Code:
<?php
session_start
();
unset(
$_SESSION['user']);
session_destroy();
echo 
"Sie sind nun ausgeloggt";
echo 
"<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>";
echo 
"<meta http-equiv='refresh' content='5;URL=index.html'>";
?>



Ich würde mich riesig freuen, wenn mir jemand helfen könnte. Im Moment weiß ich nämlich leider (trotz stundenlangen googlens) nicht mehr weiter :(
Vielen Dank im Voraus!!!
Mit Zitat antworten
  #2  
Alt 02.01.2013, 21:44:47
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Hilfe bei Session basiertem Login

Wenn du das Script nach der Weiterleitung nicht beendest, dann läuft es natürlich weiter...

Warum überhaupt mit JS? und nicht mit header()?
Auf das session_regenerate_id() solltest du evtl verzichten, bis du weißt, was du da tust.

Zitat:
die mir leider einen fehler bezüglich des session_destroy befehls ausspuckt
Ist naürrlich supi, dass du die Meldung geheim hältst ....
Mit Zitat antworten
  #3  
Alt 02.01.2013, 22:28:04
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Hilfe bei Session basiertem Login

Zitat:
Zitat von madio Beitrag anzeigen
ich bin ein absoluter Neuling auf dem ganzen Programmiergebiet, muss jedoch für die Uni eine Website bauen.
Und da die Uni entweder Pleite ist oder das Projekt mit zum Lehrplan gehört, möchtest Du Dir hier von uns das Handbuch vorlesen lasse.

Zitat:
Deshalb wollte ich fragen, was genau an meinen Skript falsch ist bzw. wie es richtig lauten müsste, damit bestimmte seiten erst nach dem erfolgreichen login zu sehen sind.
Löblicher Vorsartz, aber ist das Script und wo sind die Fehlermeldungen?

Zitat:
Zu guter letzt kommt noch die logout-datei, die mir leider einen fehler bezüglich des session_destroy befehls ausspuckt:
Und wie heißte der Fehler?
Zitat:
PHP-Code:
<?php
session_start
();
unset(
$_SESSION['user']);
session_destroy();
<
diverses html geraffel>
?>
Waum willst die Session zerstören? Zumal es eh von den Wasserständen und Tauchtiefen abhängt, wann PHP die garbage collection aka Müllabfuhr losschickt. Sofort, in 5 Sek. oder in 1-2 Std.
Wenn Du die Sessiondaten löschen willst, dann nimm das:
PHP-Code:
$_SESSION = array();
session_write_clode();
header('Location: http:example.com/public.php');
exit; 
Zitat:
Im Moment weiß ich nämlich leider (trotz stundenlangen googlens) nicht mehr weiter :(
Du solltest suchen lernen.
Mit Zitat antworten
  #4  
Alt 02.01.2013, 23:38:53
madio madio ist offline
Anfänger
 
Registriert seit: Jan 2013
Alter: 35
Beiträge: 3
AW: Hilfe bei Session basiertem Login

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Wenn du das Script nach der Weiterleitung nicht beendest, dann läuft es natürlich weiter...

Warum überhaupt mit JS? und nicht mit header()?
Auf das session_regenerate_id() solltest du evtl verzichten, bis du weißt, was du da tust.


Ist naürrlich supi, dass du die Meldung geheim hältst ....
Danke schon mal für die Antwort.
Der Fehler lautet wie folgt:
HTML-Code:
Warning: session_destroy(): Session object destruction failed in C:\xxxxx\xxxx\logout.php on line 4
Sie sind nun ausgeloggt
Header benutze ich aus dem einfachen Grund nicht, dass ich keinen anständigen befehl gefunden habe, mit dem ich die Umleitung verzögern kann. Sleep hat z.B. nie zu einer Ausgabe des Textes geführt...


@meikel:
Ich besitze ein 188 Seiten langes PHP Grundlagen Buch, habe das Forum sowie viele weitere Seiten durchsucht, alle nötigen Skriptbausteine und Fehler geschildert.
Was genau ist also dein Problem?
Mit Zitat antworten
  #5  
Alt 03.01.2013, 07:21:23
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Hilfe bei Session basiertem Login

Zitat:
Header benutze ich aus dem einfachen Grund nicht, dass ich keinen anständigen befehl gefunden habe, mit dem ich die Umleitung verzögern kann. Sleep hat z.B. nie zu einer Ausgabe des Textes geführt...
Ja, so ist das!
Wozu auch die Ausgabe?


Die Meldung kommt aus dem session.save_handler.
Welchen nutzt du?
Mit Zitat antworten
  #6  
Alt 03.01.2013, 07:38:35
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Hilfe bei Session basiertem Login

Zitat:
Zitat von madio Beitrag anzeigen
Der Fehler lautet wie folgt:
HTML-Code:
Warning: session_destroy(): Session object destruction failed in C:\xxxxx\xxxx\logout.php on line 4
Sie sind nun ausgeloggt
http://www.php-resource.de/forum/php...html#post11279
Da Du selber auch ein WAMP benutzt: Windows ist bisweilen ungnädig, wenn ein Popeluser oder -dienst Dateien löschen möchte.

Zitat:
Header benutze ich aus dem einfachen Grund nicht, dass ich keinen anständigen befehl gefunden habe, mit dem ich die Umleitung verzögern kann.
Warum verzögern? Der User hat auf Logout geklickt - also schmeiß ihn raus und stell den Zustand vor dem Login wieder her.

Zitat:
Ich besitze ein 188 Seiten langes PHP Grundlagen Buch,
Es gibt keine aktuellen PHP-Bücher, weil sich die Sprache schneller ändert als das Buch geschrieben, redigiert und gedruckt werden kann.

Halte Dich gundsätzlich an das Handbuch, möglichst die englische Version. Die ist aktueller, weil deutsch ja erst übersetzt werden muß.
Zitat:
Was genau ist also dein Problem?
Du verwechselst da was: ich habe kein Problem.

Dein Script setzt auf session_destroy() und scheitert, falls PHP die Datei nicht löschen darf oder nicht sofort löscht.
Verwende das:
PHP-Code:
$_SESSION = array(); 
Das is wie "format c:" und der Inhalber des Session-Kekses ist tritz Keks ein unbeschriebenes Blatt.
Natürlich solltest Du den Loginstatus nicht davon abgängig machen, ob die Session existiert - da gibts ja systembedingt Karteileichen, sondern Du fragst die Existenz eines Keys ab, der nur dann existiert, wenn der Login erfolgreich war.
Mit Zitat antworten
  #7  
Alt 04.01.2013, 12:07:32
madio madio ist offline
Anfänger
 
Registriert seit: Jan 2013
Alter: 35
Beiträge: 3
AW: Hilfe bei Session basiertem Login

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Ja, so ist das!
Wozu auch die Ausgabe?


Die Meldung kommt aus dem session.save_handler.
Welchen nutzt du?
Ich weiß (bisher noch) nicht, was ein session.save_handler ist, geschweige denn wie ich ihn nutze und wo ich ihn finde.
Für unsere Website reicht allerdings ein sehr abgespecktes skript, da wir innerhalb eines Monats das Ganze realisieren sollen (und das ohne auch nur einen Funken Grundwissen davor zu besitzen).

Habe den session destroy Befehl jetzt heraus genommen und durch den von meikel vorgeschlagenen ersetzt. Nun funktioniert es, vielen Dank!

Ich hatte zuvor auch überlegt, das Ganze mit Hilfe eines Feldes in sql zu machen, in dem abgefragt wird, ob der user angemeldet ist. Allerdings würde dies ja erhebliche Mehrbelastung des Servers bedeuten und hinzu kam natürlich, dass ich keine Idee hatte, woher ich den usernamen bekomme (bzw. wie ich diesen abfragen kann).
Ich denke aber dass das session basierte login system für unser Projekt reichen sollte
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
Hilfe bei session basierendem Login merlin113 PHP Grundlagen 9 17.06.2010 11:28:38
Session wird zu früh beendet ... sk4ter PHP Grundlagen 2 15.11.2007 18:49:57
Login Skript bzw, SESSION Soeren PHP für Fortgeschrittene und Experten 8 02.11.2007 14:44:59
Bei Session Login - Wie kann ich einen direkter Zugriff über URL verhindern? Ladbroke PHP Grundlagen 1 19.04.2006 18:28:57
laufende session soll 2. login verhindern PiCiJi PHP für Fortgeschrittene und Experten 7 25.08.2004 14:47:10


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:42:40 Uhr.


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


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