PDA

View Full Version : کار نکردن header در php



Mohammad-tashi
سه شنبه 22 دی 1394, 20:20 عصر
سلام
در کد زیر session ست میشه اما به صفحه ایندکس نمیره
مشکل چیه ؟



<?php
ob_start();
include "inc/configqaz.php";
session_start();

$username = $password = $check ="";
if (isset($_POST['username']) && isset($_POST['password']) ){
include "inc/configqaz.php";
include "inc/class/vali.php";
$valid=new valid;


$username = $valid->chkdb($_POST['username']);
$password = $valid->chkdb($_POST['password']);
$check = $valid->chkdb($_POST['check']);

if (!isset($username) || $username == ''){
echo '
<p align="center">
فیلد نام کاربری نباید خالی باشد!
</p>
';
}
elseif (!isset($password) || $password == ''){
echo '
<p align="center">
فیلد رمز عبور نباید خالی باشد!
</p>
';
}



$password = sha1($password);


if ( $check == 'sended'){


$sel_user ="SELECT * FROM setting WHERE user = '$username' AND pass = '$password'";

$run_user = mysqli_query($con, $sel_user);

$check_user = mysqli_num_rows($run_user);

if($check_user==1){


session_start();
$_SESSION['x1'] =$username;
$_SESSION['x2'] =$password;
$_SESSION['karbar'] =$username;

$_SESSION['start']=time();
$_SESSION['end']=$_SESSION['start']+(1120);
header("Location:index.php");

}
else{
// اطلاعات کاربر صحیح نیست
echo '
<p align="center">
اطلاعات وارد شده صحیح نیست </p>
';
}
}






}





?>
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<title>سامانه مدیریت</title>

</head>

<body >

<div id="loginform">



<form action="" method="post">
<h2 class="form-signin-heading">همین حالا وارد شوید</h2>
<input type="hidden" name="check" value="sended" />
<input name="username" type="text" placeholder="نام کاربری" autofocus>
<input name="password"type="password" placeholder="کلمه عبور">
<button type="submit">ورود</button>


</div>

</form>

</div>



</div>


</body>
</html>



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

لطفا راهنمایی نمایید

سپاس

m_r_1989
سه شنبه 22 دی 1394, 21:32 عصر
به نظرم باید space بزنی اینطوری



header('location: index.php');


پکیج تصفیه فاضلاب (http://campkrupp.net)

کلید و پریز
(http://adsa.ir/mosaic.htm)ثبت شرکت (http://saadatandishan.ir)

H:Shojaei
سه شنبه 22 دی 1394, 22:35 عصر
کلا هدرو فعلا بذاریم کنار اول این خط رو چرا دو بار نوشتید:
include "inc/configqaz.php";
sesstion_start() رو هم که دوبار نوشتید!

و این که قبل از این که سشن استارت بزنید نباید هیچ کد دیگه ای داشته باشید خط اول بذاریدش!

Mohammad-tashi
چهارشنبه 23 دی 1394, 00:12 صبح
اصلاح کردم بازم درست نشد

0xEHSAN
چهارشنبه 23 دی 1394, 05:48 صبح
درود دوست عزیز نباید فاصله ای بینشون باشه
header('Location:index.php');یک مورد دیگه یک پیام دیباگ بذارید اونجا ببینید پیام رو چاپ میکنه یا نه؟از این کد پیام به همراه پیام دیباگ بعد header استفاده کنید
error_reporting(E_ALL ^ E_NOTICE);print_r(error_get_last());

ravand
چهارشنبه 23 دی 1394, 07:48 صبح
یا session_start رو اول کدهات بذار یا از این روش استفاده کن:


<?php
ob_start();
session_start();
ob_end_clean();

Mohammad-tashi
پنج شنبه 24 دی 1394, 10:32 صبح
دوستان
من کد نهاییم اینه بازم کار نمیکنه
ارر میده


<?php
ob_start();
session_start();
ob_end_clean();
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');

$username = $password = $check ="";
if (isset($_POST['username']) && isset($_POST['password']) ){
include "inc/configqaz.php";
include "inc/class/vali.php";
$valid=new valid;


$username = $valid->chkdb($_POST['username']);
$password = $valid->chkdb($_POST['password']);
$check = $valid->chkdb($_POST['check']);

if (!isset($username) || $username == ''){
echo '
<p align="center">
فیلد نام کاربری نباید خالی باشد!
</p>
';
}
elseif (!isset($password) || $password == ''){
echo '
<p align="center">
فیلد رمز عبور نباید خالی باشد!
</p>
';
}



$password = sha1($password);


if ( $check == 'sended'){


$sel_user ="SELECT * FROM setting WHERE user = '$username' AND pass = '$password'";

$run_user = mysqli_query($con, $sel_user);

$check_user = mysqli_num_rows($run_user);

if($check_user==1){


$_SESSION['x1'] =$username;
$_SESSION['x2'] =$password;
$_SESSION['karbar'] =$username;

$_SESSION['start']=time();
$_SESSION['end']=$_SESSION['start']+(1120);
header('Location:index.php');


error_reporting(E_ALL ^ E_NOTICE);print_r(error_get_last());
}
else{
// اطلاعات کاربر صحیح نیست
echo '
<p align="center">
اطلاعات وارد شده صحیح نیست </p>
';
}
}






}




?>
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<title>سامانه مدیریت</title>

</head>

<body >

<div id="loginform">



<form action="" method="post">
<h2 class="form-signin-heading">همین حالا وارد شوید</h2>
<input type="hidden" name="check" value="sended" />
<input name="username" type="text" placeholder="نام کاربری" autofocus>
<input name="password"type="password" placeholder="کلمه عبور">
<button type="submit">ورود</button>


</div>

</form>

</div>



</div>


</body>
</html>





Array ( [type] => 2 [message] => Cannot modify header information - ] => 49 )

H:Shojaei
پنج شنبه 24 دی 1394, 18:58 عصر
الان چک کردم شما بعد از خط اول انتهای <?php یه فاصله خالی دارید! که همین باعث بروز خطا میشه!

Mohammad-tashi
شنبه 26 دی 1394, 15:22 عصر
دوستان
من بازم مشکل دارم
بازم کار نمیکنه

اینم کد نهاییم



<?php
ob_start();
$username = $password = $check ="";
if (isset($_POST['username']) && isset($_POST['password']) ){
include "inc/configqaz.php";
include "inc/class/vali.php";
$valid=new valid;


$username = $valid->chkdb($_POST['username']);
$password = $valid->chkdb($_POST['password']);
$check = $valid->chkdb($_POST['check']);

if (!isset($username) || $username == ''){
echo '
<p align="center">
فیلد نام کاربری نباید خالی باشد!
</p>
';
}
elseif (!isset($password) || $password == ''){
echo '
<p align="center">
فیلد رمز عبور نباید خالی باشد!
</p>
';
}



$password = sha1($password);


if ( $check == 'sended'){


$sel_user ="SELECT * FROM setting WHERE user = '$username' AND pass = '$password'";

$run_user = mysqli_query($con, $sel_user);

$check_user = mysqli_num_rows($run_user);

if($check_user==1){
session_start();
$_SESSION['x1'] =$username;
$_SESSION['x2'] =$password;
$_SESSION['karbar'] =$username;
$_SESSION['start']=time();
$_SESSION['end']=$_SESSION['start']+(1120);
header ("Location: index.php");

error_reporting(E_ALL ^ E_NOTICE);print_r(error_get_last());
}
else{
// اطلاعات کاربر صحیح نیست
echo '
<p align="center">
اطلاعات وارد شده صحیح نیست </p>
';
}
}






}




?>
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<title>سامانه مدیریت</title>

</head>

<body >

<div id="loginform">



<form action="" method="post">
<h2 class="form-signin-heading">همین حالا وارد شوید</h2>
<input type="hidden" name="check" value="sended" />
<input name="username" type="text" placeholder="نام کاربری" autofocus>
<input name="password"type="password" placeholder="کلمه عبور">
<button type="submit">ورود</button>


</div>

</form>

</div>



</div>


</body>
</html>

ali.webdesign
یک شنبه 27 دی 1394, 12:16 عصر
هیچ کدوم از این جواب ها ربطی به کار نکردن header ندارن

اگر قبل از تابع header از دستور echo و یا هر دستور چاپ دیگه ای استفاده کنید header دیگه کار نمیکنه

از جاوااسکریپت استفاده کنید به جای header

H:Shojaei
یک شنبه 27 دی 1394, 22:07 عصر
هیچ کدوم از این جواب ها ربطی به کار نکردن header ندارن
خیلی مطمئن گفتید!!