URL für nächstes Formular weitergeben...

Xannasavin
Servus!

Ich hab mir eine Cookie-Kontrolle gebastelt. Allerdings hänge ich grade an einem Punkt:
Die Cookie-Kontrolle greift, sobald ein User das Forum betritt und länger als 24h nicht mehr da war.
Ich möchte nun, wenn das Forum erkennt, dass das Cookie älter als 24h ist oder nicht existiert, dass der User auf eine andere Seite umgeleitet wird, wo geprüft wird ob Cookies abgelegt werden können.
Ich möchte allerdings, dass bei einem Erfolg der User auf die URL weitergeleitet wird, die er davor aufgerufen hat.
Wie übergebe ich diese URL aus der Browserzeile mit auf die nächste Seite um ihn von dort weiterleiten zu können?

Grüße
[kamui]
Wie alt ist der Cookie? Leg einen zweiten Cookie an, welcher einen Timestamp der Erstellung enthält, damit kannst du es dann überprüfen.

php:
1:
2:
setcookie("test"true);
if (!$_COOKIE['test']) echo "Wir können bei Ihnen keine Cookies setzen";

Sollte das andere Problem lösen.
Xannasavin
Im Moment sieht mein Code so aus:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
###Cookie Kontrolle###
if($wbbuserdata['userid']!="0"){

$cookietesttime time()-86400;
if ((($_COOKIE['cookietester'] <= $cookietesttime) || (!isset($_COOKIE['cookietester']))) && $action != "cookies" && $cookietest != "1") {
// setze Cookie wenn nicht vorhanden oder Älter als einen Tag
setcookie("cookietester""".time()."");
// Leite weiter auf andere Seite
header('Location:#cookietest=1');
} 
elseif((($_COOKIE['cookietester'] <= $cookietesttime) || (!isset($_COOKIE['cookietester']))) && $cookietest == "1" && $action != "cookies"){
header('Location:sonstiges.php?action=cookies');
}
}
###Ende Cookie Kontrolle###


Wenn kein Cookie "cookietester" gesetzt wurde oder es älter als 24h ist, wird es erneut gesetzt.
Die Seite läd sich erneut mit der Variablen #cookietest=1 (was mein Problem ist. Mit ? kann es der Seite in die Quere kommen und mit & kanns nicht einfach angehängt werden).
Danach wird nochmal überprüft obs das Cookie jetzt gibt. Wenn ja, passiert nichts weiter, wenn nein wird auf eine Fehlerseite geleitet.

Statt dem neu laden der Seite wollte ich auf eine Andere Testseite weiterleiten und von dort entweder auf die Ursprünglich aufgerufene Seite oder auf die Fehlerseite.

Oder kann ich mir das ganze mit deiner Variante sparen? Die scheint mir etwas anders abzuzielen, einfach nur obs gesetzt werden kann...
Meine Variante überprüft halt täglich (und nicht bei jedem Aufruf) ob Cookies gesetzt werden könnnen...
[kamui]
Was konkret ist dein Problem?

Und für PHP-Codes bitte den [PHP ]-BBCode (ohne Leerzeichen vor dem endenden ]) benutzen, danke.
Xannasavin
Also:

Deine Lösung ist schön einfach. Seh ich das richtig, dass die bei jedem Seitenaufruf ein Cookie setzt und überprüft ob es gesetzt werden konnte?
Wenn das Cookie einmal gesetzt werden konnte, ist es jedoch immer da und der Test gibt auch grünes Licht, wenn Cookies irgendwann nichtmehr akzeptiert werden?

Meine Lösung zielt darauf ab "nur" jeden Tag zu überprüfen, ob Cookies gesetzt werden können. Sie erkennt auch wenn irgendwann mal keine Cookies mehr gesetzt werden können.

Mein einziges Problem ist nun die URL, die der User aufruft bei dem Test mit zum nächsten Formular zu geben.

Der User ruft domain.de/test.php auf.
Es wird überprüft ob das Cookie gesetzt werden kann, er wird auf eine Seite umgeleitet -> domain.de/cookie.php?url=domain.de/test.php.
Konnte das Cookie gesetzt werden wird er auf seine Ursprüngliche Seite domain.de/test.php zurückgeleitet.
Bei einem Fehler wird er auf domain.de/error.php geleitet.

Ich weiß nur nicht wie ich die URL des Users "domain.de/test.php" in eine Variable bekomme um sie der Url "domain.de/cookie.php?url=" anzuhängen.

War das jetzt verständlicher? ><
[kamui]
$_SERVER['HTTP_HOST'] oder $_SERVER['SERVER_NAME'] sollten dir weiterhelfen Augenzwinkern
Xannasavin
Okay schonmal super, damit hab ich den Teil "domain.de", der Rest dahinter fehlt aber noch...

Angenommen der user ruft nur eine php auf, könnte man ja "$filename" mitgeben. ($_SERVER['HTTP_HOST']/$filename)
das ganze sollte aber natürlich universel sein, wenns nämlcih richtung "board.php?boardid=123" oder "thread.php?postid123#123" geht... verstehst was ich meine?

danke übrigens, dass du dir die geduld nimmst und mühe machst fröhlich

ich hab was gefunden:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
<?php
function curPageURL() {
 $pageURL 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>


Das sollte es tun oder? Was meinst du dazu?

Was er allerings nicht ausgibt sind Zeichen nach einer Raute... kann man da was machen? (postid=123#123 würde nur als postid123 ausgegeben).
[kamui]
Mhm ... ehrlich gesagt habe ich so etwas noch nie gemacht und auch noch nie gesehen ...

Du kannst mal schauen und mit $_SERVER-Variablen rumspielen, musst du selbst schauen, ob es da eine gibt, die für diese Anker zuständig ist.
Xannasavin
Hab ne Lösung gefunden fröhlich

php:
1:
2:
3:
4:
5:
if($postid!=''){
header("Location:sonstiges.php?action=cookies&url=".$currentpageurl."#".$postid);
}else{
header("Location:sonstiges.php?action=cookies&url=".$currentpageurl);
}


Vielen Dank fröhlich

Jetzt müsste es funktionieren.... bin am überlegen, ob ich alles zusammenfassen und zum Download bereitstellen soll - was meinst du?
[kamui]
Zitat:
Original von Xannasavin
bin am überlegen, ob ich alles zusammenfassen und zum Download bereitstellen soll - was meinst du?


Wie du willst Augenzwinkern

Solltest dir halt im klaren sein, dass, wenn du es zum Download anbietest und das ganze eine Nachfrage hat, auch Support-Arbeit auf dich zukommt Augenzwinkern
Xannasavin
Dann lieber nicht XD bin froh dass ich das soweit hinbekommen hab das es scheinbar läuft ^^