• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SESSION: Hilfe!!!

tildeluxe

Mitglied
Hey liebes Forum,

da ihr mir schon einmal sehr erfolgreich geholfen habt, möchte ich euch noch eine Frage stellen :)

Ich möchte, dass wenn ein User nicht auf der "Enterseite" war, nicht auf den "Index" weitergeleitet werden kann.
Ich habe dies durch eure Hilfe mit Cookies gelöst, doch viele meinten, dass die SESSIONS Methode besser sei.

Wie funktioniert das ganze also mit SESSIONS? Ich wäre über einen Schnipsel sehr erfreut.

Viele liebe Grüße,
Tildeluxe
 
Hallo,
ich habe eben etwas zusammengeschrieben aber nicht getestet, sollte aber so funktionieren:
PHP:
<?php
session_start();
if(isset($_GET['enter']) == 1){
	$_SESSION['enterpage'] = 1;
	header("Location: indexpage.php");
}
if(isset($_SESSION['enterpage']) == 1){
	header("Location: indexpage.php");
}
?>

<a href="enterpage.php?enter=1"><img src="images/enterpage.png" alt="Willkommen auf unserer Webseite" /></a>
Du musst natürlich alles manuell anpassen, falls dir etwas unklar ist, stell deine Fragen einfach hier.
Mit freundlichen Grüßen
 
Erstmal vielen Dank, aber bei mir ist es so, dass es einen Index gibt (Auf der Seite wird nach AGB und Captcha verlangt).
Wenn der Nutzer alles richtig hat, wird er auf eine spezielle Seite weitergeleitet, die er vorher nicht besuchen kann/soll.
Also ist im Index eine Form, die "weiterleitung.php" abfragt, ob alles richtig ist. Wenn alles richtig ist, soll die Session starten und auf die spezielle Seite weitergeleitet werden.

Könntest Du mir den Code evt. darauf anschneidern? Ich habe mich in dem Post etwas unklar ausgedrückt, sorry dafür.
Ich weiß halt auch nicht, ob die Cookie Variante besser ist als die Session Methode... Villeicht kannst Du mir helfen.

Danke
 
Hallo,
könntest du diese weiterleitung.php denn posten? Ansonsten kann ich dir leider nur Codeschnipsel geben und sagen wo du es ungefähr einbauen musst, da ich den genauen Code ja nicht kenne.
Mit freundlichen Grüßen
 
Code:
<?php
session_start(); 
if(($_POST['check']) == $_SESSION['check'] AND (isset($_POST["agb"]))){ 
setcookie('sedocartlu',"1",0,"/"); 
Header("Location: http://www.funktioniert.de");                          
exit();
}
else{ 
Header("Location: http://www.nicht.de");                          
exit();
}
 
Hallo, probier es mal hiermit:
PHP:
<?php
session_start(); 
$_SESSION['accepted'] = 0;
if($_POST['check'] == $_SESSION['check'] && isset($_POST["agb"])) { 
	$_SESSION['accepted'] = 1;
	setcookie('sedocartlu',"1",0,"/"); 
	Header("Location: http://www.funktioniert.de");                          
	exit();
} else { 
	$_SESSION['accepted'] = 0;
	Header("Location: http://www.nicht.de");                          
	exit();
}
Allerdings musst du dann bei jeder Seite, die der Nutzer manuell (per Direkt-URL zum Beispiel) aufruft, überprüfen ob $_SESSION['accepted'] == 1 ist, falls nicht soll er auf die AGB-Seite zurückgeleitet werden.
Das könnte dann so aussehen:
PHP:
<?php
session_start();
if($_SESSION['accepted'] == 1){
	// Inhalt deiner Seite
}else{
	header("Location: weiterleitung.php");
}
?>
Mit freundlichen Grüßen
 
Eine Alternative per Get-Anhängsel oä. bei blockierten Cookies ist empfehlenswert, heutzutage achten User verstärkt auf die von Ihnen zugelassenen Inhalte.
 
@Andreas B

ich habe das ganze getestet, funktioniert nicht ganz. Muss die Session("accepted") nicht irgendwo gegeben werden, damit es abgefragt werden kann?
 
Der obere Code-Schnippsel entspricht dem Login, quasi der Datei an die ein Login abgeschickt wird. Dort wird
PHP:
$_SESSION['accepted'] = 1;
gesetzt.

Habe das hier gleich mal zu PHP verschoben, weils rein gar nichts mit HTML zu tun hat ..
 
Zurück
Oben