من به چند صورت کد نوشتم اما جواب ندادش کسی هست که بتونه کمک کنه؟! مشکل کد نویسی من رو بگه اگه امکانش هست!
یا صفحه سفید لود میشه یا ارور ۵۰۰ رو نشون میده ! دوستان لطفآ کمکم کنید!
Try 1 :
<?php
session_start();
include "Connection.php";
if (isset ($_POST['Login']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$query = $conn -> 'SELECT * FROM Login WHERE username='$username' && password='$password'';
$result = mysql_query($conn, $query) or die (mysql_error($conn));
if ($connt == 1') {
$_SESSION['username'] = $username;
}else{
$fmsg = "Login failed.";
}
}
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo "hi there, welcome Mr.Contreras";
}
?>
Try2 :
<?php
include "Connection.php";
if (isset($_POST['login']) && !empty($_POST['username'])
&& !empty($_POST['password'])) {
if ($_POST['username'] == 'Pouria25' && $_POST['password'] == '25.Pouria') {
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] = 'Pouria25';
echo 'Welcome';
}else {
$msg = 'Wrong username or password';
}
}
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM Login WHERE username='$username' AND password='$password'";
$query -> execute (array (':username' => $username, 'assword' => $password));
?>
دوستان لطفآ کمکم کنید!
سلام
توی تست دوم، چون SESSION استفاده کردید اما در اول فایلتون session_start نگذاشتید، اگر وارد اون بخش بشه که ارور خواهد داد.
برا دیدن ارور ها اول فایلتون بعد از session_start کد زیر رو بگذارید:
ini_set("display_errors", "1"); error_reporting(E_ALL);
بعد نتیجه رو اعلام کنید.
راستی برای بهتر نشون دادن کد ها توی صفحه، توی ادیتور از دکمه کد استفاده کنید و اون رو روی c# بگذارید بمونه.
اما یک جور دیگه ای نوشتم ارور نمیده اما کار هم نمیکنه !
<?php ob_start(); session_start(); include "Connection.php"; $msg = ''; if (isset($_POST['Login']) && !empty($_POST['username']) && !empty($_POST['password'])) { if ($_POST['username'] == 'Teddy@PO.uria' && $_POST['password'] == 'Teddy.2017') { $_SESSION['id'] == 1; $_SESSION['username'] = 'Teddy@PO.uria'; echo 'fine'; }else { $msg = 'Wrong username or password'; } } ?>
قبل از if اول آرایه $_POST رو var_dump کنید ببینید اصلا چی داره برای صفحه ارسال میشه.
الان مشکل این که چیزی نشون نمیده صفحه ی دفعه سفید میشه !
من از var_dump(); این استفاده کردم و این NULL NULL رو نشون میده !
تو ی وبسایتی خوندم که به جای این
$uid = mysqli_real_escape_string($conn, $_POST['uid']); $pwd = mysqli_real_escape_string($conn, $_POST['pwd']);
باید از "prepare" استفاده کنم اما نمیدونم چه جوری ؟!
سلام
اگر var_dump آرایه $_POST رو زدین و داره null نشون میده یعنی که اطلاعات از فرمتون به درستی ارسال نمیشه. تنظیمات فرم رو بررسی کنید.
تابع mysqli_real_escape_string برای کاراکترهای غیر مجاز هست که تبدیلشون کنه که برای mysqli هست و الان پیشنهاد میشه که از mysqli برای ارتباط با دیتابیس دیگه استفاده نشه.
prepare هم مال pdo هست که برای ارتباط با دیتابیس معمولا پیشنهاد میشه. توضیحات pdo رو مطالعه نمایید.
http://php.net/manual/en/book.pdo.php
سلام دوستان
مشکل این که هیچ و کنشی نشون نمیداد این بود که من باید از 'PDO' استفاده میکردم که نکرده بودم!
اما الان مشکلی که هست این که بعد از لوگین کردن میگه که اسمه کاربری غلط هستش!
ممنون میشه اگه کسی بتونه کمکم کنه!
سپاس
<?php session_start(); /* Reports for either E_ERROR | E_WARNING | E_NOTICE | Any Error*/ error_reporting(E_ALL); ini_set("display_startup_errors", 1); ini_set("display_errors", 1); include 'Con.php'; if(isset($_POST['login'])){ $username = !empty($_POST['username']) ? trim($_POST['username']) : null; $passwordAttempt = !empty($_POST['password']) ? trim($_POST['password']) : null; $sql = "SELECT user_id, username, password FROM users WHERE username = :username"; $stmt = $conn->prepare($sql); $stmt->bindValue(':username', $username); $stmt->execute(); $user = $stmt->fetch(PDO::FETCH_ASSOC); if($user == false){ die('You are not Mr.Contreras!'); } else{ $validPassword = password_verify($passwordAttempt, $user['password']); if($validPassword){ $_SESSION['user_id'] = $user['id']; $_SESSION['logged_in'] = time(); header('Location: Go.php'); exit; }else{ die('why you have entered the wrong password?! So you are not Mr.Contreras!'); } } } ?>
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)