2014-03-12 3 views
2

Я хочу создать регистрационную форму с администратором и пользователем, но я не могу использовать session_start(), потому что она всегда делает мою переменную неопределенной и не показывает любой результат. есть ли кто-нибудь, кто может мне помочь? заранее спасибо, вот мой код:Как сделать регистрационную форму с администратором и пользователем в php

<html> 
    <body> 

    <?php 
    mysql_connect("localhost" , "admin" , "123") or die(mysql_error()); 
    mysql_select_db("minimart_database") or die(mysql_error()); 
    ?> 

    <form id="home_id" method ="POST" enctype ="multipart/form-data"> 
    <script> 
    function submitForm(action) 
    { 
    document.getElementById('home_id').action=action; 
    document.getElementById('home_id').submit(); 
    } 
    </script> 

    <p align = right> Username: <input type ="text" name ="user" placeholder="Enter username"> 
    <p align = right> Password: <input type ="password" name ="pass" placeholder="Enter password"> 
    <input type="submit" value="login" name="submit" 

    <?php 
    mysql_connect("localhost" , "admin" , "123") or die(mysql_error()); 
    mysql_select_db("minimart_database") or die(mysql_error()); 
    ?> 

    <?php 

    $user=$_POST['user']; 
    $pass=$_POST['pass']; 
    $user=stripslashes('$user'); 
    $pass=stripslashes('$pass'); 
    $user=mysql_real_escape_string('$user'); 
    $pass=mysql_real_escape_string('$pass'); 

    $query="SELECT * FROM account WHERE username='$user' AND password='$pass'"; 
    $result=mysql_query($query); 
    $count=mysql_num_rows($result); 
     $row=mysql_fetch_array($result); 
    if (isset($_POST['submit'])) 

    if ($count==1){ 
    session_start(); 
    $session("user"); 
    $session("pass") ; 


      if ($row['usertype']==0){ 
      header("location:admin_home.php"); 
      echo ("you logged in as admin"); 
    } 
      elseif ($row['usertype']==1) { 
      header("location:cashier_home.php"); 
      echo ("you logged in as cashier"); 
    } 


    else { 
    echo "invalid password and username"; 


    } 
    } 

    ?> 
    </body> 
    </html> 

вот мой обновленный код и полный код всей формы:

<html> 
<body> 

<?php 
mysql_connect("localhost" , "admin" , "123") or die(mysql_error()); 
mysql_select_db("minimart_database") or die(mysql_error()); 
?> 

<form id="home_id" method ="POST" enctype ="multipart/form-data"> 
<script> 
function submitForm(action) 
{ 
document.getElementById('home_id').action=action; 
document.getElementById('home_id').submit(); 
} 
</script> 

<p align = right> Username: <input type ="text" name ="user" placeholder="Enter username"> 
<p align = right> Password: <input type ="password" name ="pass" placeholder="Enter password"> 
<input type="submit" value="login" name="submit" > 


<?php 


if (isset($_POST['submit'])){ 
    $user=$_POST['user']; 
$pass=$_POST['pass']; 
$user=stripslashes('$user'); 
$pass=stripslashes('$pass'); 
$user=mysql_real_escape_string('$user'); 
$pass=mysql_real_escape_string('$pass'); 
$query="SELECT * FROM account WHERE username='$user' AND password='$pass'"; 
$result=mysql_query($query); 
$count=mysql_num_rows($result); 

if ($count==1){ 
session_start(); 
$_SESSION["user"]=$user; 
$_SESSION["pass"]=$pass ; 
$row=mysql_fetch_array($result); 

     if ($row['usertype']==0){ 
     header("location:admin_home.php"); 
     echo ("you logged in as admin"); 
} 
     elseif ($row['usertype']==1) { 
     header("location:cashier_home.php"); 
     echo ("you logged in as cashier"); 
} 


else { 
echo "invalid password and username"; 


} 
} 
} 
?> 


<p align=left><input type="text" name="search" placeholder="enter barcode or item name"><input type="submit" name="searched" onclick="submitForm('finalhome.php')"> 

<?php 
$output=""; 
if (isset($_POST['search'])){ 
$searchq=$_POST['search']; 
$searchq=mysql_real_escape_string($searchq); 
$order="SELECT * FROM stock WHERE barcode LIKE '%$searchq' OR itemname LIKE '%$searchq'"; 
$result=mysql_query($order); 
$count=mysql_num_rows($result); 

if ($count>=1){ 
     while($row=mysql_fetch_array($result)){ 
       $barcode=$row['barcode']; 
       $itemname=$row['itemname']; 
       $description=$row['description']; 
       $amount=$row['amount']; 
       $stocks=$row['stocks']; 
       $location=$row['location']; 
     } 
      $output="<div>'.$barcode.' '.$itemname.' '.$description.' '.$amount.' '.$stocks.' '.$location.' </div>"; 
      } 
      else 
      { 
      $output='no results'; 
      } 
    } 
?> 
<table border=5 align=center > 
<tr><th>Barcode </th><th>Item name </th><th>Description</th><th>Amount</th><th>Stock</th><th>Location</th> 
</tr> 
<tr><td>$_POST['$barcode']</td><td>$_POST['$itemname']</td><td>S_POST['$description']</td><td>$_POST['$amount']</td><td>$_POST['$stock']</td><td>$_POST['$location</td></tr> 

</table> 

<?php print("$output"); ?> 

</body> 
</html> 

проблема теперь, когда вход в систему пользователя она не перейдите в admin_home.php или в файл cashier_home.php. когда я нажимаю кнопку входа в систему, он показывает данные поиска.

Вот код для моего admin_home.php:

<?php 
session_start(); 

if (isset[$_SESSION['user']=$user) || (isset[$_SESSION['pass']=$pass){ 
echo "success login"; } 


?> 
+0

Sidenote: Почему вы подключаете два раза? –

+0

Под «всегда делает мою переменную неопределенной» какой переменной? Можете ли вы видеть, как файлы cookie сеанса установлены в вашем браузере? – dethtron5000

+2

Плюс это приведет к сбою '$ session (« пользователь »); $ session ("pass"); 'который должен быть' $ _SESSION ["user"]; $ _SESSION ["pass"]; 'Скорее всего, почему вы говорите, что ваши сессии терпят неудачу как' undefined'. –

ответ

4

проблема, как представляется, в этих строках:

$session("user"); 
$session("pass") ; 

в session_start() вы увидите, что эти линии не так, он должен быть

$_SESSION["user"]=$user; 
$_SESSION["pass"]=$pass ; 

пожалуйста, проверьте этот код (он Шоул работать, я надеюсь;))

<html> 
<body> 
<form id="home_id" method="POST" action="<?php echo $_SERVER[PHP_SELF]?>"> 
<script> 
function submitForm(action) 
{ 
document.getElementById('home_id').action=action; 
document.getElementById('home_id').submit(); 
} 
</script> 

<p align = right> Username: <input type ="text" name ="user" placeholder="Enter username"> 
<p align = right> Password: <input type ="password" name ="pass" placeholder="Enter password"> 
<input type="submit" value="login" name="submit" > 

</body> 
</html> 

<?php 
if (isset($_POST['submit'])){ 

     mysql_connect("localhost" , "admin" , "123") or die(mysql_error()); 
     mysql_select_db("minimart_database") or die(mysql_error()); 

     $user=$_POST['user']; 
     $pass=$_POST['pass']; 
     $user=stripslashes('$user'); 
     $pass=stripslashes('$pass'); 
     $user=mysql_real_escape_string('$user'); 
     $pass=mysql_real_escape_string('$pass'); 

     $query="SELECT * FROM account WHERE username='$user' AND password='$pass'"; 
     $result=mysql_query($query) or die ("error: ".mysql_error()); 

      if (mysql_num_rows($result)==1){ 

       session_start(); 
       $_SESSION["user"]=$user; 
       $_SESSION["pass"]=$pass ; 

         $row=mysql_fetch_array($result); 
         if ($row['usertype']==0){ 
         header("location:admin_home.php"); 
         } 
         elseif ($row['usertype']==1) { 
         header("location:cashier_home.php"); 
         } 

         } 
       else 
       echo "invalid password and username"; 

}//from isset(submit) 
?> 

debugg ..

if (mysql_num_rows($result)==1){ 
     echo "only 1 record in database"; 
       session_start(); 
       $_SESSION["user"]=$user; 
       $_SESSION["pass"]=$pass ; 

         $row=mysql_fetch_array($result); 
         if ($row['usertype']==0){ 
         echo "admin user"; 
         } 
         elseif ($row['usertype']==1) { 
         echo "normal user"; 
         } 

    } 
     else 
       echo "invalid password and username"; 
+0

Я уже сделал это. проблема теперь не идет в admin_home.php, если пользователь является администратором и переходит в cashier_home.php, если пользователь является обычным пользователем? – vanesa

+0

Вы получаете ошибку или не пошли туда, где должны были делать? – kraysak

+0

Я не получил никаких ошибок, но не идет в форму. я не знаю, какой код я собираюсь добавить в форму admin_home.php и cashier_home.php – vanesa

Смежные вопросы