Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Php sessioonid märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Naljatilk
HV kasutaja
Naljatilk

liitunud: 03.03.2006




sõnum 03.02.2009 22:33:13 Php sessioonid vasta tsitaadiga

Koostan oma kodulehe jaoks admin-ala ja foorumilaadse asjanduse autenteerimist ega saa sisselogimisel php sessioonidest jagu. Lihtsalt ei saa neid tööle, kuigi olen juba kümme tundi vähemalt lugenud igasugu sellealaseid abimaterjale ja niisama katsetamisega üritanud neid tööle saada. Kõik tundub olevat nii, nagu peab: info saadetakse enne header faile, aga ikkagi ei registreeri see neid ära.

Ma võiksin loomulikult minna kergema vastupanu teed ja kasutada tasuta CMS-i ja foorumit, aga esmalt leidsin, et kogemus on tähtsam, lisaks meeldib kõik oma käe järgi mugavaks muuta. Nüüd on asi juba isiklik ning ma ei anna alla enne, kui olen sellest jagu saanud.


See on siis loga.php fail, mis käivitatakse pärast login-i:
<?php
include 'koodid.php';
$pswrd = (md5('$_POST[pswrd]'));
$usrnm = ("$_POST[usrnm]");
$kasutajaip = ($_SERVER['REMOTE_ADDR']);
$kood = md5($_POST['user'].microtime(true));

$con = mysql_connect("$nmHost","$nmUser","$txPassword");
    if (!$con) {die('Could not connect: ' . mysql_error());}

    mysql_select_db("raudvara", $con);
    $sql_login = "SELECT * FROM andmed WHERE username='$usrnm'";
    $salvestatud_andmed = mysql_fetch_array(mysql_query($sql_login));
    $salvestatud_pass = $salvestatud_andmed['password'];
    $userid = $salvestatud_andmed['id'];
       
        if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
        else {
            session_start($kood);
            $_COOKIE['raudvara'] = $kood;
            setcookie('raudvara', $kood, time()+60*30, '/');
            $_SESSION[$kood]['userid'] = $userid;
            $_SESSION[$kood]['ip'] = $kasutajaip;
           
            $con2 = mysql_connect("$nmHost","$nmUser","$txPassword");       //logib logini
                if (!$con2) { die('Could not connect: ' . mysql_error()); }
            mysql_select_db("raudvara", $con2);
            $sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
                if (!mysql_query($sql,$con2))   {die('Error: ' . mysql_error());}
            mysql_close($con2);
        }

mysql_close($con)
?>

<html>
<head>
   <meta http-equiv="refresh" content="0;url=logn.php">
   <title>login</title>
</head>
<body>Kontroll</body>
</html>


Koodid.php on fail, mis sisaldab kõigest viite rida. Sellega probleeme senini ei ole olnud, igaks juhuks toon välja, järsku ei meeldi $_session käsule, kui enne teda kutsutakse lisafaile välja:

<?php
$nmHost = 'host';
$nmUser = 'kasutaja';
$txPassword = 'pass';
?>


Ja siis kontroll lehe ülaosas on selline:

<?php
$ip = ($_SERVER['REMOTE_ADDR']);
if (!isset($_SESSION[$_COOKIE['raudvara']]) && $ip==$_SESSION[$_COOKIE['raudvara']]['ip']) {header('Location:login.php');}
?>

<html>
<head><title>login</title></head>
<body>

Kontroll
<?php
include 'sucksess.php';
?>

</body>
</html>



Hetkel on probleemid sessioonide juures, sest cookie sain tööle. Väga kena oleks, kui keegi selgitaks, mida ma senini valesti olen teinud. Lisaks on mingisugune kala sees ka kontrollil (viimane kood), sest kuigi sessiooni ei ole loodud, lubab see vabalt jõuda leheni logn.php.

Igasugused soovitused on teretulnud ja kes vajab paremaks arusaamiseks ise käega katsumist, siis seda saab teha aadressil http://raudvara.bplaced.net/forum (Msn ei lase seda lehte linkida, aga senised kogemused on olnud üpriski head, pealegi on tegu ajutise koduga).
Olen selle login-iga mässanud juba 30+ tundi ja täna öösel nägin ma juba unes, kuidas ma peaks neid koode muutma, et asi tööle hakkaks.. Kahjuks asi ei läinud nii, ainult magada ei saanud. icon_confused.gif

_________________
Vaata pilti
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 03.02.2009 22:54:14 vasta tsitaadiga

tsitaat:
saadetakse enne header faile, aga ikkagi ei registreeri see neid ära.


ei saadeta ju sul on igat jura ennem session_start($kood); ju
see peab olema faili esimene rida.

<?php session_start($kood);


Näiteks selline kood:

session_start();
function login() { 
        $_SESSION['login'] = 1; 
        } 

    function logout() {
        $_SESSION['login'] = 0; 
        session_destroy(); 
        }

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Naljatilk
HV kasutaja
Naljatilk

liitunud: 03.03.2006




sõnum 03.02.2009 23:43:36 vasta tsitaadiga

if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
        else {
            session_start();
            function login() {
                $_SESSION['login'] = 1;
                } 
            $_COOKIE['raudvara'] = $kood;
            setcookie('raudvara', $kood, time()+60*30, '/');
           
            $con2 = mysql_connect("$nmHost","$nmUser","$txPassword");       //logib logini
                if (!$con2) { die('Could not connect: ' . mysql_error()); }
            mysql_select_db("raudvara", $con2);
            $sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
                if (!mysql_query($sql,$con2))   {die('Error: ' . mysql_error());}
            mysql_close($con2);
        }


Muutsin selliseks, aga endiselt ei tunnista sucksess.php failis, et sessioon on loodud. Selline huvitav mõte tekkis, et järsku on probleem serveris. Zone kahjuks ei lase session_start() funktsiooni kasutada..

On kellelgi veel mõtteid/soovitusi?

_________________
Vaata pilti
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 03.02.2009 23:55:25 vasta tsitaadiga

Pane session_start(); esimesele reale, mis siin mõistmatut on?

<?php session_start();
if ($salvestatud_pass != $pswrd) {echo 'Vale parool. Proovi uuesti. <a href="index.html">Tagasi</a>';}
        else {
           
            function login() {
                $_SESSION['login'] = 1;
                } 
            $_COOKIE['raudvara'] = $kood;
            setcookie('raudvara', $kood, time()+60*30, '/');
           
            $con2 = mysql_connect("$nmHost","$nmUser","$txPassword");       //logib logini
                if (!$con2) { die('Could not connect: ' . mysql_error()); }
            mysql_select_db("raudvara", $con2);
            $sql="INSERT INTO SESS_id (kasutaja, ip) VALUES ('$_POST[usrnm]','$ip_adr')";
                if (!mysql_query($sql,$con2))   {die('Error: ' . mysql_error());}
            mysql_close($con2);
        }


Teisel lehel saad lugeda ja muid asju sellega teha nii

<?php session_start();
echo  $_SESSION['login'];
if($_SESSION['login']==1){echo "Olen sisse logitud";}
?>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
e-Thug
HV Guru
e-Thug

liitunud: 26.02.2005




sõnum 03.02.2009 23:57:27 vasta tsitaadiga

mis soovitusi sul veel vaja on, nagu andrusny juba ütles, siis session start peab olema kohe kõige alguses
<?php
session_start();

muu mudru
?>
Kommentaarid: 230 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 205
tagasi üles
vaata kasutaja infot saada privaatsõnum
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 04.02.2009 00:08:52 vasta tsitaadiga

Zone tasuta hostingus ei saa sessioone kasutada.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 04.02.2009 01:50:26 vasta tsitaadiga

Saab ikka kasutada, aint et tuleb ise teha, huvi pärast proovisin järgi ka ja tulemus:

Näidiskood (testitud ja töötab) üleval http://web.zone.ee/inzinztest/sess.phps
Kasutamise näidis http://web.zone.ee/inzinztest/index.phps

Et jooksmas näha siis vaata http://web.zone.ee/inzinztest/
Esmasel kuvamisel peaks väljastama Array()
Ja peale refreshi peaks kuvama Array ( [test] => oled juba lehte vaadanud ) mis näitab et kõik töötab.

Tuleb meeles pidada teha sessions kaust samasse kausta kus sul sess.php fail on ning rangelt soovitan sinna sessions kausta teha ka .htaccess faili mille sisu on:
deny from all

Ja siis enda koodis sessiooni alustamiseks kutsu välja funci session_start_();

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 04.02.2009 14:50:04 vasta tsitaadiga

Oot, ma viskasin kiiruga pilgu peale, ma võin küll eksida, kuid sa lihtsalt kirjutad need värgid, mis sesioni lähevad faili aga seda php sessioni sa ei kasuta ju? Kuid sellisel juhul sa kül võid nimetada seda sessioniks, kuid ta ju ikkagi pole see, mis siis , et täidab ja teeb täpselt sama. Session on ikkagi üks kindel php func.
_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 04.02.2009 16:22:14 vasta tsitaadiga

No kui see oleks zone tasuta hostis kus on session_start kinni keeratud (ja üldse kogu session extension), siis ainus võimalus saada sessioone kasutada on miskit taolist mis ma tegin:
ise tehtud func mis teeb setcookie, avab sessiooni faili, täidab $_SESSION sisu ja paneb locki peale failile ning peale koodi lõppu kirjutab $_SESSION sisu uuesti faili. Lisaks veel jooksutab 1% juhul sessiooni kausta cleanupi ka.

Sry et ei lugenud mis ja kus täpsemalt, see link jäi kahe silma vahele.

Sellisel juhul pakun et probleem on whitespaces, täpsemalt ftp uploadiga/downloadiga juurde tekkivates reavahetustes failide lõpus peale ?> märke, mis segavad session_start käsul cookiesid panna.
Hetkel seal lehel käies ei tekkinud browserisse mitte ühtegi cookiet igatahes.

Sellisel juhul minupoolne soovitus on muuta loga.php ja üleüldse kõiki teisi faile ka nii, et esimesed read oleks:

<?php
session_start();
include 'koodid.php'; //või mingi muu kood

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Naljatilk
HV kasutaja
Naljatilk

liitunud: 03.03.2006




sõnum 05.02.2009 08:20:42 vasta tsitaadiga

Tänud selgituste eest, muutsin kõik nii, aga hetkel veel tööle ei saanud. Räägin täna koolis informaatika õppejõuga, vaatab, kas ta murrab läbi, milles minu puhul probleem seisneb.
_________________
Vaata pilti
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 05.02.2009 10:24:04 vasta tsitaadiga

Kui sul seal hetkel suurt midagi salajast ei ole ning ftp kaudu ainult lehe kaustale ligi saab, siis võid privas mulle infi saata ja ma saaks kohe sealsamas uurida ja testida milles probleem on.

Mis siis saab kui kohe algusesse peale <?php rida paned:
error_reporting(E_ALL);
ini_set('display_errors', 1);

Kas siis väljastab mingit lisainfi errorite kohta või endiselt täielik vaikus ?

EDIT:
Uurisin, loga.php saadab cookie välja ilusti ikkagi, mujal lehtedel ei kuvata kuna mujalt pole session starti.
ESITEKS sa pead session_start(); panema IGASSE faili kus tahad $_SESSION muutujaga midagi teha, kaasa arvatud logn.php faili algusesse.
Kui sa ei tee session_start(); siis $_SESSION massiivi üldse ei tehtagi ja kogu kontroll isset($_SESSION[$kood]['user']) on täiesti mõttetu kuna $_SESSION muutujat ei ole olemas.
Lisaks, kas tohib küsida misasi see $kood = md5($_POST['user'].microtime(true)); seal teeb ? Mis eesmärki ta üritab täita ?
Sa oled sessioonidest väääga valesti aru saanud ikka ma vaatan.
See $_SESSION muutuja/massiiv ongi juba ainult selle kasutaja põhine kes sinu lehte vaatab, sa ei pea seal ise leiutama mingeid keerukaid üleliigseid asju et $_SESSION muutujasse tekitaks alam massiivi mille võtmeks on kasutaja id + praegune aeg suure täpsusega, kuna _SESSION massiiv mida sina näed juba ONGI sellise funktsionaalsusega, et on ainult selle ühe kindla kasutaja põhine. Kui mina tulen lehele on minul üks _SESSION massiiv ja kui sina tuled lehele on sinul teine _SESSION massiiv.

Võta ja loe siit kogu info läbi ja siis proovi uuesti, ehk teisel katsel saad hakkama paremini juba http://ee2.php.net/session

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
karu
HV kasutaja

liitunud: 08.08.2002




sõnum 05.02.2009 10:29:41 vasta tsitaadiga

inzinz kirjutas:
Sellisel juhul pakun et probleem on whitespaces, ... juurde tekkivates reavahetustes failide lõpus peale ?> märke, mis segavad session_start käsul cookiesid panna.

lõpumärgi ?> võib ära jätta, kui php plokk on failis viimane. siis ei teki ka raskesti märgatavaid probleeme sessionitega

nb! kui ftp klient muudab ülekandel faili sisu, siis peab veenduma, et kasutatakse BINARY ülekannet või ftp klient vahetada kiiremas korras mõne normaalsema vastu.
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
Naljatilk
HV kasutaja
Naljatilk

liitunud: 03.03.2006




sõnum 11.02.2009 01:06:31 vasta tsitaadiga

Sain sessioonid tööle, kui on soovi koodile näpud taha saada, saatke PS, ei ole kade.
Praegu jamad md5 hashiga (ja ka sha1 häshiga) - ükskõik, mis parool sisestada on tulemus üks ja see sama, aga arvan, et see on serveri viga. Üldiselt on tegemisi veel küllaga. icon_smile.gif

Suured tänud kõigile, kes abistasid.

_________________
Vaata pilti
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 11.02.2009 01:16:40 vasta tsitaadiga

Ehk siis väidad et kui tekitad uue php faili, mis väljastab sha1($_POST['parool']), siis tulemus on alati sama olenemata sisendist ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Naljatilk
HV kasutaja
Naljatilk

liitunud: 03.03.2006




sõnum 11.02.2009 16:28:36 vasta tsitaadiga

Vabandan oma ülbuse pärast, ei olnud serveri poolne viga, ikka see lammas, kes koodi kirjutab.. icon_lol.gif
Mul häshis see koguaeg kirjet $_POST['pswrd'] mitte selle väärtust.. Ehk siis kirjapilt

$pass = md5('$_POST['pswrd']');   //vale
$pass = md5($_POST['pswrd']);    //õige
$pass = md5("$_POST['pswrd']"); //õige

_________________
Vaata pilti
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 11
tagasi üles
vaata kasutaja infot saada privaatsõnum
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 11.02.2009 20:01:29 vasta tsitaadiga

Naljatilk kirjutas:
Vabandan oma ülbuse pärast, ei olnud serveri poolne viga, ikka see lammas, kes koodi kirjutab.. icon_lol.gif
Mul häshis see koguaeg kirjet $_POST['pswrd'] mitte selle väärtust.. Ehk siis kirjapilt

$pass = md5('$_POST['pswrd']');   //vale
$pass = md5($_POST['pswrd']);    //õige
$pass = md5("$_POST['pswrd']"); //õige

PHP ei tee vahet erinevate ülakomade vahel, ainult paaris peavad olema alati ühesugused. Lisaks tuleb arvestada, et erinevad ülakomad välimist paari ei segaks. Seega:
$pass = md5($_POST['pswrd']);   // töötav #1
$pass = md5($_POST["pswrd"]);   // töötav #2

$pass = md5('$_POST["pswrd"]'); // ei tööta
$pass = md5("$_POST['pswrd']"); // error

$pass = md5('$_POST['pswrd']'); // error
$pass = md5("$_POST["pswrd"]"); // error

Kui kasutada WYSIWYG editori siis peaks värvidest kohe ära nägema, kui midagi valesti.


viimati muutis maxorator 12.02.2009 01:07:12, muudetud 2 korda
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 11.02.2009 20:44:38 vasta tsitaadiga

maxorator, eksid siiski, '' ja "" on erineva tähendusega.
http://ee2.php.net/types.string
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 11.02.2009 22:01:46 vasta tsitaadiga

mikk36 kirjutas:
maxorator, eksid siiski, '' ja "" on erineva tähendusega.
http://ee2.php.net/types.string

Ei ütleks, et erineva tähendusega, pigem on neil väiksed nüansid, mis tavakasutuses väga tunda ei anna. 8)
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 11.02.2009 22:20:02 vasta tsitaadiga

Kõige hullem "nüanss" on just sellel kahekordsel jutumärgil " icon_razz.gif Ning see annab tavakasutuses palju tunda, minu käest on mitmeid kordi küsitud miks miskit stiilis
file_put_contents("failinimi", "mingi$imelik$tekst$imelike$separatoritega");
kirjutab faili mingit jama või miks samas stiilis echomine ei anna õiget tulemust.

Põhjuseks see et kahekordse jutumärgi puhul peab $ kasutamisel ettevaatlik olema kui just meelega ei taha stringi sisse muutuja väärtust panna.
Lisaks on tavaliste tekstide kirjutamine " " märkide vahele kulukam php'le kuna ta otsib sealt seest $ märke ja erisüntaksit kui ' ' märkide vahel olles kuvab nii nagu isegi näed (välja arvatud see et stringi sisse ' märgi saamiseks pead selle escapema \ märgiga).
Kui ei ole vaja keset teksti mingit muutuja väärtust nii toppida siis igal juhul soovitan kasutada ühekordseid jutumärke: lihtsam ja grammi võrra kiiremgi.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002



Online

sõnum 11.02.2009 22:21:46 vasta tsitaadiga

maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse.
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
maxorator
HV kasutaja

liitunud: 30.08.2006




sõnum 12.02.2009 01:14:37 vasta tsitaadiga

Renka kirjutas:
maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse.

Endal ei ole tunda andnud, kuna ei topi muutujaid jutumärkide sisse. Ikka jutumärgi lõpp, punkt, muutuja, punkt, uued jutumärgid. Nii ei pea mõtlema sellisele "quirks mode"-tüüpi probleemidele (analoogia). Kasutan kahekordseid ülakomasid tavaliselt, ühekordseid harva, näiteks siis kui vaja pikk tükk HTMLi sisestada kuhugi (echomise võimalust ei ole), kuna ka HTMLis kasutan kahekorseid ülakomasid.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 19.02.2009 15:22:20 vasta tsitaadiga

maxorator kirjutas:
Renka kirjutas:
maxorator, kuule ära aja jama. Vägagi annab tunda igasuguses kasutuses. Kasvõi selles, et sinu eespoolt toodud näited on valed tänu sellele, et neid erinevalt koheldakse.

Endal ei ole tunda andnud, kuna ei topi muutujaid jutumärkide sisse. Ikka jutumärgi lõpp, punkt, muutuja, punkt, uued jutumärgid. Nii ei pea mõtlema sellisele "quirks mode"-tüüpi probleemidele (analoogia). Kasutan kahekordseid ülakomasid tavaliselt, ühekordseid harva, näiteks siis kui vaja pikk tükk HTMLi sisestada kuhugi (echomise võimalust ei ole), kuna ka HTMLis kasutan kahekorseid ülakomasid.




# Mis mõte on kirjutada
echo "See tekst on kirjutatud ".$mina." poolt ja on hästi pikk";
# Kui saab kirjutada
echo "See tekst on kirjutatud $mina poolt ja on hästi pikk";
# Single-quotesid on mugav kasutada siis, kui double-quotesid stripida ei viitsi.

# Veel on erinevus nendes kahes ka.
echo '\n';
echo "\n";



Ja üldiselt mingisugust enda üllitatud sessionvidinat ma kasutada ei soovita, sest see mõjub turvalisusele väga tõsiselt. Kui server ei luba session_start(), siis tuleb majutuse eest papp välja käia.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 19.02.2009 20:23:11 vasta tsitaadiga

gynterk, enne kui niisama lahmima hakkad huupi, esmalt ikka uuri kuidas php sessioon töötab ja veendud et mu tehtud asi funktsioneerib samamoodi, see ei ole mingi huupi asi algaja koodija poolt icon_razz.gif Ning ei pea mingit pappi välja käima majutuse eest kui tahad natuke testida koodimist.
Php samamoodi kirjutab $_SESSION muutuja sisu serialized stringina kuskile kausta requesti lõpus (defaultina kõigile kättesaadavasse /tmp kausta), failinimeks on sess_{sessiooni_id}, kogu requesti ajal hoitakse fail lockituna, requesti lõpus kustutatakse liiga vanad sessioonid.
Ning php sessioone saad samamoodi suunata kuskile teise kausta.
Ainus vahe on minu variandiga see, et kuna session extension on seal välja lülitatud, siis $_SESSION ei ole superglobal ja selle kasutamiseks peab funktsioonide algusesse kirjutama global $_SESSION;

Seega ehk selgitad kusotsast antud asi on vähem turvaline kui php enda sessioon ? Loe kindlasti ka rida kus ma tungivalt soovitasin sessiooni kausta teha .htaccess mille sisuks on "deny from all" et keegi sessioonifaile näperdada ei saaks. icon_razz.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 20.02.2009 14:53:09 vasta tsitaadiga

Kõik mis ei ole väljaspool docrooti on ebaturvaline.
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 20.02.2009 20:47:46 vasta tsitaadiga

gynterk kirjutas:
Kõik mis ei ole väljaspool docrooti on ebaturvaline.

Järelikult et siis kõik, mis on väljaspool docrooti on väga turvaline? Tead ma ei soovita sul igaks juhuks koduuksest ka välja astuda, sest äkki keegi annab kurikaga vastu pead, ebaturvaline lihtsalt ju. Tegelikult kui järele mõelda, siis ei soovita kodus ka olla, äkki lendab granaat korstnast sisse või maandub B747 läbi akna. Ja kas php sessioonid ei olegi siis kellegi "enda üllitatud", vaid jumalik jõud on need teie ja meie käsutusse andnud, et neid kasutades on turvalisus garanteeritud? icon_rolleyes.gif
Loomulikult, et tuleb endale teadvustada, millal ja mis turvaohud võivad eksisteerida ja sellest vastavad järeldused teha, aga üle ei maksa nüüd ka pingutada.
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Php sessioonid mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.