PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1 2 
Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-04 23:01:47
Sooviksin mõnes teises failis käivitada mitu sessioni. Üks hakkab ilusti tööle, milleks on "nimi", kuid sooviks ka saada tööle "level", aga seda ei tuvasta ära.

sessiooni "nimi" tuvastab logimisel. Kas "level"'i peab ka tuvastama logimisel? Mis tuleb logimisesse juurde kirjutama, et tuvastaks selle ise, mitte ei peaks mõnda lahtrit täitma?
RE: Probleem sessiooni tuvastamisel
Postitaja: geo__ 2015-05-05 10:50:02
Kui session_start(); on lehe alguses tehtud, siis peaks igasugu sessioni muutujad ka kättesaadavad olema, ehk $_SESSION['level']; jne.

Ilma koodita on võimatu öelda mis sul valesti on.
Vaata ka: http://www.php.ee/359
RE: Probleem sessiooni tuvastamisel
Postitaja: ise php 2015-05-05 11:42:32
TSITEERITUD:

sessiooni "nimi" tuvastab logimisel. Kas "level"'i peab ka tuvastama logimisel? Mis tuleb logimisesse juurde kirjutama, et tuvastaks selle ise, mitte ei peaks mõnda lahtrit täitma?


Sul peavad need levelid kusagil salvestatud olema eelnevalt, ta ei saa ju pühast vaimust neid võtta! Paned näiteks andmebaasi, teed logini, seejärel toimub kohe päring sisselogitu ID peale ja sealt loetakse tema level, ning kannad selle sessiooni täpselt samuti nagu nimi. Kui sul juba sellised probleemid on, siis tundub, et sul polegi mingit andmebaasi ja ka logimine on vast ainult nii, et kirjutad nime formi ja salvestad hiljem sessioni, kusagil mujal sul seda nime salvestatud polegi.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-05 13:07:57
<?php
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
?>

NOTICE: UNDEFINED INDEX: LEVEL IN

Logimine jm. toimub läbi andmebaasi, kuna parool ja kasutajanimi on seal olemas ning üks väli on "Level" Selle all tahaks nt "Admin" "Tavakasutaja", et teatud asjadele oleks ligipääs ja teistele poleks.
RE: Probleem sessiooni tuvastamisel
Postitaja: ise php 2015-05-05 21:38:38
Sul puudub $_SESSION['Level'] Ennem selle kontrollimist, pead ta ikka tekitama ka. Kui ei taha iga kord tekitada, siis pead selle kontrolli panema veel omaette kontrolli sisse

if (issett($_SESSION['Level']){
if ($_SESSION['Level'] == 'Admin')
{
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-06 00:59:52
TSITEERITUD:
Sul puudub $_SESSION['Level'] Ennem selle kontrollimist, pead ta ikka tekitama ka. Kui ei taha iga kord tekitada, siis pead selle kontrolli panema veel omaette kontrolli sisse

if (issett($_SESSION['Level']){
if ($_SESSION['Level'] == 'Admin')
{

Proovisin, annab veaks {

<?php
if (issett($_SESSION['Level']){
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
?>
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-06 01:15:15

Proovisin nii, annab veaks - eelmine oli vale!{

<?php
if (isset($_SESSION['Level']){
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
?>
RE: Probleem sessiooni tuvastamisel
Postitaja: geo__ 2015-05-06 10:18:18
TSITEERITUD:

Proovisin nii, annab veaks - eelmine oli vale!{

<?php
if (isset($_SESSION['Level']){
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
?>


Üks sulg on puudu, nii on õige:


<?php
if (isset($_SESSION['Level'])) {
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
}

?>

Ja ära unusta session_start(); lehe alguses.
testi:

<?php
session_start();
//$_SESSION['Level'] = 'surramurra';

if (isset($_SESSION['Level'])) {
if ($_SESSION['Level'] == 'Admin')
{
echo 'KANA';
}
else {
echo 'ikka muna veel vms: '.$_SESSION['Level'];
}
}
print_r($_SESSION); //kõik sessiooni muutujad
?>

RE: Probleem sessiooni tuvastamisel
Postitaja: hmz 2015-05-06 22:46:30
Olgu veel lisatud, et $_SESSION['level'] ja $_SESSION['Level'] on erinevad asjad - jälgi suur- ja väiketähti.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-09 03:35:55
Kood on selline (logimisel) http://pastebin.com/UjTSH23h
Erinevalt proovinud muuta, kuid edutult. Vaja oleks, et session "Level" võtaks automaatselt andmebaasist.. kuna hiljem muidu teistes failides ei suuda ära tuvastada.
RE: Probleem sessiooni tuvastamisel
Postitaja: blaa 2015-05-09 10:11:51
Kus sul session_start() on?
Peab olema iga skripti alguses

Mis kurat see veel on?
for($round = 0; $round < 65536; $round++)
{
$kontrollitud_parool = hash('ghfhf', $kontrollitud_parool . $row['Sool']);
}



Kust see $_SESSION['Level'] sul peaks tulema, kui sa sellele väärtust ei anna? Pane select päringule see veerg juurde.

Ja siis peaks töötama see
echo $_SESSION['Kasutaja']['Level']
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-09 12:12:44
TSITEERITUD:
Kus sul session_start() on?
Peab olema iga skripti alguses

Mis kurat see veel on?
for($round = 0; $round < 65536; $round++)
{
$kontrollitud_parool = hash('ghfhf', $kontrollitud_parool . $row['Sool']);
}



Kust see $_SESSION['Level'] sul peaks tulema, kui sa sellele väärtust ei anna? Pane select päringule see veerg juurde.

Ja siis peaks töötama see
echo $_SESSION['Kasutaja']['Level']


Selle session start on yhendus failis. Muidu see toimib kõik.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-09 13:07:43
Select päringule panin juurde ning tegin nii, nagu soovitasid, aga teistes failides ikka ei suuda tuvastada seda...

RE: Probleem sessiooni tuvastamisel
Postitaja: r 2015-05-09 14:00:10
RE: Probleem sessiooni tuvastamisel
Postitaja: r 2015-05-09 14:15:54
Mis kurat see veel on?
for($round = 0; $round < 65536; $round++)
{
$kontrollitud_parool = hash('ghfhf', $kontrollitud_parool . $row['Sool']);
}

:D
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-09 14:36:02
TSITEERITUD:
Mis kurat see veel on?
for($round = 0; $round < 65536; $round++)
{
$kontrollitud_parool = hash('ghfhf', $kontrollitud_parool . $row['Sool']);
}

:D

Netist uuritud turvalisuse värk.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-09 16:07:55
Kuna siin on paljud suht profid, äkki keegi oskab selle koodi üle vaadata ja "veidrad" osad asendada, mis tekitasid küsimust ja et suudaks sessioon "Level" tuvastada. Olen proovinud erinevalt, kuid ei suuda. Loogiliselt mõeldes peaks, kuna teised asjad, nagu parool ja kasutajanimi on ka nii tehtud.

RE: Probleem sessiooni tuvastamisel
Postitaja: r 2015-05-09 22:26:32
Kas su ühendus fail teab et sa kasutad PDO adapterit?
Ja kas session_start(); alguses või peale ühendust?
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-10 00:09:19
TSITEERITUD:
Kas su ühendus fail teab et sa kasutad PDO adapterit?
Ja kas session_start(); alguses või peale ühendust?
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

Teab, et kasutusel PDO. Seal failis on session_start(); lõpus.
RE: Probleem sessiooni tuvastamisel
Postitaja: ise php 2015-05-10 10:42:53
session_start(); ei tohi olla lõpus, see peab faili esimene rida olema.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-10 13:22:36
Aga keegi oskaks mu koodi üle vaadata, teha veidike paremaks, lisada, et tuvastaks ka sessiooni "Level"? See lihtsalt ei hakka tööle.. Kasutaja ja Parool hakkavad ilusti (võib-olla seetõttu, et ise sisestan ja siis kontrollib, kas andmebaasis on), aga Level'i puhul poleks seda, kuna peab ise tuvastama, mis Level on.

Jään huviga ootama.
RE: Probleem sessiooni tuvastamisel
Postitaja: Arvi V 2015-05-10 16:17:26
Vaadates koodi jäi kohe silma
$_SESSION['Kasutaja'] = $row;
parem pane
$_SESSION['Kasutaja'] = $row['Kasutaja'];
$_SESSION['Level'] = $row['Level'];
Aga praegu sul baasis pole Level tulpa.
RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-10 17:59:55
TSITEERITUD:
Vaadates koodi jäi kohe silma
$_SESSION['Kasutaja'] = $row;
parem pane
$_SESSION['Kasutaja'] = $row['Kasutaja'];
$_SESSION['Level'] = $row['Level'];
Aga praegu sul baasis pole Level tulpa.


Andmebaasis on tulp olemas.
Kas midagi sellist mõtlesid, muutsin koodis ära http://pastebin.com/UXgiXvYF

Nii ikka ei tuvasta
RE: Probleem sessiooni tuvastamisel
Postitaja: ise php 2015-05-10 20:51:31
Tee lihtne test, kas andmebaasist mingi level üldse tuleb

PHP kood:
 
             $_SESSION
['Kasutaja'] = $row['Kasutaja'];
                        
$_SESSION['Level'] = $row['Level'];
             
            
// Kui logimine õnnestub
          // Peata testiks header ja prindi oma level välja
           
echo $row['Level'].' ja '.$row['Kasutaja'];
         

           
// header("Location: test.php");
            
die("Redirecting to: test.php");


kas sul session üldse töötab?

RE: Probleem sessiooni tuvastamisel
Postitaja: Peeter 2015-05-10 22:01:00
TSITEERITUD:
Tee lihtne test, kas andmebaasist mingi level üldse tuleb

PHP kood:
 
             $_SESSION
['Kasutaja'] = $row['Kasutaja'];
                        
$_SESSION['Level'] = $row['Level'];
             
            
// Kui logimine õnnestub
          // Peata testiks header ja prindi oma level välja
           
echo $row['Level'].' ja '.$row['Kasutaja'];
         

           
// header("Location: test.php");
            
die("Redirecting to: test.php");


kas sul session üldse töötab?


Jah töötab. Kuna logimine töötab.

Leheküljed: 1 2 

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0910849571228