مشکل در فرم لاگین

jalaladdin

Active Member
سلام
برای فرم لاگین این کد در دریم ویور نوشتم
PHP:
<?php
                


@session_start();


if(isset($_POST['username']))
{
                
$con=mysql_connect("localhost","root","");

if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);

 $username = addslashes($_POST[username]);
 $password=addslashes($_POST[password]);
$result = mysql_query("SELECT count(*) FROM users WHERE username =  '$username'");
$p = mysql_query("SELECT count(*) FROM users WHERE password =  '$password'");

 if (!$result&!$p) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
$row = mysql_fetch_row($p);



 if($row[0]>0 )
{

   @$_SESSION['username'] = $username;
   @$_SESSION['password'] = $password;
       header("Location: index.php");
       exit;
  printf('<form action="index.php" method="post" class="   dir">
<br/>
<input type="submit" value="خروج"  />'); 
}else
{echo"نام کاربری یا کلمه عبور اشتباه می باشد";

اما با خطای زیر روبرو میشوم
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 88
 

Mr.Steres

Active Member
مشکل شما با ارسال هیدر هست . احتمالا قبل از از اینکه هیدر رو ارسال کنید فاصله ای و کارکتری قبل از پی اچ پی هست و سشن ! اگر مشکلتون در هر صورت حل نشذ از ob_start() و در اخر از ob_clean() استفاده کنید ...
 

jalaladdin

Active Member
برای فرم لاگین این کد را نوشتم اما وقتی روی صفحات دیگر سایت کلیک میکنم نام کاربری را درخود نگه نمیدارد لطفا راهنمای کنید
PHP:
<?php
                


@session_start();


if(isset($_POST['username']))
{ 
                
$con=mysql_connect("localhost","root","");

if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);

 $username = addslashes($_POST[username]);
 $password=addslashes($_POST[password]);
$result = mysql_query("SELECT count(*) FROM users WHERE username = '$username' and  password = '$password'");
//$p = mysql_query("SELECT count(*) FROM users WHERE password = '$password'");

 if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
//$row = mysql_fetch_row($p);



 if($row[0]>0 )
{

@$_SESSION['username'] = $username;
@$_SESSION['password'] = $password;
@header("Location: index.php");

   printf("خوش آمدید%s<br />", $username);
  
  printf('<form action="index.php" method="post" class="   dir">

<br/>
<input type="submit" value="خروج"  />');  @exit;
}else
{echo"نام کاربری یا کلمه عبور اشتباه می باشد";



printf('<form action="1.php" method="post" class="   dir">
       
<input type="text" name="username"  value="نام کاربری"     />
<input type="password"   name="password" value="پسورد"/>
  
<br/>
<input type="submit" value="ورود"  />
<a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
<a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
</form>');      }}else
{



printf('<form action="1.php" method="post" class="   dir">
       

  
a></div>
</form>');      }
?>
 

ziXet

مدیر انجمن PHP/MYSQL
لطفا کدهای php رو در داخل تگ مخصوص قرار دهید!
حتما ویرایش کنید
 

jalaladdin

Active Member
ویرایش کد

PHP:
<?php
                


@session_start();


if(isset($_POST['username']))
{ 
                
$con=mysql_connect("localhost","root","");

if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);

 $username = addslashes($_POST[username]);
 $password=addslashes($_POST[password]);
$result = mysql_query("SELECT count(*) FROM users WHERE username = '$username' and  password = '$password'");
//$p = mysql_query("SELECT count(*) FROM users WHERE password = '$password'");

 if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
//$row = mysql_fetch_row($p);



 if($row[0]>0 )
{

@$_SESSION['username'] = $username;
@$_SESSION['password'] = $password;
@header("Location: index.php");
  @exit;
}else
{echo"نام کاربری یا کلمه عبور اشتباه می باشد";



printf('<form action="1.php" method="post" class="   dir">
       
<input type="text" name="username"  value="نام کاربری"     />
<input type="password"   name="password" value="پسورد"/>
  
<br/>
<input type="submit" value="ورود"  />
<a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
<a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
</form>');      }}else
{



printf('<form action="1.php" method="post" class="   dir">
       
<input type="text" name="username"  value="نام کاربری"     />
<input type="password"   name="password" value="پسورد"/>
  
<br/>
<input type="submit" value="ورود"  />
<a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
<a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
</form>');      }
?>
 

D.A.V.O.O.D

Member
سلام ، توی صفحات دیگر ، حتما فراموش نشه که :
PHP:
@session_start();

مشاهده خواهید کرد که با این کد توی همه صفحات ، نام کاربری ذخیره شده است :

PHP:
echo $_SESSION['username'];

موفق
 

jalaladdin

Active Member
سلام دوست گرامی من همین کد در صفحات دیگر نوشتم اما همان مشکل وجود داره یعنی نام کاربری را در خود نگه نمیدارد
 

k2-4u

Well-Known Member
شما @ قبل از توابع رو بردارید که اگر مشکلی بود مشخص بشه
PHP:
@session_start();

از کد زیر هم برای . اینکه متوجه بشید آیا session کار می کنه یا نه استفاده کنید
PHP:
var_dump($_SESSION);

در ضمن در بالای تمامی فایل های php
که در آنها از session نام برده شده از تابع session_start استفاده کنید


و در آخر چک کنید ببینید اصلا سشن روی سرور شما کار می کنه یا نه
 

jalaladdin

Active Member
سلام دوست گرامی
این کد
PHP:
<?php

@session_start();
var_dump($_SESSION); 

?>
را در دریم ویور نوشتم و با wamp تست کردم در مروگر این پیامarray(0){} را نشان میدهد و اگر@را قبل از session_startبردارم این خطا را نشان میدهد لطفا راهنمای کنید
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 57

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 57
 
آخرین ویرایش:

k2-4u

Well-Known Member
سلام دوست گرامی
این کد
PHP:
<?php

@session_start();
var_dump($_SESSION); 

?>
را در دریم ویور نوشتم و با wamp تست کردم در مروگر این پیامarray(0){} را نشان میدهد و اگر@را قبل از session_startبردارم این خطا را نشان میدهد لطفا راهنمای کنید
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 57

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 57

خیلی خب مشکل مشخص شد.
این ارور
B]Warning[/B]: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\4\1.php:11) in C:\wamp\www\4\1.php on line 57

نشون میده که قبل از تابع session_start شما . متنی رو به سمت مرورگر ارسال م کنید .
ممکن فقط یک عدد فاصله خالی باشه!
اگر دیدین که هیچ کارکتری قبل از . این تابع نیست
پس یعنی فایل php شما درست زخیره نشده
با notepad یک فایل جدید درست کنید
و کد ها رو دوباره copy & Paste کنید


موفق باشید
 

jalaladdin

Active Member
سلام آقای
.من این کد
PHP:
<?php

@session_start();
var_dump($_SESSION); 

?>

را در notepad نوشتم اما وقتی با wampتست میکنم مرورگر این پیام را نشان میدهد
array(0) { }


 

k2-4u

Well-Known Member
خب شما @ رو برداشتین دیگه error نداد ؟
اگر نداد . سیستم در حال حاضر باید درست کار کنه در ضمن مقدار
PHP:
var_dump($_SESSION);
خالی هست چون شما هیچ سشنی تعریف نکردین
در ضمن فایل های دیگه رو هم چک کنید ارور ندن
 
آخرین ویرایش:

jalaladdin

Active Member
وقتی قبل از session_start() ،@ باشد مرورگر خطا نمیدهد
ودرمورد قسمت دوم جوابتان برای session چه چیزی تعریف کنم
 

k2-4u

Well-Known Member
وقتی قبل از session_start() ،@ باشد مرورگر خطا نمیدهد
ودرمورد قسمت دوم جوابتان برای session چه چیزی تعریف کنم

دوست عزیز . خطا به وجود میاد . اما وقتی شما @ میگذارین نمایش داده نمیشود
شما تا وقتی این خطا رو حل نکنید . کار دیگه ای از دست ما بر نمیاد
 

jalaladdin

Active Member
دوست گرامی ممنون از راهنمایتان
وقتی @را بر میدارم مرورگر خطا میدهد شما میگید من چیکار کنم با این کد که برای فرم لاگین نوشتم

PHP:
<?php
                


session_start();


if(isset($_POST['username']))
{ 
                
$con=mysql_connect("localhost","root","");

if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);

 $username = addslashes($_POST[username]);
 $password=addslashes($_POST[password]);
$result = mysql_query("SELECT count(*) FROM users WHERE username = '$username' and  password = '$password'");
//$p = mysql_query("SELECT count(*) FROM users WHERE password = '$password'");

 if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
//$row = mysql_fetch_row($p);



 if($row[0]>0 )
{

$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
@header("Location: index.php");

   printf("خوش آمدید%s<br />", $username);
  
  printf('<form action="index.php" method="post" class="   dir">

<br/>
<input type="submit" value="خروج"  />');  @exit;
}else
{echo"نام کاربری یا کلمه عبور اشتباه می باشد";



printf('<form action="1.php" method="post" class="   dir">
       
<input type="text" name="username"  value="نام کاربری"     />
<input type="password"   name="password" value="پسورد"/>
  
<br/>
<input type="submit" value="ورود"  />
<a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
<a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
</form>');      }      }
?>
 
ای بابا .
k2-4u عزیز گفت که .
فایلتون را با یه برنامه مثل NotPad++ باز کنید کاراکتر های اضافی یا هرچیزی که قبل از Sesssion_start() وجود داره رو حذف کنید .
وقتی @را بر میدارم مرورگر خطا میدهد
هر چی @ توو کدتون هست رو بردارید تا تمام خطا ها رو بتونید ببینید و مشکل کدتون رو حل کنید .
@ از بروز خطا جلوگیری نمی کنه ، فقط از نمایش خطا صرف نظر می کنه .
 

jalaladdin

Active Member
سلام آقای خوشحال این کد را در notepad نوشتم و تما @ها را برداشتم مروگر خطای را نشان نمیدهد
PHP:
<?php
                


session_start();


if(isset($_POST['username']))
{ 
                
$con=mysql_connect("localhost","root","");

if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);

 $username = addslashes($_POST[username]);
 $password=addslashes($_POST[password]);
$result = mysql_query("SELECT count(*) FROM users WHERE username = '$username' and  

password = '$password'");
//$p = mysql_query("SELECT count(*) FROM users WHERE password = '$password'");

 if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
//$row = mysql_fetch_row($p);



 if($row[0]>0 )
{

$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("Location: index.php");

   printf("خوش آمدید%s<br />", $username);
  
  printf('<form action="index.php" method="post" class="   dir">

<br/>
<input type="submit" value="خروج"  />');  exit;
}else
{echo"نام کاربری یا کلمه عبور اشتباه می باشد";



printf('<form action="1.php" method="post" class="   dir">
       
<input type="text" name="username"  value="نام کاربری"     />
<input type="password"   name="password" value="پسورد"/>
  
<br/>
<input type="submit" value="ورود"  />
<a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
<a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
</form>');      }      }
?>
اما وقتی که در دریم ویور مینویسم مرورگراین خطا را نشان میده نمدانم مشکل از کجاست
Untitled DocumentWarning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at
C:\wamp\www\1.php:9) in C:\wamp\www\1.php on line 13
خط 13 در دریم ویور این session_start();میباشد
 
کدتون رو توو یه فایل ذخیره کردم و اجرا کردم و هیچ خطایی نداد .
فایل پیوست رو تست کنید .
 

پیوست ها

  • index.zip
    844 بایت · بازدیدها: 10

jalaladdin

Active Member
سلام آقای خوشحال ممنون از لطفتان اما من این کد را بین تگ body ،قرار دادم باز با این خطای مرورگر مواجه میشوم من تمام کد که دردریم ویور نوشتم برایتان میگذارم
PHP:
<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>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<Link href="JS.js" type="text/javascript">
<body>
<table width="989" height="695" border="1">
  <tr> 
    <td width="1223" height="141" class=" header">web design tutorial</td>
  </tr>
  <tr>
  
    <td height="2"><table width="985" border="1">
      
     <div class="nav-main nav-main-font">            
            <ul>
             
              <li><a href="index.php" class=" selected">صفحه اصلی</a></li>
             <li><a href="html.html">Html</a></li>
             <li><a href="css.html">Css</a></li>
                        
                   
        <li><a href="contact.html">تماس با ما</a></li>
         
          </ul>
        </div>
        <div class="buffer"></div>
        
    </table></td>
  </tr>
  <tr>

    <td align="left" valign="top">
    <div class="sidebarbox-border bg-blue02">
<div class="sidebarbox-title-shading bg-blue05  dircss ">ورود کاربر</div>

     <?php
session_start();

if(isset($_POST['username']))
{
    $con = mysql_connect("localhost","root","");
    if(!$con)
    {
        die('could not connect');
    }

    mysql_select_db("register",$con);

    $username = addslashes($_POST['username']);
    $password = addslashes($_POST['password']);
    $result   = mysql_query("SELECT COUNT(*) FROM `users` WHERE `username`='$username' AND `password`='$password';");
    //$p = mysql_query("SELECT count(*) FROM users WHERE password = '$password'");

    if(!$result)
    {
        echo 'Could not run query: ' . mysql_error();
        exit;
    }
    $row = mysql_fetch_row($result);
    //$row = mysql_fetch_row($p);
    if($row[0] > 0)
    {
        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;
        header("Location: index.php");
        printf("خوش آمدید%s<br />", $username);
        printf('<form action="index.php" method="post" class="   dir">
        <br/>
        <input type="submit" value="خروج"  />');  exit;
    }
    else
    {
        echo"نام کاربری یا کلمه عبور اشتباه می باشد";
        printf('<form action="1.php" method="post" class="   dir">
        <input type="text" name="username"  value="نام کاربری"     />
        <input type="password"   name="password" value="پسورد"/>
        <br/>
        <input type="submit" value="ورود"  />
        <a href="register.html" ><div class="dir">ثبت نام کاربر جدید </a></div>
        <a href="back password.html" ><div class="dir">کلمه عبور را فراموش کرده ام </a></div>
        </form>');
    }
}
?>

                  
          </div>
          </div>
     <div class="container-content-sidebar">        
<div class="content-pagetitle dircss   ">  </div>
       <div class="contentbox-container">
   <div class="container-content-sidebar-front">                                             <p>
</p>
    
</td>
  </tr>
</table>



</body>
</html>
باز در مرورگر با این خطا مواجه میشوم
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\4\1.php:14) in C:\wamp\www\4\1.php on line 53

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\4\1.php:14) in C:\wamp\www\4\1.php on line 81
 

jalaladdin

Active Member
من میخواهم وقتی کاربر وارد سایت شد نام کاربری آن نشان دهد مثل این سایت
http://www.farsilearning.com/index.php
یعنی روی هر صفح کلیک کنید وبعد به صفحه اصلی باز گردید فقط نام کاربری و خروج نشان دهد
چگونه باید کد بنویسم؟
 

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

بالا