AJAX logowanie brak rezultatów

Odpowiedz Nowy wątek
2019-01-08 09:01
0

AJAX nigdy mnie nie lubił, ze wzajemnością ;] Buduję stronkę, którą przez tego ajaxa na prawie 2 msc porzuciłem.

Podgląd na żywo:

Login: test
Hasło: test

Odkąd próbuję na siłę korzystać z funkcji w logowaniu to mi nie chce tej AJAX działać -.-

function __login__()
{
    if (isset($_POST['login']))
    {

        try
        {
                // wytnij id, hasło użytkownika z bazy i porównaj z dowolnie podaną nazwą użytkownika
                if ($stmt = $con->prepare('SELECT id, user_password FROM Users WHERE user_name = ?'))
                {

                    $stmt->bind_param('s', $_POST['user_name']);
                    $stmt->execute(); 
                    $stmt->store_result(); 

                        if ($stmt->num_rows > 0)
                        {

                            $stmt->bind_result($id, $user_password);
                            $stmt->fetch();   

                            $login_password_hash = password_hash($_POST['user_password'], PASSWORD_DEFAULT);

                            if (password_verify($_POST['user_password'], $login_password_hash))
                            {

                                $_SESSION['user_loggen'] = TRUE;
                                $_SESSION['user_name'] = $_POST['user_name'];
                                $_SESSION['id'] = $id;

                                //echo "zalogowano";
                                return "success";

                            }
                            else
                            {
                                return "Błędna nazwa użytkownika lub/i hasło";
                            }
                        }
                        else 
                        {
                                return "Błędna nazwa użytkownika lub/i hasło";
                        }

                        $stmt->close();
                }
                else
                {
                    return "Błąd połączenia z bazą danych!";
            }
        }
        catch(Exception $error)
        {
            return $error->getMessage();
        }
    }
}

i sam AJAX:

    function __login__()
                                {
                                 var user_name=$("#user_name").val();
                                 var user_password=$("#user_password").val();
                                 if(user_name != "" && user_password != "")
                                 {
                                  $("#error_login").css({"display":"block"});
                                  $.ajax
                                  ({
                                  type:'post',
                                  url:'root/login/login.php',
                                  data:{
                                   __login__:"__login__",
                                   user_name:user_name,
                                   user_password:user_password
                                  },
                                  success:function(response) {
                                  if(response=="success")
                                  {
                                    window.location.href="index.php";
                                  }
                                  else
                                  {
                                    $("#error_login").css({"display":"none"});
                                    alert("Wrong Details");
                                  }
                                  }
                                  });
                                 }

                                 else
                                 {
                                  alert("Please Fill All The Details");
                                 }

                                 return false;
                                }

Nie zwraca mi nic, ani że dobre dane, ani że złe, ani, że działa...
Ktoś widzi co źle zrobiłem?


Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D
edytowany 1x, ostatnio: youmound, 2019-01-18 20:17

Pozostało 580 znaków

2019-01-08 09:17
Wesoły Kura
0

Skoro nic nie działa to może funkcja wgl nie jest wywoływana. Próbowałeś jakość debugować ten kod?

Pozostało 580 znaków

2019-01-08 09:22
0

w login pod funkcją:

 $results_login = __login__();
echo  $results_login;

i dziwne. wcześniej mi działało teraz się wywala:

Fatal error: Call to a member function prepare() on a non-object


Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D
edytowany 1x, ostatnio: youmound, 2019-01-08 09:23

Pozostało 580 znaków

2019-01-08 09:50
1

Gdzie w funkcji login (co to za nazewnictwo???) masz wskazane co zawiera $con ? I wklej kod login.php.

I jeszcze jedno. Jak się wejdzie na tą Twoją stronę od razu dostajemy komunikat "błędny login lub hasło".

edytowany 2x, ostatnio: leonpro778, 2019-01-08 09:53
ten komunikat jest wpisany na sztywno w html ; ) - youmound 2019-01-08 10:16
To wywal go :) Od razu budzi skojarzenie, że coś jest w SESSION. Kolejna rzecz. Lewy górny róg masz haval256. To jakiś login? - leonpro778 2019-01-08 10:40

Pozostało 580 znaków

2019-01-08 10:33
0

kod php w pierwszym poście jest z funkcji login

do con dobieram się tak:

$con = __getConnect__();

Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D

Pozostało 580 znaków

2019-01-08 10:35
0
youmound napisał(a):

kod php w pierwszym poście jest z funkcji login

do con dobieram się tak:

$con = __getConnect__();

A możesz wkleić CAŁY kod pliku login.php? To raz. Dwa, gdzie to getConnect() się znajduje?

Pozostało 580 znaków

2019-01-08 10:42
0

jedyne czego nie wkleiłem z login to :

session_start();

include_once("root.php");

$con = __getConnect__();

a connection jest tu:
plik root.php

define('MYSQL_USER', 'root');
define('MYSQL_PASSWORD', 'password');
define('MYSQL_HOST', 'localhost');
define('MYSQL_DATABASE', 'my db');

function __getConnect__()
{

    try
    {
        $sqli = mysqli_connect
        (
            MYSQL_HOST,
            MYSQL_USER,
            MYSQL_PASSWORD,
            MYSQL_DATABASE
        );

        return $sqli;
    }

    catch(Exception $error) 
    {
        return $error->getMessage();
    }
}

Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D

Pozostało 580 znaków

2019-01-08 12:14
0

Nie przekazujesz $con do funkcji login

Pozostało 580 znaków

2019-01-08 12:34
0

Chyba zrezygnowalem z przekazywania bo wtedy to się dopiero sypało ...

Missing argument 1 for login(), called


Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D

Pozostało 580 znaków

2019-01-08 12:44
1

No a jak chcesz mieć niby dostęp do $con? W jaki sposób przekazujesz tą zmienną? Z błędu wynika, że nie przekazujesz go wcale :)

Pozostało 580 znaków

2019-01-08 18:34
0

normalnie:

w login.php:

session_start();

include_once("root.php");

$con = __getConnect__();

//echo $con;

function __login__($con)

Dziura w ścianie gdzie Panowie widzą Panie,
Rick and Morty, season 1.
Szukam tej dziury, jak coś dajcie znać gdzie jest :D

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0