orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Cześć,korzystając poradnika wyszło mi takie coś <?php // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent) ob_start(); // start sesji session_start(); // połączenie z mysql mysql_connect('localhost', 'xxxxxx', 'xxxxxxxx') or die('Nieudane polaczenie z baza danych...'); // wybór bazy danych mysql_select_db('xxxxxxx') or die('Nie udalo sie wybrac bazy danych...'); // nagłówek echo '<center><h2>Logowanie</h2></center>'; // sprawdzamy czy user jest już zalogowany if($_SESSION['logged']) echo 'Już jestes zalogowany!'; else { // tworzymy prosty formularz echo '<center><form action="index.php" method="POST"> Nick: <br /> <input type="text" name="nick"><br /> Hasło: <br /> <input type="password" name="pass"><br /> <input type="submit" name="ok" value="Zaloguj"> </form></center>'; // jeśli zostanie naciśnięty przycisk "Zaloguj" if(isset($_POST['ok'])) { $nick = trim($_POST['nick']); $pass = trim($_POST['pass']); // sprawdzamy czy wszystkie dane zostały podane if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!'; // jeśli tak... else { // filtrujemy dane $nick = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick))); $pass = strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass))); // kodujemy hasło $pass = md5($pass); // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem $result = mysql_query ("SELECT * FROM 'players' WHERE 'nick' = '{$nick}' AND 'pass' = '{$password}'"); // jeśli nie istnieje if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!'; // jeśli tak... else { // dodajemy wynik zapytania do tablicy $row = mysql_fetch_array($result); // ustawianie sesji że użytkownik jest zalogowany $_SESSION['logged'] = true; // dodawanie do sesji nick $_SESSION['nick'] = $row['nick']; // wyświetlenie komunikatu oznaczającego poprawne logowanie echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>'; } } } } // rozłączenie z bazą danych mysql_close(); // koniec buforowania ob_end_flush(); ?> Tylko teraz gdy wpisuję poprawny login i hasło piszę że są niepoprawne dane. W bazie mam tak w tabeli players: Nick Password Test 6F56E9B0A9ADE2FEBFC78EC7370EA165 Nie wczytuje hasła bo jest zakodowane? Jeśli tak to jak mogę zrobić żeby logowanie działało? Z góry dziękuje za pomoc Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Zgłoś post Napisano Sierpień 28, 2013 (edytowany) Edytowano Marzec 26, 2018 przez Gość (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 (edytowany) Czyli mam zrobić tak jak tutaj na przykładzie? $zdanie = "Przykladowe zdanie do zamiany"; //do zmiennej zdanie przypisujemy łańcuch $zdanie = strtoupper($zdanie); //zamieniamy litery na wielkie używając funkcji strtoupper echo $zdanie; //wyświetlamy zamienione zdanie Tylko to 'echo $zmienna ' gdzie mam umiescić? Edytowano Sierpień 28, 2013 przez orton21 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Tak? // kodujemy hasło $pass = md5(strtoupper(md5($pass))); Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Z tym że dalej piszę niepoprawne dane ; / Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 (edytowany) Poprawiłem zapytanie,tylko że mam teraz tak <?php // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent) ob_start(); // start sesji session_start(); // połączenie z mysql mysql_connect('xxx', 'xxx', 'Jxxx') or die('Nieudane polaczenie z baza danych...'); // wybór bazy danych mysql_select_db('xxxk') or die('Nie udalo sie wybrac bazy danych...'); // nagłówek echo '<center><h2>Logowanie</h2></center>'; // sprawdzamy czy user jest już zalogowany if($_SESSION['logged']) echo 'Już jestes zalogowany!'; else { // tworzymy prosty formularz echo '<center><form action="index.php" method="POST"> Nick: <br /> <input type="text" name="nick"><br /> Hasło: <br /> <input type="password" name="pass"><br /> <input type="submit" name="ok" value="Zaloguj"> </form></center>'; // jeśli zostanie naciśnięty przycisk "Zaloguj" if(isset($_POST['ok'])) { $nick = trim($_POST['nick']); $pass = trim($_POST['pass']); // sprawdzamy czy wszystkie dane zostały podane if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!'; // jeśli tak... else { // filtrujemy dane $nick = strip_tags( mysql_real_escape_string( HTMLSpecialChars($nick))); $pass = strip_tags( mysql_real_escape_string( HTMLSpecialChars($pass))); // kodujemy hasło $pass = md5(strtoupper(md5($pass))); // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem $result = mysql_query ("SELECT * FROM `players` WHERE `nick`='$nick' AND `password`='$pass'"); // jeśli nie istnieje if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!'; // jeśli tak... else { // dodajemy wynik zapytania do tablicy $row = mysql_fetch_array($result); // ustawianie sesji że użytkownik jest zalogowany $_SESSION['logged'] = true; // dodawanie do sesji id użytkownika, login oraz datę rejestracji $_SESSION['nick'] = $row['nick']; // wyświetlenie komunikatu oznaczającego poprawne logowanie echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>'; } } } } // rozłączenie z bazą danych mysql_close(); // koniec buforowania ob_end_flush(); ?> To dalej piszę niepoprawne dane. ;/ Edytowano Sierpień 28, 2013 przez orton21 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Sierpień 28, 2013 W jaki sposób kodujesz hasło, które zapisujesz w bazie? $pass = md5(strtoupper(md5($pass))); Robi następujące operacje 1) md5 z hasła $pass1 = md5($pass); 2) zamiana liter owego haszu md5 na wielkie $pass2 = strtoupper($pass1); 3) zrobienie haszu md5 z... tego, co jest wynikiem kroku 2/ więc... md5 z dużymi literami $pass3 = md5($pass2); Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Sierpień 28, 2013 $pass = strtoupper(md5($pass)); Raczej to tak powinno wyglądać, po co robisz 2 razy md5? Dodatkowo zmień poradnik bo stosowanie <center> to jakaś masakra jest. Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Poprawiłem,ale nadal to samo. Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Wyprintuj,tzn? ;d Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Sierpień 28, 2013 Nie każdy musi być orłem w danej dziedzinie, ale bez przesady. Jak się za coś zabiera, to chociaż podstawy trzeba znać, a nie biadolić z każdą pierdółką na forum z zerowym własnym wysiłkiem. Jeżeli złapiesz gumę i wołasz o pomoc, to zapewne ktoś się zlituje i ci postara się nakierować (nie wyręczając). Ale jak owy ktoś powie ci, żebyś wziął klucz do kół i odkręcił śruby, a ty zapytasz co to jest ten klucz do kół, to najwyższy czas wezwać mechanika/Assistance. Wtedy za drobną opłatą zrobi każde, nawet najbardziej debilne zadanie. Udostępnij ten post Link to postu Udostępnij na innych stronach
orton21 0 Zgłoś post Napisano Sierpień 28, 2013 Udało mi się w końcu Można zamknąć Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Sierpień 28, 2013 Idealnie, że postanowiłeś rozwiązanie pokazać innym Udostępnij ten post Link to postu Udostępnij na innych stronach