Hallo zusammen, ich habe php my forum und habe einen php proxy.
ich möchte jetzt das man den proxy nur nutzten kann wenn man sich im forum eingeloggt hat.
wie mach ich das mit der session?!
MfG Handi
Problem mit cookies
-
-
echo $_COOKIE['name'] gibt lediglich den Inhalt eines Cookies aus. Wenn du mal auf php.net/echo nachschaust, wirst du sehen, dass echo nichts mit einer Abfrage zu tun hat. Eine Abfrage des Cookies sähe eher so aus:
So bricht er ab beim laden der Seite wenn das Cookie nicht den richtigen Wert hat.
Du müsstest uns aber mehr Infos geben damit das richtig funktioniert. Wo wird denn z.B. das Cookie gesetzt?
Wie genau willst du das Cookie im Zusammenhang mit dem proxy verwenden? Willst du, wenn man auf die index.php kommt und nicht eingeloggt ist, dass die Seite nicht geladen wird? Wenn ja - dann müsstest du die Abfrage des Cookies in eine Datei legen, die auf jeder Seite des Forums eingebunden wird. Ansonsten wird nur die Startseite blockiert sein. -
nicht eingeloggt ist, dass die Seite nicht geladen wird?
Ja genau das will ich....
hier die Seite:
http://www.realschulweb.de/Forum
http://www.realschulweb.de/Proxy -
-
hmm aber das Forum speichert ja schon cookies bzw eine session kann man nicht die hernehmen die das Forum verwendet
-
Klar kannst du das, da wir aber keine Ahnung von der Programmierung deines Forums haben, können wir dir schlecht sagen welches Cookie.
-
Ok denke ich habs jetzt.
hab in dei index des proxy noch phore's code genommen und halt die richtigen weerte
@crazz wolfe danke für die hilfe aber ich weis nicht wo ich den ersten code einfügen soll...
LG handi -
ok es funtz doch nicht...
habe erfahren, dass die seite mit session arbeite, d.h. das nur einmalig ein cookie kommt...wie mach das jetzt...? -
Nimm den Code von crazywulf. Den ersten Teil baust du beim Login des Benutzers ein. "abc_ _abc" ersetzt du mit einem Schlüssel, der nur dir bekannt ist (was kompliziertes), $user_id mit der Id des Benutzers.
Den zweiten Teil baust du dann auf der index.php des Proxys ein und ersetzst wieder "abc" mit deinem Schlüssel. $user_id ist die session des Users. Um herauszufinden wie sie heisst, kannst du ein print_r($_SESSION) machen. Die mit der user_id nimmst du dann statt $user_id (wird wohl sowas sein $_SESSION['user_id']).
-
Nimm den Code von crazywulf. Den ersten Teil baust du beim Login des Benutzers ein. "abc_ _abc" ersetzt du mit einem Schlüssel, der nur dir bekannt ist (was kompliziertes), $user_id mit der Id des Benutzers.
Den zweiten Teil baust du dann auf der index.php des Proxys ein und ersetzst wieder "abc" mit deinem Schlüssel. $user_id ist die session des Users. Um herauszufinden wie sie heisst, kannst du ein print_r($_SESSION) machen. Die mit der user_id nimmst du dann statt $user_id (wird wohl sowas sein $_SESSION['user_id']).
wo genau bitte..?
bei der login.php steht viel drin -
Ich bin kein Hellseher. Poste die mal hier rein oder versuchs einfach mal.
-
Soll ich denquelltext der login-php mal posten ?!
-
Genau, oder du versuchst es einfach mal selber einzubauen. Probier die Stelle zu finden, wo die user_id session geschrieben wird, und füge den Code, den crazywulf gepostet hat direkt danach ein.
-
PHP
Alles anzeigen<?php define('PMF_INCLUDE', 1); define('ACCESS_PAGE', 'public'); define('PMF_NO_SESSION', true); require('head.php'); # # ### Formular if (empty($_POST['Name']) && empty($_GET['action'])) { eval ('echo "'.$_style->get('login').'";'); # # ### Login } elseif (!empty($_POST['Name']) && empty($_GET['action'])) { // MD5 $Pass = md5(gpc_stripslashes($_POST['Pass'])); $result = $_db->query('SELECT u.`id`, u.name, u.`pass`, u.`last_action`, u.`stay_login`, u.`session`, SUM(g_val.`value`) AS `login` FROM `'.$_cfg['DB_PREFIX'].'user` AS u LEFT JOIN `'.$_cfg['DB_PREFIX'].'group_value` AS g_val ON (u.`group_id` = g_val.`group_id` AND g_val.`board_id` = 0), `'.$_cfg['DB_PREFIX'].'group_var` AS g_var WHERE u.`name` LIKE \''.gpc_addslashes($_POST['Name']).'\' AND g_val.`var_id` = g_var.`id` AND g_var.`name` = \'login\' GROUP BY u.`id`'); $Daten = $_db->fetch_array($result); switch ($_db->num_rows($result)) { ### Benutzer gefunden (name) case 1: # Login !!! if ($Daten['login'] > 0 && $Daten['pass'] == $Pass) { // Cookie if (!empty($Daten['stay_login'])) { cookie('pmfUserId', $Daten['id']); cookie('pmfPass', $Pass); // Session-Cookie } elseif (!empty($Daten['session'])) { cookie('pmfSess', $_sess['id'], 0); cookie('proxy',$_sess[id],0); // Session } else { session_register('USER'); session_register('PASS'); $_SESSION['USER'] = $Daten['id']; $_SESSION['PASS'] = $Pass; } // letztes Login $_db->u_query('UPDATE `'.$_cfg['DB_PREFIX'].'user` SET `last_login` = `last_action` WHERE `id` = '.$Daten['id']); // alte Session löschen $_db->query('DELETE FROM `'.$_cfg['DB_PREFIX'].'session` WHERE `sess` = \''.addslashes($_sess['id']).'\' AND `user_id` = 0'); // Session Speichern $_db->query('REPLACE INTO `'.$_cfg['DB_PREFIX'].'session` (`sess`,`ip`,`user_id`,`last_action`,`site`,`browser`) VALUES (\''.addslashes($_sess['id']).'\',\''.addslashes($_SERVER['REMOTE_ADDR']).'\','.intval($Daten['id']).','.PMF_TIME.',\''.addslashes( str_replace($_sess['url'], '', basename($_SERVER['REQUEST_URI']))).'\',\''.addslashes($_SERVER['HTTP_USER_AGENT']).'\')'); // Benutzer Daten $_user = get_user_info($Daten['id']); // weiterleitung msg('error_login', (!empty($_POST['goto']) ? urldecode($_POST['goto']) : 'index.php?'.$_sess['url'])); break; # Passwort Falsch !!! } elseif ($Daten['login'] > 0 && $Daten['pass'] != $Pass) { msg('error_login_fault', 'back()'); break; # Benutzer gesperrt !!! } elseif (empty($Daten['login'])) { msg('error_login_del', 'back()'); break; } ### Benutzer nicht gefunden default: msg('error_login_fault', 'back()'); break; } # # ### Logout !!! } elseif ($_GET['action'] == 'logout') { # Session löschen $_db->query('DELETE FROM `'.$_cfg['DB_PREFIX'].'session` WHERE `user_id` = '.intval($_user['id'])); session_destroy(); unset($_SESSION); // Cookie löschen cookie('pmfUserId', ''); cookie('pmfPass', ''); cookie('pmfSess', ''); cookie('pmfHidden', ''); cookie('pmfTopics', ''); cookie('pmfacpnav', ''); // weiterleitung ? $goto = !empty($_GET['goto']) ? gpc_stripslashes($_GET['goto']) : 'index.php?'.$_sess['url']; msg('error_logout', $goto); } footer(); ?>
-
-
Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);
@wulf - seit wann werden Passwörter in sessions gespeichert?
-
etz geht die proxy site gar nicht mehr -
Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);
?wie soll ich das denn machen...?
-
Stimmt, wäre einfacher. Um herauszufinden wie die User session heisst, machst du wie gesagt mal ein print_r($_SESSION);
@wulf - seit wann werden Passwörter in sessions gespeichert?
Öh? Siehe login.php... merkwürdige Forensoftware
etz geht die proxy site gar nicht mehr
Joa, dass ist doch schonmal ein Anfang, zweiter Versuch:
-
Sorry, hatte nicht gesehen, dass er den Code gepostet hat.
Vergesst meinen letzten Post. -