ugrás a tartalomhoz

ATW Session

rise01 · 2012. Ápr. 2. (H), 13.12
Üdv mindenkinek. Remélem jó helyre írok. AZ lenne a problémám, hogy az oldalamat felraktam, egy atw-s tárhelyre. Most már minden jó kivéve egy dolgot. Van egy regisztrált tag listám, ahol a mysql adatbázisból kiolvassa a neveket, listázza, majd linkként jelennek meg. Ha rá kattintunk a kilistázott névre, bejön az illető profilja. Ezzel csak a gond, hogy ha már belépett a saját nevével az illető, és megnézi valaki profilját, amint rámegy a felhasználó oldalára, a SESSION tömb átíródik pl admin névről "józsi" névre, és utána pedig úgy kezeli az oldal a felhasználót mintha azzal a profillal lépett volna be. Fordítva is működik, tehát ha valaki belép sima userként és megnézi az admin profilját akkor adminként üzemel tovább, de lényegében teljesen mindegy melyik profilt nézi meg ugyan az a hiba. Kiírattam a session tömböt, és amint a felhasználó oldalra megy átíródik. Pedig csak 1 helyen állítom be a session név paraméterét azt pedig a bejelentkezés gomb megnyomása után. Saját wamp szerveremen a gépemen működik tökéletesen, csak az atw.hu tárhelyén nem. Esetleg van valakinek ötlete?

Előre is köszönöm.
 
1

A register globals-t

Hidvégi Gábor · 2012. Ápr. 2. (H), 13.33
A register globals-t ellenőrizted?
2

azt nem tudom hogy kell :\\,

rise01 · 2012. Ápr. 2. (H), 13.42
azt nem tudom hogy kell :\\, és saját gépen miért jó? :SS
5

google, php.net

Hidvégi Gábor · 2012. Ápr. 2. (H), 14.20
3

nevek

csabessz47 · 2012. Ápr. 2. (H), 13.43
Az nem lehet probléma, hogy azonosak a "változó nevek"?
Mármint: $_SESSION['user'] és használsz valahol $usert.

Lehet hülyeség, de nekem ez lenne az első godnolatom, ha ezzel találkoznék.
4

Egyetlen egy helyen állítom

rise01 · 2012. Ápr. 2. (H), 13.49
Egyetlen egy helyen állítom be magát az értéket, mégpedig a belépés gomb lenyomásakor így->

if (isAktiv($_POST['nev'])) {
$_SESSION['nick'] = $_POST['nev'];
} else {
naplozas("Hiba: Rossz név vagy jelszó: ".$_POST['nev']);
//header("Location: index.php?oldal=inaktiv.php");
$_GET['oldal']="inaktiv.php";
}

utána csak a $_POST['nev']-et meg a session nicket, csak lekérdezésekhez használom, == jellel, máshol nem kap paramétert, viszont amikor az adatlapra megy ott átíródik a sessionben a tömb pedig nem is csinált semmit csak megnézte az adatlapot

De sajátgépen nincs ilyen baja csak a tárhelyen :S
6

Fél megoldást elvileg

rise01 · 2012. Ápr. 2. (H), 14.38
Fél megoldást elvileg találtam, ha jól kapartam össze az infókat, akkor az a baj, hogy a session és a get tömbben az egyik változó összeakadt a megoldás elvileg ez:

ini_set('register_globals' 0);

ez az index.php legelején van

<?php
session_start();
ini_set("register_globals" 0);
include("config.php");

ám a szerver egy szép hibaüzenetet ír

Parse error: syntax error, unexpected T_LNUMBER in /index.php on line 3

Valaki valami megoldás? :((
7

Számold meg az ini_set()

kuka · 2012. Ápr. 2. (H), 14.41
Számold meg az ini_set() paramétereit.
8

megpróbáltam

rise01 · 2012. Ápr. 2. (H), 14.47
megpróbáltam így

ini_set("register_globals",0);

siker 0..
9

Így most már szintaktikailag

kuka · 2012. Ápr. 2. (H), 15.38
Így most már szintaktikailag helyes. Logikailag viszont úgysem lesz az, mert register_globals nem állítható ini_set() hívással.
10

és van rá valami megoldás?

rise01 · 2012. Ápr. 2. (H), 18.44
és van rá valami megoldás? :\\
11

Például .htaccessbe beírod,

kuka · 2012. Ápr. 2. (H), 18.55
Például .htaccessbe beírod, hogy:

php_flag register_globals off
Bár kétlem, hogy működne.

Én inkább azt nézném meg először, hogy hányas PHP verzió fut a szerveren és a register_globals egyáltalán be van-e kapcsolva.
12

Bocsánat a hülye kérdésért,

rise01 · 2012. Ápr. 2. (H), 19.03
Bocsánat a hülye kérdésért, de ezt hol tudom megnézni? még csak tanulom ezeket a dolgokat :\
13

A phpinfo() függvény

kuka · 2012. Ápr. 2. (H), 19.05
A phpinfo() függvény megmondja.
14

kicsit gáz hogy le van tiltva

rise01 · 2012. Ápr. 2. (H), 19.56
kicsit gáz hogy le van tiltva ez a lehetőség az atw ingyenes csomagjában... bár nem biztos hogy csak ebben, mert biztonsági beállításokra hivatkozik :S
15

"megoldás", csak php

Raziel Anarki · 2012. Ápr. 3. (K), 01.31
ha nem tudsz php.ini-/.htaccess-t állítani, használd ezt a kódrészletet (monjuk beincludeolva, de minden file leges-legelején!)
// -- emulate register_globals=OFF if needed

if (ini_get ('register_globals'))
{
    $allowed = array
    (
        '_ENV',
        '_GET',
        '_POST',
        '_COOKIE',
        '_SESSION',
        '_FILES',
        '_SERVER',
        '_REQUEST'
    );

    foreach ($GLOBALS as $key => $value)
    {
        if (!in_array($key, $allowed))
            unset($GLOBALS[$key]);
    }
}
16

de gondolom a

rise01 · 2012. Ápr. 3. (K), 08.38
de gondolom a session_start(); után ugye?
17

Vagy

Hidvégi Gábor · 2012. Ápr. 3. (K), 08.44
Vagy használj más változó-elnevezési szabályokat.
18

megcsináltam, beincludeoltam

rise01 · 2012. Ápr. 3. (K), 09.13
megcsináltam, beincludeoltam minden oldal elejére, erre a sorra hibát ír:

foreach ($GLOBALS as $key => $value)

a hiba pedig:

Warning: Invalid argument supplied for foreach() in /register.php on line 16

És mindegyik fileba kiírja a hibát az oldalon :\
19

megoldottam, köszönöm a

rise01 · 2012. Ápr. 3. (K), 20.23
megoldottam, köszönöm a tippeket/segítségeket :)