PDA

View Full Version : سوال: خطا از $_session در کدهای نوشته شده در html



baranbahari1320
چهارشنبه 07 شهریور 1397, 17:43 عصر
با سلام و خسته نباشید من دارم یه سایت طراحی می کنم در مراحل اولیه هستم میخوام وقتی که کاربر اطلاعات رو وارد میکنه اگه فیلدی خالی باشه یا اشتباه به اون پیام خطا بده ولی فیلدهایی رو که درست وارد کرده همچنان مقدارشون حفظ بشه با session این کار رو انجام دادم ولی نمیدونم چرا وقتی تو یه صفحه ی دیگه از $_seesion استفاده می کنم خطا میده و میگه که اون رو نمی شناسه
کدها رو براتون میزارم ممنون میشم کمکم کنید.
این کدها مربوط به صفحه ی config.php هست که یک کلاس هست با متدهایی که نیاز دارم

<?php
if(isset($_GET['msg']))
{
$msg=$_GET['msg'];
}
class test{

public $db;

function __construct()
{

$this->db=mysqli_connect("localhost","root","","test") or die("can not connect to database");
// mysqli_query($this->db,"SET NAME 'utf-8'");

echo("good");


}

function insertdb($user,$pass,$email,$gender,$city){
$query="INSERT INTO user VALUES (NULL, N'$user', '$pass', '$email', '$gender', '$city')";
if(mysqli_query($this->db,$query)===true)
echo("good");

}

function Redirect($page)
{
header("location:$page");

}



}
?>

این کدها مربوط به فرم عضویت هست که اسمشو login.php گذاشتم



<?php
session_start();
include_once("config.php");
$b=new test();

if(isset($_POST['register'])){

$user=$_POST['username'];
$_SESSION['user']=$user;
$pass=$_POST['pass1'];
$email=$_POST['email'];
$_SESSION['email']=$email;
$gender=$_POST['gender'];
$_SESSION['gender']=$gender;
$city=$_POST['city'];
$result=$b->insertdb($user,$pass,$email,$gender,$city);

if ($user=="")
{
$b->Redirect("login.php?msg=nouser");

}elseif($pass=="")
{
$b->Redirect("login.php?msg=nopass");
} elseif($email=="")
{
$b->Redirect("login.php?msg=noemail");
}elseif(!filter_var($mail,FILTER_VALIDATE_EMAIL))
{
$b->Redirect("login.php?msg=noemailvalid");
}
elseif(!gender==1 && !gender==0)
{
$b->Redirect("login.php?msg=nogender");
}
}


?>


<!doctype html>
<html>
<head>




<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="css/main.css"/>
<script languge="javascript" type="text/javascript" src="js/main.js">

</script>
</head>

<body>

<?php
include("register.php");

?>

</body>
</html>
اینم اطلاعات صفحه ثبت نام که فرم ثبت نام توش قرار داره

<div align="center">
<?php

if(isset($msg))
{
if ($msg=="nouser")
{
print("لطفا نام کاربری را وارد کنید");
}elseif($msg=="nopass")
{
print("لطفا کلمه عبور را وارد کنید");
}elseif($msg=="noemail")
{
print("لطفا ایمیل را وارد کنید");
}elseif($msg=="noemailvalid")

{
print("آدرس ایمیل معتبر نمی باشد!");
}elseif ($msg=="nogender")
{
print("لطفا جنسیت را انتخاب نمایید");
}
}
?>

</div><br/><br/>

<form method="post" align="center" dir="rtl" onSubmit="">

<table align="center">
<tr><td>نام کاربری</td><td><input type="text" name="username" id="username"
value="<?php print($_SESSION['user']); ?>" /></td><td id="star1">*</td></tr>
<tr><td>رمز عبور:</td><td> <input type="password" name="pass1" id="pass1"/><br/></td></tr>
<tr><td>:تکرار رمز عبور</td><td><input type="password" name="pass2" id="pass2"/></td></tr>
<tr><td>ایمیل</td><td><input type="text" id="email" name="email" value="<?php print($_SESSION['email']); ?>"/></td></tr>

<tr><td>جنسیت</td><td>
<label>زن:<input type="radio" id="gender1" name="gender" value="1"
<?php if($_SESSION['gender']==1) print "checked='checked'"; ?>
/>
</label>
<label></label> مرد:<input type=radio id="gender2" name="gender" value="0" <?php if($_SESSION['gender']==0) print "checked='checked'" ?>/></label></td></tr>
<tr><td>شهر</td><td><select id="city" name="city">
<option value="0">لطفا یک شهر را انتخاب کنید</option>
<option value="1">تهران</option>
<option value="2">کرج</option>
</select></td></tr>
<tr><td></td> <td><textarea readonly="readonly"> من تعهد میکنم </textarea></td></tr>
<tr><td><label>من قوانین را قبول دارم<input type="checkbox" id="acp"value="acp"/></label></td></tr>

<tr><td></td><td><input type="submit" id="register" name="register" value="ثبت نام" ></td>

</tr>
</table>
<br/>

<br/>




</form>


از $_session هایی که تو صفحه ی register و داخل کدهای form نوشتم ایراد میگیره

اینم عکسی از خطایی که میده
148769

marasiali
چهارشنبه 07 شهریور 1397, 19:16 عصر
سلام قبل از اولین اجرا که سشن gender تعریف نشده باید چک کنید اگه وجود نداشت یه مقدار پیشفرض داشته باشه.

baranbahari1320
چهارشنبه 07 شهریور 1397, 21:46 عصر
سلام قبل از اولین اجرا که سشن gender تعریف نشده باید چک کنید اگه وجود نداشت یه مقدار پیشفرض داشته باشه.

سلام دوست گرامی بله درست میفرمایید خودم هم به همین نتیجه رسیدم ممنونم از پاسختون.