زمان کنونی: ۰۸ آذر ۱۴۰۳, ۱۱:۵۹ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

کمک اورژانسی : راهنمایی در مورد login شدن

ارسال:
۰۱ شهریور ۱۳۹۳, ۰۴:۳۴ ق.ظ
کمک اورژانسی : راهنمایی در مورد login شدن
موضوع اینکه من یک سایت با زبان php طراحی کردم و مشکلی که داره اینکه اگه تعداد کاربران بیشتر از یک نفر باشه رو شناسایی نمیکنه و فقط اولین نفری که وارد میشه رو شناسای میکنه . نمیدونم مشکل از session هاست یا کد ها مشکل دارن.
برای مثال اگه دو تا مدیر سایت تعریف کنم فقط قادر به شناختن یکی از اون هاست و جالب تر اینکه دستور header location رو خطا میگیره یا اینکه شناسایی میکنه اما با اطلاعات مدیر قبلی وارد سایت میشه .

کد php:
<?php
    session_start
();
    
$noe=$_POST['noe'];
    
$username=$_POST['username'];
    
$password=$_POST['password'];
    if(
$username=="" || $password=="")
    {
        
$msg="لطفا نام کاربری و کلمه عبور را وارد کنید";
    }
    else
    {
        if(
$noe=="manage")
        {
            
mysql_connect("localhost","root","");
            
mysql_select_db("medical");
            
$query="SELECT * FROM manager";
            
$result=mysql_query($query);
            
$num=mysql_num_rows($result);
            for(
$i=0;$i<$num;$i++)
            {
                
$row=mysql_fetch_row($result);
                if(
$username!=$row[1] && $password!=$row[2])
                {
                    echo 
"نام کاربری و یا کلمه عبور صحیح نیست...........";
                }
                else
                {
                    
$_SESSION['fullname']=$row[1];
                    
$_SESSION['pass']=$row[2];
                    
header("location:admin/index.php");
                }
            }
        }
            if(
$noe=="doctor")
            {
            
mysql_connect("localhost","root","");
            
mysql_select_db("medical");
            
$query="SELECT * FROM doctor";
            
$result=mysql_query($query);
            
$num=mysql_num_rows($result);
            for(
$i=0;$i<$num;$i++)
            {
                
$row=mysql_fetch_row($result);
                if(
$username!=$row[1] && $password!=$row[2])
                {
                    echo 
"نام کاربری و یا کلمه عبور صحیح نیست";
                }
                else
                {
                    
$_SESSION['fullname']=$row[1];
                    
$_SESSION['takhasos']=$row[4];
                    
$_SESSION['pass']=$row[2];
                    
header("location:doctor/index.php");
                }
            }
            }
            if(
$noe=="sick")
            {
            
mysql_connect("localhost","root","");
            
mysql_select_db("medical");
            
$query="SELECT * FROM sick";
            
$result=mysql_query($query);
            
$num=mysql_num_rows($result);
            for(
$i=0;$i<$num;$i++)
            {
                
$row=mysql_fetch_row($result);
                if(
$username!=$row[1] || $password!=$row[2])
                {
                    echo 
"نام کاربری و یا کلمه عبور صحیح نیست";
                }
                else
                {
                    
$_SESSION['sickid']=$row[0];
                    
header("location:user/index.php");
                }
            }
            }
    
    }
?>
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال:
۰۱ شهریور ۱۳۹۳, ۱۲:۴۷ ب.ظ
کمک اورژانسی : راهنمایی در مورد login شدن
این کد مشکلات زیادی داره، بهتره برای اینکه در PHP بهتر پیشرفت کنید و کد با کیفیت تری داشته باشید حتما از فریم ورک ها استفاده کنید، در مورد مشکلی که دارید من دقیق منظورتون رو متوجه نشدم ولی وقتی شما SESSION رو مقدار دهی میکنید یک کوکی ساخته میشه که برای صفحه مرورگر فعلی کاربر معتبره و فقط یک کاربر میتونه وارد بشه و تنها با خروج یکی دیگری میتونه وارد بشه.
در مورد SQL هم بهتره با قرار دادن WHERE نتایج رو در کوئری محدود کنید و همه سطرها رو نخونید.
در مورد خطا هم ممکنه چون تو صفحه فارسی نوشتید و از UTF-8 استفاده میکنید در ابتدای فایل کاراکتر BOM باشه که دیده نمیشه، فایل رو در Notepad++ باز کنید و از منوی Encoding گزینه UTF-8 without BOM رو انتخاب کنید و فایل رو سیو کنید.
موفق باشید.
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال:
۰۱ شهریور ۱۳۹۳, ۰۷:۱۶ ب.ظ
RE: کمک اورژانسی : راهنمایی در مورد login شدن
(۰۱ شهریور ۱۳۹۳ ۱۲:۴۷ ب.ظ)reza19 نوشته شده توسط:  این کد مشکلات زیادی داره، بهتره برای اینکه در PHP بهتر پیشرفت کنید و کد با کیفیت تری داشته باشید حتما از فریم ورک ها استفاده کنید، در مورد مشکلی که دارید من دقیق منظورتون رو متوجه نشدم ولی وقتی شما SESSION رو مقدار دهی میکنید یک کوکی ساخته میشه که برای صفحه مرورگر فعلی کاربر معتبره و فقط یک کاربر میتونه وارد بشه و تنها با خروج یکی دیگری میتونه وارد بشه.
در مورد SQL هم بهتره با قرار دادن WHERE نتایج رو در کوئری محدود کنید و همه سطرها رو نخونید.
در مورد خطا هم ممکنه چون تو صفحه فارسی نوشتید و از UTF-8 استفاده میکنید در ابتدای فایل کاراکتر BOM باشه که دیده نمیشه، فایل رو در Notepad++ باز کنید و از منوی Encoding گزینه UTF-8 without BOM رو انتخاب کنید و فایل رو سیو کنید.
موفق باشید.
من در حدودا چند ماه هست که با این زبان برنامه نویسی آشناشدم و اظلاعات دقیقی در این مورد ندارم . اگه مقدور هست بیشتر راهنمایی کنید در مورد فریم ورک ها که دقیقا باید کدوم قسمت ها رو تغییر بدم.
من در مورد خروج کاربران تعریف کردم که session خالی بشه اما همون مشکل وجود داره.
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ
ارسال:
۰۱ شهریور ۱۳۹۳, ۰۹:۳۹ ب.ظ
RE: کمک اورژانسی : راهنمایی در مورد login شدن
فریم ورک ها در واقع کتابخونه ای از کلاس ها و کامپوننت ها و روش های طراحی هستند که کار شما رو راحت میکنند و کیفیت کار رو بالا میبرند مثلا Symfony یا CakePHP یا ZEND ، در گوگل سرچ کنید.
کد شما مشکل داره و کلا باید شکل دیگه ای نوشته بشه، اگر خیلی فورس ماژوره فعلا حلقه ها رو حذف کنید و کوئری رو به صورت زیر بنویسید:
SELECT * FROM manager WHERE username='$username' and password='$password'
بعد چک کنید که آیا سطری برگشته یا نه.اگه آره SESSION رو مقدار دهی کنید و در غیر اینصورت SESSION رو ریست کنید، بهتره پسورد رو در SESSION ذخیره نکنید.
این کد رو تست کنید .username_column و password_column رو با نام ستون پسورد و یوزرنیم در دیتابیس عوض کنید.
کد php:
<?php
    session_start
();
    
$noe=$_POST['noe'];
    
$username=$_POST['username'];
    
$password=$_POST['password'];
    if(
$username=="" || $password=="")
    {
        echo 
"لطفا نام کاربری و کلمه عبور را وارد کنید";
        die();
    }
    
mysql_connect("localhost","root","");
    
mysql_select_db("medical");
    if(
$noe=="manager")
    {
        
$query="SELECT * FROM manager WHERE username_colum='$username' and password_column='$password'";
        
$result=mysql_query($query);
        
$num=mysql_num_rows($result);
        if(
$num!=1)
        {
            echo 
"نام کاربری و یا کلمه عبور صحیح نیست...........";
        }
        else
        {
            
$row=mysql_fetch_row($result);
            
$_SESSION['fullname']=$row[1];
            
$_SESSION['pass']=$row[2];
            
header("location:admin/index.php");
        }
    }
    
    if(
$noe=="doctor")
    {
        
$query="SELECT * FROM doctor WHERE username_colum='$username' and password_column='$password'";
        
$result=mysql_query($query);
        
$num=mysql_num_rows($result);
        if(
$num!=1)
        {
            echo 
"نام کاربری و یا کلمه عبور صحیح نیست...........";
        }
        else
        {
            
$row=mysql_fetch_row($result);
            
$_SESSION['fullname']=$row[1];
            
$_SESSION['takhasos']=$row[4];
            
$_SESSION['pass']=$row[2];
            
header("location:doctor/index.php");
        }
    }
    
    if(
$noe=="sick")
    {
        
$query="SELECT * FROM sick WHERE username_colum='$username' and password_column='$password'";
        
$result=mysql_query($query);
        
$num=mysql_num_rows($result);
        if(
$num!=1)
        {
            echo 
"نام کاربری و یا کلمه عبور صحیح نیست...........";
        }
        else
        {
            
$row=mysql_fetch_row($result);
            
$_SESSION['sickid']=$row[0];
            
header("location:user/index.php");
        }
    }
?>
۰
۰
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ


موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  راهنمایی در مورد تعریف محیط عملیاتی داروخانه برای آز پایگاه داده ngmsshd ۲ ۸,۰۳۵ ۰۴ اردیبهشت ۱۴۰۲ ۰۵:۲۹ ب.ظ
آخرین ارسال: Eris_mw
  راهنمایی در مورد کنکور ارشد ۱۴۰۰ قاصدک۲۳ ۱۳۷ ۶۸,۴۴۴ ۲۹ آذر ۱۴۰۰ ۱۲:۴۶ ق.ظ
آخرین ارسال: M423sr
Star درخواست کمک و راهنمایی برای شرکت در آزمون ارشد marvelous ۹ ۸,۹۵۸ ۰۶ مهر ۱۴۰۰ ۰۸:۱۸ ب.ظ
آخرین ارسال: فاطمه دیبا
  حل تمرین شدن و مصاحبه دکتری siiib70 ۱ ۳,۵۷۳ ۱۷ بهمن ۱۳۹۹ ۱۱:۳۲ ب.ظ
آخرین ارسال: hmaryam567
  مهمان شدن دانشگاه nasrin81r ۲ ۲,۷۴۷ ۳۱ اردیبهشت ۱۳۹۹ ۰۳:۴۵ ق.ظ
آخرین ارسال: majidnourirad10
Question درخواست کمک و راهنمایی در ns2 r.jafari ۳ ۴,۲۰۱ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۳۷ ب.ظ
آخرین ارسال: mohsentafresh
  راهنمایی در مورد محلی امن برای زندگی نزدیک چهارراه ولیعصر kadoos ۹ ۸,۰۰۰ ۱۴ اسفند ۱۳۹۸ ۱۱:۰۰ ب.ظ
آخرین ارسال: ehsan0000
Sad راهنمایی برای نوشتن پایان نامه کمک!!!!!!! Sarabeh ۱ ۲,۷۳۷ ۱۴ آذر ۱۳۹۸ ۰۲:۳۳ ق.ظ
آخرین ارسال: sirvan.t
  باز شدن یک دیکشنری با کلیک روی یک کلمه moslem73421 ۵ ۴,۷۳۷ ۰۴ مرداد ۱۳۹۸ ۰۷:۰۶ ب.ظ
آخرین ارسال: moslem73421
  درخواست راهنمایی در مورد خوابگاه Amirhosseinam ۱ ۳,۲۶۱ ۲۳ تیر ۱۳۹۸ ۰۱:۵۸ ق.ظ
آخرین ارسال: edward71

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close