PDA

View Full Version : هدایت login



sokoot67
یک شنبه 03 خرداد 1394, 10:02 صبح
سلام

چکار کنم در قطعه کد زیر که بعد از اینکه رمز و پسور تعریف شده اکی بود دکمه ورود به ادرس صفحه ای که میدم هدایت بشه


<?php
session_start();
if (isset($_POST["submit"])) {
if ($_POST["user"] == "7learn" && $_POST["pass"] == "milad") {
$_SESSION["loginOk"] = 'yes';
} else {
$_SESSION["loginFailed"] = 'yes';
}
}
?>
<html>
<head>
<title>7Learn User Authentication</title>
</head>
<body>
<?php
if (isset($_GET["logout"]) && $_GET["logout"] == 'yes') {
unset($_SESSION['loginOk']);
echo 'Successfully Logouted !';
}

if (isset($_SESSION["loginOk"])) {
echo("You are logged in! (<a href='?logout=yes'>Logout</a>)");
} else {
if (isset($_SESSION["loginFailed"])) {
echo 'Incorrect Username Or Password , Try Again :';
unset($_SESSION['loginFailed']);
}
?>
<form method="post" action="login.php">
<input type="text" name="user"/><br/>
<input type="password" name="pass"/><br/>
<input type="submit" name="submit" value="Login"/>
</form>
<?php } ?>

</body>
</html>

H:Shojaei
یک شنبه 03 خرداد 1394, 10:05 صبح
با تابع هدر میتونید این کار رو انجام بدین:
header('location:site.com/page');

sokoot67
یک شنبه 03 خرداد 1394, 10:15 صبح
یعنی کدی که گفتید جایگزین این
echo("You are logged in! (<a href='?logout=yes'>Logout</a>)");

کنم؟؟؟؟؟؟؟؟

H:Shojaei
یک شنبه 03 خرداد 1394, 10:26 صبح
من نمیدونم به چه صفحه ای میخواید بفرستید کاربر رو به هر صفحه ای که میخواید بفرستید اون صفحه یا آدرس یه هرچیزی هست رو جلوی location بنویسید...
مثلا اگر میخواید به ?logout=yes بره بنویسید:
header('location:?logout=yes');
که در این صورت فکر کنم کاربر خارج میشه از سایت...
مثلا میتونید بفرستیدش به صفحه اصلی:
header('location:site.com/index.php');

sokoot67
یک شنبه 03 خرداد 1394, 10:31 صبح
ببخشید سوال میکنم

فرض کنید من می خواهم بعد از اینکه نام کاربری و رمز درست بود به جای اینکه در حال حاضر پیام میده


You are logged in!

با قطعه کد زیر




echo("You are logged in! (<a href='?logout=yes'>Logout</a>)");



به صفحه دیگری در سایتم منتقل بشه

مثلا صفحه test.php

H:Shojaei
یک شنبه 03 خرداد 1394, 10:47 صبح
header('location:site.com/test.php');
یا اگر صفحه test.php کنار همین فایلی که واسه ورود کاربره هست (یعنی هردو در یک دایرکتوری مشابه هستن) به این صورت بنویسید:
header('location:test.php');

sokoot67
یک شنبه 03 خرداد 1394, 10:54 صبح
استاد شجایی با این قضیه مشکل ندارم که چجوری ادرس دهی کنم

میگم همین کد کجای کد اصلی جایگزین کنم

چون جای کد زیر گذاشتم


echo("You are logged in! (<a href='?logout=yes'>Logout</a>)");
فقط اگر رمز اشتباه بود پیام میده
درست بود هیچ اتفاقی نمی افته و داخل همون صفحه میمونه

H:Shojaei
یک شنبه 03 خرداد 1394, 11:11 صبح
آره دیگه باید همونجا بنویسید اگر درست باشه رمز و نام کاربری به صفحه ای که میدین هدایت میشه و هیچی هم نمیگه به محض این که به تابع header برسه ریدایرکت میشه...
حالا این که هیچی نمیاد یا رمز و نام رو اشتباه میزنید یا خطایی برنامه یا تابع header داره که شما نمیبینید...