PDA

View Full Version : سوال: مشکل مهم با _SESSION



wordnet
جمعه 20 تیر 1393, 16:05 عصر
با سلام
من یک فرم با کد زیر نوشته ام


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="2.php">
نام:<input type="text" name="name" />
<input type="submit" value="ثبت" name="sub" />
</form>
<?
if (isset($_POST['name']) && isset($_POST['sub'])){
$name=$_POST['name'];
$_SESSION['name']=$name;
}
?>
</body>
</html>




میخواهم بعد از اینکه فرم پر شد مقدار را در SESSION بریزد و سپس در صفحه 2.php مقدار موجود در SESSION را نشان دهد
راستی لازم به ذکر است که مقدار در دیتابیس نباید ذخیره شود و پس از تایید کاربر در صفحه 2 این مقدار در دیتا بیس ریخته شود
مشکل این است که مقدار SESSION نشان داده نمیشود دستوری که برای نمایش قرار دادم در پایین است ممنون میشوم راهنمایی کنید


<?
echo $_SESSION['name'];
?>

H:Shojaei
جمعه 20 تیر 1393, 16:13 عصر
سلام
ابتدای صفحه باید سشن رو استارت کنید با این تابع session_start();
هم جایی که سشن رو مقدار میدین هم جایی که میخواید سشن رو بخونید این تابع رو اول صفحه قبل از تمام کدها بگذارید...

wordnet
جمعه 20 تیر 1393, 18:04 عصر
سلام
ابتدای صفحه باید سشن رو استارت کنید با این تابع session_start();
هم جایی که سشن رو مقدار میدین هم جایی که میخواید سشن رو بخونید این تابع رو اول صفحه قبل از تمام کدها بگذارید...

ممنون قرار دادم ولی باز صفحه 2 خالی نمایش داده میشود

H:Shojaei
جمعه 20 تیر 1393, 18:23 عصر
تو هردو صفحه این کد رو اول صفحه بذارید:


<؟php
session_start();
?>

wordnet
شنبه 21 تیر 1393, 11:10 صبح
قرار دادم اول هر دو صقحه ولی متاسفانه حل نشده

us1234
شنبه 21 تیر 1393, 11:48 صبح
اکشن فرم 1 شما روی فرم 2 ست شده یعنی وقتی دکمه ثبت کلیک میشه تمام اطلاعات پست میشه به فرم 2 پس نباید انتظار داشته باشید اون کد های پی اچ پی زیر فرم اجرا شود .

sooren_66
شنبه 21 تیر 1393, 12:11 عصر
us1234 درست فرمودند.


<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head>
<?if (isset($_POST['name']) && isset($_POST['sub'])){$name=$_POST['name'];$_SESSION['name']=$name; }?>

<body><form method="post" action="2.php">نام:<input type="text" name="name" /><input type="submit" value="ثبت" name="sub" /></form>
</body>
</html>

صفحه ی دو


session_start();
echo $_SESSION['name'];

wordnet
شنبه 21 تیر 1393, 15:50 عصر
us1234 درست فرمودند.


<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title></head>
<?if (isset($_POST['name']) && isset($_POST['sub'])){$name=$_POST['name'];$_SESSION['name']=$name; }?>

<body><form method="post" action="2.php">نام:<input type="text" name="name" /><input type="submit" value="ثبت" name="sub" /></form>
</body>
</html>

صفحه ی دو


session_start();
echo $_SESSION['name'];


عینا کد شما را جایگزین کردماما متاسفانه نتیجه ای حاصل نشد

H:Shojaei
شنبه 21 تیر 1393, 15:59 عصر
این کد رو تو یه صفحه بذارید که ببینید سشن درست کار میکنه:


<?php session_start(); ?>
<!DOCTYPE html><html>
<head>

<title>title</title>

<meta charset="UTF-8">

</head>

<body>

<form action="#" method="post">

<input name="name" type="text" />

<input name="submit" type="submit" />

</form>


<?php

if(isset($_POST['submit']))

{

$_SESSION['name']=$_POST['name'];

echo $_SESSION['name'];

}


?>

</body> </html>

wordnet
یک شنبه 22 تیر 1393, 11:44 صبح
این کد رو تو یه صفحه بذارید که ببینید سشن درست کار میکنه:


<?php session_start(); ?>
<!DOCTYPE html><html>
<head>

<title>title</title>

<meta charset="UTF-8">

</head>

<body>

<form action="#" method="post">

<input name="name" type="text" />

<input name="submit" type="submit" />

</form>


<?php

if(isset($_POST['submit']))

{

$_SESSION['name']=$_POST['name'];

echo $_SESSION['name'];

}


?>

</body> </html>

بله کار میکند بنظرتون مشکل از چیست؟

H:Shojaei
یک شنبه 22 تیر 1393, 13:58 عصر
تو کد اولتون من اول هواسم نبود همینطور که یکی از دوستان گفتن شما فرم رو گذاشتی و همونجا هم به سشن مقدار دهی کردی در صورتی که فرم داره به یه پیج دیگه ارسال میشه (یعنی به بیان ساده به محض اینکه ارسال رو بزنید صفحه ترک میشه و اون خط کدها واسه مقدار دهی به سشن اجرا نمیشن) شما یا باید مقدار دهی سشن رو هم تو صفحه دوم بذارید یا این که فرم رو مثل این مثال آخر من کنار مقدار دهی سشن بذارید و فرم به همون صفحه ارسال بشه و همونجا هم سشن رو مقدار دهی و نمایشش بدین...
به این شکل:
index.html:


<!DOCTYPE html><html> <head> <title>title</title> <meta charset="UTF-8"> </head> <body> <form action="page2.php" method="post"> <input name="name" type="text" /> <input name="submit" type="submit" /> </form></body></html>
page2.pgp:


<?php if(isset($_POST['submit'])) { $_SESSION['name']=$_POST['name']; echo $_SESSION['name']; } ?>