[PHP] session_unregister

traffic

Well-known member
5 Mai 2006
675
25
Hallo,

ich laße so eine session regristieren

PHP:
session_start();
session_register("typ");

möchte aber den typ löschen und dann gleich weider neu belegen


Wie mache ich das?
Ich bekomme das nicht hin....

Vielen dank. Hab schon php-net durchforstet...aber nichts gefunden oder verkehrt interpretiert

MfG
Traffic
 
Vergiss obigen Code mal schnell ;)

session_(un)register() sind veraltet. Du solltest die Superglobale $_SESSION[] benutzen, dann erledigt sich das Problem automatisch, da $_SESSION['typ'] und $typ 2 verschiedene Variablen sind.
 
theHacker schrieb:
Vergiss obigen Code mal schnell ;)

session_(un)register() sind veraltet. Du solltest die Superglobale $_SESSION[] benutzen, dann erledigt sich das Problem automatisch, da $_SESSION['typ'] und $typ 2 verschiedene Variablen sind.
und wie regristiere ich dann $_session['typ']
?
 
traffic schrieb:
und wie regristiere ich dann $_session['typ']
?
Gar nicht ;)

Nach session_start() kannst du das ganz normal benutzen. Komm mal vom Registieren-Trip runter ;) Wenn du eine Variable brauchst, benutzt du sie einfach.

Was hast du vor ? Vielleicht kann ichs dir da am Beispiel anschaulich erklären.
 
also der benutzer wählt durch 3 Dropdown-menüs
sein Fahrzeug aus. Und dann soll die Fahrzeug ID auf seinem PC via
Session gespeichert werden

aber er soll halt auch sein auto ändern können. das mit dem ändern hab ich nicht hinbekommen
 
traffic schrieb:
Und dann soll die Fahrzeug ID auf seinem PC via
Session gespeichert werden
Die Session wird nicht auf dem Clientrechner gespeichert, sondern auf dem Server 8O

Du brauchst keine Session, sondern 'n Cookie ;)
Das kannst du einfach überschreiben, wenn der User seine Auswahl ändert.
 
theHacker schrieb:
Die Session wird nicht auf dem Clientrechner gespeichert, sondern auf dem Server 8O

Du brauchst keine Session, sondern 'n Cookie ;)
Das kannst du einfach überschreiben, wenn der User seine Auswahl ändert.
danke
aber wie ändere ich das?
 
traffic schrieb:
danke
aber wie ändere ich das?
https://de3.php.net/setcookie
Auslesen kannst du es über $_COOKIE[].

Ungetester Beispielcode:
PHP:
if(isset($_POST['newcar']))
{
  setcookie('car',$_POST['newcar']);
  header("location: https://www.example.com/".$_SERVER['PHP_SELF']);
  exit;
}

if(isset($_COOKIE['car']))
  echo "Current car: ".$_COOKIE['car'];
else
  echo "No car selected.";
 
vielen dank!

bei mir endet die location aber mit ?main=kategorie

bekomm das leider nicht richtig umgesetzt

PHP:
setcookie('car',$_POST['typ']);
  header("location: www.german-traffic.de/".$_SERVER['PHP_SELF']?main=kategorie);
  exit;
 
traffic schrieb:
bei mir endet die location aber mit ?main=kategorie

bekomm das leider nicht richtig umgesetzt
a) Protokoll im location-Header vergessen
b) Setz ruhig den Scriptnamen ein, $PHP_SELF sollte nur das Beispiel verdeutlichen
c) Strings werden mit einem Punkt (.) konkateniert und durch Abführungszeichen (") abgetrennt. Guck dir mal an, was du dastehen hast ;)
 
Hallo,

ich mache es nun so:

PHP:
if($typ != $_SESSION['typ'] AND $_SESSION['typ']!=""){
session_start();
session_destroy();
header("location: https://www.xxx.de/test/index.php?main=kategorie&typ=$typ");
}else{
session_start();
echo"$typ != ".$_SESSION['typ'];
}
$_SESSION['typ'] = $typ;
echo "Auto: ".$_SESSION['typ'];
}

jedoch sind bei mir $typ und $_SESSION[typ] immer gleich :(
was mache ich falsch? Bin ein totaler noop in sachen session...(sorry)
 
Zuletzt bearbeitet:
traffic schrieb:
jedoch sind bei mir $typ und $_SESSION[typ] immer gleich :(
was mache ich falsch? Bin ein totaler noop in sachen session...(sorry)
Du wirst noch register_globals=on haben.
Änder mal die Serverkonfiguration.

Info über die Gefahr von register_globals=on findest du hier:
https://php.net/register_globals

Zur Info:
Seit PHP 4.2.0 steht register_globals standardmäßig auf off.
Quelle: https://de.php.net/manual/de/features.file-upload.php
 
ja, aber wenn ich das auf off stelle,
dann geht zum Beispiel: ?typ=hallo nicht mehr...
dann gibt er keinen $typ meher aus. Und alle Formulare funktionieren nicht mehr
 
dann muss man halt $_GET['typ'] abrufen und es geht wieder.

1. sicherer
2. sicherer
3. besser zu kontrollieren->sicherer :mrgreen:

:ugly:
 
LasMiranda schrieb:
dann muss man halt $_GET['typ'] abrufen und es geht wieder.

1. sicherer
2. sicherer
3. besser zu kontrollieren->sicherer :mrgreen:

:ugly:
ja, aber dann muß ich ca. 500000 programmzeilen wieder durchgehen....
gibts da nicht ne andere lösung für mich?
 
traffic schrieb:
ja, aber wenn ich das auf off stelle,
dann geht zum Beispiel: ?typ=hallo nicht mehr...
dann gibt er keinen $typ meher aus. Und alle Formulare funktionieren nicht mehr
Richtig. Das is ja der Sinn, warum man es auf "off" stellt.

Oder willst du, dass mal wie im Beispielcode von php.net das Script einfach mit index.php?username=admin aufruft und Vollzugriff hat, obwohl man nicht mal ein Passwort eingegeben hat ? ;)

edit:
traffic schrieb:
ja, aber dann muß ich ca. 500000 programmzeilen wieder durchgehen....
gibts da nicht ne andere lösung für mich?
Ja, wenns n Losescript is, sehen wir uns in Abuse-privat wieder, wenn du deine gehackten Lose wieder haben willst :doh:
 
theHacker schrieb:
Richtig. Das is ja der Sinn, warum man es auf "off" stellt.

Oder willst du, dass mal wie im Beispielcode von php.net das Script einfach mit index.php?username=admin aufruft und Vollzugriff hat, obwohl man nicht mal ein Passwort eingegeben hat ? ;)

edit:
Ja, wenns n Losescript is, sehen wir uns in Abuse-privat wieder, wenn du deine gehackten Lose wieder haben willst :doh:
ist schon klar ;)

werde es alles mal umstellen müßen. habe jedoch nichts wo man
passwörter oder sowas braucht....gibt also keine accounts oder sowas...
 
naja...
mach doch einfach gaaaanz nach oben auf deiner seite, bzw im quellcode:
PHP:
$typ = $_GET["typ"];
ist zwar nicht das schönste / sicherste, aber du hast dir arbeit erspart ^^


PS: bitte nicht hau'n
 
Es würde schon ein
PHP:
extract($_REQUEST);
reichen.

Ich würde aber trotzdem nochmal alles überarbeiten.