• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP, skrypt logowania od amatora

Object Storage Arubacloud
0 głosów
342 wizyt
pytanie zadane 13 listopada 2016 w PHP przez DragonCoder Nałogowiec (36,500 p.)

Witam

Probuje stworzyc skrypt logowania, ogladam kurs Pana Miroslawa ale cos mi nie wychodzi. To znaczy nie przekierowywuje mnie na strone glowna:

kod:

LOGIN.PHP

<?php

    require_once "connect_with_db.php";

    $connect = @new mysqli($host, $db_user, $db_password, $db_name);

if($connect->connect_errno!=0)
{
    echo "Error: ".$connect->connect_errno;
}
else
{
    $login = $_POST ['Login'];
    $password = $_POST ['Password'];

    $sql_connect = "SELECT * FROM users WHERE userName = '$login' AND userPassword = '$password'";

    if(($result_of_connect = @$connect->query($sql_connect)))
    {
        $how_much_users_is_in_db = $result_of_connect->num_rows;
        if($how_much_users_is_in_db>0)
        {
            $line = $result_of_connect->fetch_assoc();
            $user = $line['userName'];

            $result_of_connect->free_result();

            header('Location: hfs_homepage.php');

        }else{
            
        }
    }




    $connect -> close();
}

?>

CONNECT_WITH_DB.PHP

<?php
/**
 * Created by PhpStorm.
 * User: kryst
 * Date: 13.11.2016
 * Time: 16:22
 */

    $host = "localhost";
    $db_user = "root";
    $db_password = "";
    $db_name = "hfsusers";
?>

INDEX:PHP

<!DOCTYPE HTML>
<html lang = "de">
	<head>
	<meta charset = "utf -8" />
	</head>
		<body>
			<form action = "login.php" method = "POST" />
				Username:
			<br />
			<input type = "text" name = "Login" />
			<br />
				Password:
			<br />
			<input type = "text" name = "Password" />
			<br />
			<br />
			<input type = "submit" value = "Login" /n>
		</body>
</html>

z tego co widze problem jest w lini 18 w pliku login.php, poniewaz ten if sie nie wykonuje, gdy dodac else do kodu to pokazuje mi sie wszystko co tam wpisze... Dodam ze baze danych mam w folderze z projktem i jest tylko jeden uzytkownik. 

Tutaj ss bazy:

<a href=https://zapodaj.net/4f02195b73f6e.png.html>baza.png</a>

 

Albo tak:

https://zapodaj.net/4f02195b73f6e.png.html

 

Pozdrawiam i milego wieczorku zycze :)

komentarz 13 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
Odpowiedz uzytkownika zniknela, a wiec dam komentarz tutaj:

1. Pan Miroslaw takze uzyl tylko raz "="

2. Tak bylo za duzo nawiasow

3. Po wprowadzeniu Twoich zmian blad byl ciagle

2 odpowiedzi

+1 głos
odpowiedź 13 listopada 2016 przez HaKIM Szeryf (87,590 p.)
edycja 13 listopada 2016 przez HaKIM

z tego co widze problem jest w lini 18 w pliku login.php, poniewaz ten if sie nie wykonuje, gdy dodac else do kodu to pokazuje mi sie wszystko co tam wpisze... Dodam ze baze danych mam w folderze z projktem i jest tylko jeden uzytkownik. 

Nie w linii 18 a w linii 21.

Else masz dla tego if'a:

if($how_much_users_is_in_db>0)
$how_much_users_is_in_db = $result_of_connect->num_rows;

var_dump() użyj na $result_of_connect->num_rows, $connect->query($sql_connect) i wywal wszystkie @ w kodzie.

Daj znać czy pojawił się nowy error(i jaki On jest) i co zwrócił var_dump().

komentarz 13 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
edycja 13 listopada 2016 przez DragonCoder
$sql_connect = "SELECT * FROM users WHERE userName = '$login' AND userPassword = '$password'";

    if($result_of_connect = $connect->query($sql_connect))
    {
        $how_much_users_is_in_db = $result_of_connect->num_rows;
        var_dump($how_much_users_is_in_d);

        if($how_much_users_is_in_db>0)
        {

To dalem tak, ale probowalem dac var_dump() w linii

 $how_much_users_is_in_db = $result_of_connect->num_rows;

Ale tez nic sie nie dzieje... To znaczy przechodzi do etego else, ktore jest dla ifa w linii 18 nie ma i pokazuje sie cala biala strona. Czyli cos robie nie tak przed tym ifem :

if($how_much_users_is_in_db>0)

Dalem to tez do ifa:

if(var_dump($result_of_connect = $connect->query($sql_connect)))

To dostalem:

bool(false) dupa

 

komentarz 13 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Ostatni raz udzielam się pod tematami związanymi z tym odcinkiem. :_:

Wypierdziel ten kod i spróbuj czegoś takiego:


require_once "connect_with_db.php";

$connect = new mysqli($host, $db_user, $db_password, $db_name);

if($connect->connect_errno)
{
    echo 'Error: ' . $connect->connect_errno;
    exit;
}

$login = $_POST ['Login'];
$password = $_POST ['Password'];

$sqlConnect = "SELECT * FROM users WHERE userName = '$login' AND userPassword = '$password'";


if ($result = $connect->query($sqlConnect)) {
    $user = $result->fetch_assoc();
    $userName = $user['userName'];
    echo $userName; // Powinno śmigać.

    $result->close();
}

$connect->close();

Nie zmieniłem za dużo, masz się czym bawić.

Nie przychodź z pierwszym lepszym błędem jeżeli po ctrl+c oraz ctrl+v nie będzie działało.

Poza tym, na jaką cholerę łączyć się z bazą sposobem obiektowym podczas pisania strukturalnego to ja nie wiem...

komentarz 13 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)

przekleilem Twoj kod, dodalem else, ale ciagle jest to samo czyli bool(fakse)

Za kazdym razem problem jest dudaj:

if ($result = $connect->query($sqlConnect))

 

komentarz 13 listopada 2016 przez HaKIM Szeryf (87,590 p.)

No to masz sknocone zapytanie.

Choć:

"SELECT * FROM `users` WHERE userName = '$login' AND userPassword = '$password'"

Powinno śmigać.

Na pewno dobrze wpisujesz dane?

Weź wywal na chwilę $_POST i wklep normalnie:

$login = 'SuperRootKrystian'

$password = 'krystian199988'

komentarz 13 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
Zrobilem jak mowiles i tez nic.... Juz nie wiem co z tym jest nie tak.Przegladalem 10 razy pliki nazwy itd i nic, wszytsko jest ok, zawodzi tylko ten if
komentarz 13 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Na magię nie pomogę.

Ostatnią deską ratunku jest wpisywanie na sucho (Bez zmiennych, bezpośrednio dane):

"SELECT * FROM `users` WHERE userName = '$login' AND userPassword = '$password'"

jak i:

new mysqli($host, $db_user, $db_password, $db_name);

Jak to nie pomoże, to zrób cały projekt na PDO wzorując się:

https://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO

komentarz 13 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
No nie rozumiem, czemu ta u Pana Miroslawa dziala a u mnie nie? Ok, jutro sprobuje w szkole napisac jeszcze raz, postawie od nowa baze danych i przepisze to jeszcze raz, jak nie to zrobie na pdo. Ale musze to extra instalowac czy pisze kod i po krzyku?
komentarz 13 listopada 2016 przez HaKIM Szeryf (87,590 p.)

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

Wszystko znajdziesz w dokumentacji.

W razie problemów, pewnie pomoże google(SO).

0 głosów
odpowiedź 13 listopada 2016 przez Jaroslaw Roj Obywatel (1,990 p.)
wywal tę  małpę w 18 lini

Podobne pytania

0 głosów
2 odpowiedzi 447 wizyt
pytanie zadane 3 sierpnia 2016 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)
0 głosów
2 odpowiedzi 361 wizyt
pytanie zadane 6 października 2015 w PHP przez Krzysiek_34 Mądrala (6,050 p.)
0 głosów
2 odpowiedzi 665 wizyt
pytanie zadane 17 marca 2018 w PHP przez Matim4 Nowicjusz (150 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...