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

question-closed Dobijajacy skrypt [PHP]

Object Storage Arubacloud
–2 głosów
631 wizyt
pytanie zadane 15 listopada 2016 w PHP przez DragonCoder Nałogowiec (36,500 p.)
zamknięte 15 listopada 2016 przez DragonCoder

Witam

to znowu ja z tym samym pytaniem, bo to nie daje mi spokoju.... Dlaczego ten kod dziala:

 

<?php

	session_start();
	
	if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
	{
		header('Location: index.php');
		exit();
	}

	require_once "connect.php";

	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	if ($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$login = htmlentities($login, ENT_QUOTES, "UTF-8");
		$haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");
	
		if ($rezultat = @$polaczenie->query(
		sprintf("SELECT * FROM uzytkownicy WHERE user='%s' AND pass='%s'",
		mysqli_real_escape_string($polaczenie,$login),
		mysqli_real_escape_string($polaczenie,$haslo))))
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow>0)
			{
				$_SESSION['zalogowany'] = true;
				
				$wiersz = $rezultat->fetch_assoc();
				$_SESSION['id'] = $wiersz['id'];
				$_SESSION['user'] = $wiersz['user'];
				$_SESSION['drewno'] = $wiersz['drewno'];
				$_SESSION['kamien'] = $wiersz['kamien'];
				$_SESSION['zboze'] = $wiersz['zboze'];
				$_SESSION['email'] = $wiersz['email'];
				$_SESSION['dnipremium'] = $wiersz['dnipremium'];
				
				unset($_SESSION['blad']);
				$rezultat->free_result();
				header('Location: gra.php');
				
			} else {
				
				$_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
				header('Location: index.php');
				
			}
			
		}
		
		$polaczenie->close();
	}
	
?>

A ten kod, ktory jest wzorowany na dcinku, inna nazwa bazy, i zmienne po angielsku nie dziala?

<?php
/**
 * Created by PhpStorm.
 * User: kryst
 * Date: 14.11.2016
 * Time: 21:34
 */

    require_once "connect_db.php";

    $connect = new mysqli($dateBaseHost, $dateBaseUser, $dateBasePassword, $dateBaseName);

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

        $sql = "SELECT * FROM users WHERE login='$userLogin' AND password='$userPassword'";

        if($result = $connect->query($sql)){
            $how_much_users = $result->num_rows;
            if($how_much_users<0){

                $line = $result->fetch_assoc();

                $uLogin=§line['login'];
                echo "$userLogin";


                $result->free_result();
            }else{
                echo "dupa3";
            }
            echo "dupa2";
        }



        $connect->close();
    }
echo "dupa1";
?>

Wiem, ze pytanie bylo, ale zadnej logicznej odpowiedzi nie bylo, a ja stercze nad tymi kodami i je porownuje to wszystkie funkcje wyladaja na dobrze napisane... Tak jak mowilem tylko inne nazewnictwo i nic wiecej, ale jezeli odpale program z kursu to wszystko dziala jak nalezy... Czy to sa jawne jaja?

Pozdrawiam i milego wieczoru :)

 

PS. @HaKIM Robilem to co mowiles i tez nic... ale nie rozumiem czemu, jezeli wszystko jest tak samo jak na filmie i to dziala, a to co ja napisalem z innymi zmiennymi juz nie

komentarz zamknięcia: Glupota nie boli, rada na przyszlosc sprawdz kod i BAZE DANYCH przed zapytaniem :)
komentarz 15 listopada 2016 przez Boshi VIP (100,240 p.)
A MOŻESZ OPISAĆ CO NIE DZIAŁA?
komentarz 15 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
Streszcze tak, kod idzie do else, wiec polaczenie z baza jest, tylko pozniej nie sprawdza mi ifow zadnego dalej, czyli if w lini 21 nie bedzie sprawdzony

2 odpowiedzi

+1 głos
odpowiedź 15 listopada 2016 przez HaKIM Szeryf (87,590 p.)
wybrane 16 listopada 2016 przez DragonCoder
 
Najlepsza
                echo "dupa3";
            }
            echo "dupa2";
        }
 
 
 
        $connect->close();
    }
echo "dupa1";

Ahhhh, te sprawdzanie błędu...

Wywala jakiś error, lub jakąkolwiek z dup?

Kod śmiga.

Sam sprawdzałem.

(Ten, który Ci podałem pod wcześniejszym postem).

Wstaw całe repo do GitHub, sprawdzę (Albo wyślij .zip).

Btw. $uLogin=§line['login']; - Na jaką cholerę dałeś paragraf?

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

Trochę mnie wkurzyłeś, kolego.

Gdybyś zamiast idiotycznego DUPA zwrócił mysqli::$error to od razu byś wiedział o co chodzi. Masz nauczkę na przyszłość!

Powiedz, czy ten kod nie jest bardziej zrozumiały?

<?php
    require_once "connect_db.php";

    $connectToDatabase = new mysqli($dateBaseHost, $dateBaseUser, $dateBasePassword, $dateBaseName);

    if ($connectToDatabase->connect_errno) {
        return 'Error: ' . $connectToDatabase->connect_errno;
    }

    $userLogin = $_POST['login'];
    $userPassword = $_POST['password'];

    $selectUser = "
    SELECT * FROM `users`
    WHERE login = '$userLogin'
    AND password = '$userPassword'";

    if ($selectedUser = $connectToDatabase->query($selectUser)) {
        $userData = $selectedUser->fetch_assoc();
        echo $userData['login'];

        $selectedUser->free_result();
    } else {
        printf("Error message: %s\n", $connectToDatabase->error);
    }

$connectToDatabase->close();

(Mieszanka mojego stylu z PSR).

komentarz 15 listopada 2016 przez HaKIM Szeryf (87,590 p.)
Przeważnie samemu sobie gwiazdki nie nadaję, ale jako że ciupaliśmy to od dwóch dni...
2
komentarz 15 listopada 2016 przez Boshi VIP (100,240 p.)
poza tym, że masz sql inj to chyba ok ;p choć rzygam na widok mysqli.
komentarz 15 listopada 2016 przez HaKIM Szeryf (87,590 p.)

Ta, racja. Mógłbym poprawić, acz... To chyba już nie do mnie należy.

choć rzygam na widok mysqli.

Nie tylko Ty Boshi, nie tylko Ty... angry 

komentarz 16 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
Tak jak mowilem, ta dupa byla tylko do sprawdzenia do ktorego punktu wszystko dziala ok. dupa1 to bylo polaczenie sie z baza, dupa2 to resulatat i zapytanie sql, a 3 to sprawdzenie wyciagania danych, chociaz racje bledy powinny byc lepsze poprawie to.

 

Kod wyglada duzo lepiej, nie wiedzialem ze zapytanie moge rozbic na kilka linijek.
0 głosów
odpowiedź 15 listopada 2016 przez Dynamic Bywalec (2,910 p.)
$uLogin=§line['login'];

 

komentarz 16 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
Przeciez sa metody szyfrowania, jak sie nie myle to salt, jest funkcja ktora to szyfruje... Wiec musze zabezpieczyc dane uzytkownika, to jest proste i logiczne... Nie zostawie strony od tak sobie, zeby ktos mogl ukrasc dane uzytkownika, to by bylo

1. Glupie

2. Nieodpowiedzialne

3. Naruszyloby czyjas prywatnosc
komentarz 16 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
@efik, jestem otwarty, wiec co polecasz zamiast MSqL, mam czas moge pisac ten skrypt rok, wazne zeby byl skonzony i bezpieczny.... Wiec co zamiast MSqL?
komentarz 16 listopada 2016 przez HaKIM Szeryf (87,590 p.)
komentarz 16 listopada 2016 przez DragonCoder Nałogowiec (36,500 p.)
wiem juz o tym czytam, ale czy jeszcze cos innego?
komentarz 16 listopada 2016 przez efiku Szeryf (75,160 p.)
Na początek poczytaj moje odpowiedzi jeszcze raz bo widzę że nie czytasz do końca ze zrozumieniem. Jest też irc by popytać

Podobne pytania

0 głosów
2 odpowiedzi 326 wizyt
pytanie zadane 13 listopada 2016 w PHP przez DragonCoder Nałogowiec (36,500 p.)
0 głosów
2 odpowiedzi 432 wizyt
pytanie zadane 3 sierpnia 2016 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)
0 głosów
3 odpowiedzi 2,771 wizyt
pytanie zadane 6 listopada 2015 w PHP przez Radekoslaw123 Gaduła (3,080 p.)

92,555 zapytań

141,403 odpowiedzi

319,556 komentarzy

61,940 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!

...