مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

pouria25

عضویت از 1396/06/04

دوستان میخام یک صفحه ی لوگین یا همان ورود درست کنم که تو قسمت php به مشکل خوردم! دوستان لطفآ کمکم کنید!

  • شنبه 4 شهریور 1396
  • 00:47
تشکر میکنم

من به چند صورت کد نوشتم اما جواب ندادش کسی هست که بتونه کمک کنه؟! مشکل کد نویسی من رو بگه اگه امکانش هست!

یا صفحه سفید لود میشه یا ارور ۵۰۰ رو نشون میده ! دوستان لطفآ کمکم کنید!


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));



?>


دوستان لطفآ کمکم کنید!

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

farshadfarokhi

عضویت از 1395/11/20

  • شنبه 4 شهریور 1396
  • 10:34

سلام

توی تست دوم، چون SESSION استفاده کردید اما در اول فایلتون session_start نگذاشتید، اگر وارد اون بخش بشه که ارور خواهد داد.

برا دیدن ارور ها اول فایلتون بعد از session_start کد زیر رو بگذارید:

ini_set("display_errors", "1");
  error_reporting(E_ALL);

بعد نتیجه رو اعلام کنید.

راستی برای بهتر نشون دادن کد ها توی صفحه، توی ادیتور از دکمه کد استفاده کنید و اون رو روی c# بگذارید بمونه.

کاربر سایت

pouria25

عضویت از 1396/06/04

  • شنبه 4 شهریور 1396
  • 13:26

اما یک جور دیگه ای نوشتم ارور نمیده اما کار هم نمیکنه !

<?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';
               }
            }
         ?>

کاربر سایت

farshadfarokhi

عضویت از 1395/11/20

  • یکشنبه 5 شهریور 1396
  • 21:14

قبل از if اول آرایه $_POST رو var_dump کنید ببینید اصلا چی داره برای صفحه ارسال میشه.

کاربر سایت

pouria25

عضویت از 1396/06/04

  • چهارشنبه 8 شهریور 1396
  • 16:37

الان مشکل این که چیزی نشون نمیده صفحه ی دفعه سفید میشه !

کاربر سایت

pouria25

عضویت از 1396/06/04

  • چهارشنبه 8 شهریور 1396
  • 23:20

من از var_dump(); این استفاده کردم و این NULL NULL رو نشون میده !
تو ی وبسایتی خوندم که به جای این    

$uid = mysqli_real_escape_string($conn, $_POST['uid']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

 باید از "prepare" استفاده کنم اما نمیدونم چه جوری ؟!

کاربر سایت

farshadfarokhi

عضویت از 1395/11/20

  • جمعه 10 شهریور 1396
  • 13:27

سلام

اگر var_dump آرایه $_POST رو زدین و داره null نشون میده یعنی که اطلاعات از فرمتون به درستی ارسال نمیشه. تنظیمات فرم رو بررسی کنید.

تابع mysqli_real_escape_string برای کاراکترهای غیر مجاز هست که تبدیلشون کنه که برای mysqli هست و الان پیشنهاد میشه که از mysqli برای ارتباط با دیتابیس دیگه استفاده نشه.

prepare هم مال pdo هست که برای ارتباط با دیتابیس معمولا پیشنهاد میشه. توضیحات pdo رو مطالعه نمایید.

http://php.net/manual/en/book.pdo.php

کاربر سایت

pouria25

عضویت از 1396/06/04

  • یکشنبه 26 شهریور 1396
  • 15:12

سلام دوستان 


مشکل این که هیچ و کنشی نشون نمیداد این بود که من باید از '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!');
        }
    }
     
}
 
 
?>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)