session در php

man dar sessionha dar php moshkel daram khaheshan kole mozoe session ra be man begooeed man be komake shoma niyaz daram yani tarife sesion va neveshtan dar safheye morede nazar va farakhani dar safehate digar hameye in mataleb ra mikham.
ba tashakkor
bye
 

taher007

Member
سلام...
خیلی مختصر... session چیزیست شبیه کوکی! با این تفاوت که روی سرور قرار داره که موجب میشه امنیت نسبتا بالایی داشته باشه...

اگر در یک کد شما میخواهید که از session استفاده کنید در ابتدای کد قبل از هر خروجی باید این دستور را بنویسید

کد:
session_start();

با استفاده از این دستور یک session جدید (مثلا به نام SESS ) میسازید :
کد:
session_register("SESS");

و یک مقدار در اون میریزید...
کد:
$_SESSION["SESS"]= 2000

در هر جای صفحه یا صفحه بعد اگر
کد:
$_SESSION["SESS"];

را صدا بزنید مقدار آن را (مثلا 2000 ) در اختیار خواهید داشت...

البته خیلی خیلی خلاصه گفتم...

موفق باشید...
 

taher007

Member
این کد کوچک رو هم تست کنید :
کد:
<?php
session_start();
session_register("counter");
if (! isset($_SESSION["counter"])) {
 $_SESSION["counter"] = 0;
} else {
 $_SESSION["counter"]++;
}
echo "<li>The counter is now at:". $_SESSION["counter"];
?>
 

iranexplorer.net

Active Member
لطفا یک مثال عملی هم ارائه بدین.

فرض کنید برای index.php که بصورت زیر است میخواهیم session ایجاد کنیم:


کد:
<?php
switch($id) {
default:
include('main.htm');
break; case "Home":
include('main.htm');
}
?>

iindex.php برای بارگذاری www.domain.com استفاده شده. وقتی لینکی قرار بدیم برای رجوع به صفحه اصلی سایت ، مسلمه که بفرم www.domain.com/index.php?id=Home در میاد. خوب؟

حالا به این مقوله میخواهیم session هم اضافه کنیم؟
 

taher007

Member
صحبت شما صحیح...
شما دقیقا برای چه مورد به Session نیاز دارید ؟
(برای حفظ مقدار id یا شاخه بندی بر اساس id ؟ )
لطفا کمی توضیح بدید...
 
من مي خواهم يك نامي را كه در يك صفحه وارد كردم را در 2 يا 3 يا.. صفحه ديگر فراخوانيش كنم.
خواهشا كمكم كنيد
 

iranexplorer.net

Active Member
طاهر خان،

مقدار id ثابت باشه اما هربار که کاربر index.php?id=Home رو کلیک کنه یک session متفاوت بگیره.

این session ها برای تمامی لینک ها برقرار باشه یعنی

index.php?id=About ، index.php?id=Contact و الی آخر.... برای تمام اینها ، با رجوع کاربر به این آدرسها، session باشه و تغییر کنه. حالا فرقی نمیکنه که یکی باشه برای همه ، یا برای هر کدوم از اینها تعریف بشه جداگانه.

توضیح کامل بود؟
 

taher007

Member
فکر کنم متوجه شدم 8)
این قسمت اولیه کد شما :

کد:
<?php
session_start();
session_register("level");

$id = (isset($_REQUEST["id"])) ? $_REQUEST["id"] : 'other';

قسمت اصلی :
کد:
switch($id){

case "admin":
$_SESSION["level"]='admin';
break;

case "user":
$_SESSION["level"]='user';
break;

default:
$_SESSION["level"]='visitor';
}


و برای تست کد :
کد:
echo 'Your Session for <b>'.$_SESSION["level"].'</b> is now set!';

?>

به فرض اگر شما id رو به صورت

کد:
filename.php?id=user

مشخص کنید در session شما مقدار 'user' قرار میگیره... اگر admin....

امیدوارم درست متوجه سوالتون شده باشم :wink:
 

taher007

Member
parisa_sara گفت:
من مي خواهم يك نامي را كه در يك صفحه وارد كردم را در 2 يا 3 يا.. صفحه ديگر فراخوانيش كنم.
خواهشا كمكم كنيد

شما هر چیزی در session بریزید میتونید در صفحه های بعدی فراخوانی کنید... :idea:
 
salam:
bebakhshida dar barname ke shoma ferestadid aslan funchtion session_start()ra nemishnase
va ya session_register
???????///
 

taher007

Member
راستش نمیدونم مشکل از چیه...
برای من مشکلی نداره...
شما اگر عبارت کامل ارور رو بگذارید شاید با سرچ مشکل پیدا بشه...
 
Warning: session_start(): open(/tmp\sess_351653be18a0481666f7fa1785728f53, O_RDWR) failed: No such file or directory (2) in C:\Inetpub\wwwroot\test\test.php on line 3

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Inetpub\wwwroot\test\test.php:2) in C:\Inetpub\wwwroot\test\test.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Inetpub\wwwroot\test\test.php:2) in C:\Inetpub\wwwroot\test\test.php on line 3
ok
Warning: Unknown(): open(/tmp\sess_351653be18a0481666f7fa1785728f53, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0


inham errorha
 

taher007

Member
مشکل از اون تابع نیست...
شما فولدری به نام tmp در فولدر php بسازید....(جایی که session ها سیو میشوند)

در ضمن به نظر میاد قبل از تابع session_start کدی وجود داره... با چه ادیتوری کار میکنید... این تابع را در اولین خط پس از ?> بنویسید...


موفق باشید...
 
man ba phpedit kar mikonam.etefaqan man hamin karo kardam bad az <? barnamamo neveshtam
dar zemn age javab begiram
vaqean donya donya azaton mamnon misham
 
salam aqa taher bebakhshid mozahemeton misham
bebini be tartib mesale man ast hamontor ke avval goftid dar inja 3 safhe gereftam safehey avval



<?php
session_start();
session_register("SESS");
$_SESSION["SESS"]= 2000;

?>
<a href="1.html">ok</a>



page 2


<html>

<head>
<title></title>
</head>

<body>

<?php
session_start();
$submit="ok";

if (submit==ok)
{
echo($_SESSION["SESS"]);

}
?>

</body>

</html>

page 3

<html>

<head>
<title></title>
</head>

<body>
<form method="post" action="2.php">
<input type="submit" valu="ok" name="ok">
</body>

</html>

dige az in sadetar vali baz javab nemide man php kar kardam va hich dastori be andazeye session mano azziyat nakard
khaheshan komakam konid
mersi az lotfeton
bye
 

taher007

Member
سلام...
در کد دوم و سوم شما قبل از تابه session_start خروجی دارید (html )
که این ارور رو ایجاد میکنه :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Inetpub\wwwroot\test\test.php:2) in C:\Inetpub\wwwroot\test\test.php on line 3


من کد شما رو تصحیح کردم...
4 تا فایل... (فایل index رو اجرا کنید)


موفق باشید...
 
salam man sharmandatonam vaqean mazerat mikham ke azziyateton kardam vali aqa taher baz ham error mide asabe mano khord karde baz hamon erroraye qabli be khoda man khyli barname neveshtam ba php yekja be session niyaze asasi daram khyli aziyatam kard.

in ham errorash baz hamon errore qabli man vasatan hameye safeharo ejra kardam va errorasham vasaton mifrestam.
yani az chiye vase khodam ham soal shode va ajibe!!!!
(
Warning: session_start(): open(/tmp\sess_5602d0458a2dc98e3a18eaf7f0e37fcc, O_RDWR) failed: No such file or directory (2) in c:\inetpub\wwwroot\s1.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\inetpub\wwwroot\s1.php:2) in c:\inetpub\wwwroot\s1.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\inetpub\wwwroot\s1.php:2) in c:\inetpub\wwwroot\s1.php on line 2
This is page 1
The word you entered in last page is : salam
Page2
Warning: Unknown(): open(/tmp\sess_5602d0458a2dc98e3a18eaf7f0e37fcc, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
)


(
Warning: session_start(): open(/tmp\sess_d6806c99c5ebcbd73b216e78d7f8ebfd, O_RDWR) failed: No such file or directory (2) in c:\inetpub\wwwroot\s2.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\inetpub\wwwroot\s2.php:2) in c:\inetpub\wwwroot\s2.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\inetpub\wwwroot\s2.php:2) in c:\inetpub\wwwroot\s2.php on line 2
This is 2nd page
You entered :
Next Page
Warning: Unknown(): open(/tmp\sess_d6806c99c5ebcbd73b216e78d7f8ebfd, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
)

(
Warning: session_start(): open(/tmp\sess_911c01cf5b76b6ffa82dd3c218d8bc4c, O_RDWR) failed: No such file or directory (2) in c:\inetpub\wwwroot\s3.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\inetpub\wwwroot\s3.php:2) in c:\inetpub\wwwroot\s3.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\inetpub\wwwroot\s3.php:2) in c:\inetpub\wwwroot\s3.php on line 2
This is 3rd page
You have transfered 3 pages
Back
Warning: Unknown(): open(/tmp\sess_911c01cf5b76b6ffa82dd3c218d8bc4c, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
)
 

جدیدترین ارسال ها

بالا