Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: base64 w logowaniu
Forum PHP.pl > Forum > Przedszkole
radexon
Witam

Mam problem z dopięciem podczas logowania funkcji

base64 decode ,która dekoduje hasło w bazie mysql które jest zakodowane w tym formacie.

Fragment odpowiedzialny za logowanie wygląda tak:

  1. if(mysql_num_rows(mysql_query("SELECT user_name, password
  2. FROM webc_accounts WHERE user_name = '".$_POST['login']."'
  3. && password = '".$_POST['haslo']."' ")) > 0) {
  4.  
  5.  
  6. if(mysql_num_rows(mysql_query("SELECT id FROM webc_accounts
  7. WHERE user_name = '".$_POST['login']."'
  8. && password = '".$_POST['haslo']."' ")) > 0 ) {


próbowałem tam gdzie .$_POST['haslo wstawic = strrev(base64_encode(($_POST ale błąd wyrzuciło i logowanie kompletnie nie działało.
nospor
1) Yyyy.... a czemu w ogole do hasła używasz base64??
2) A czemu używasz strrev() ?
3) Pokaż kod rejestracji
Sephirus
Ten kod nie wygląda najlepiej...

Ale nie to jest tematem więc powiedz czemu chcesz używać base64 do kodowania hasła w bazie? Do tego używa się funkcji skrótu. Hasło wrzucone do bazy w formie base64 to to samo co jakbyś wrzucił jawne hasło...

Przede wszystkim pokaż kod po twojej zmianie i to jaki błąd wyrzuciło...
radexon
Ja wiem i czytałem,że jest kaszanka i mało bezpieczne to ale przejąłem jedną stronę i tam już tak z góry na głownej stronie tak logowanie jest zrobione.

I robię kolejną podstronkę i chcę,skorzystać z tej bazy MYSQL gdzie są loginy i hasła trzymane.
Głowiłęm się w czym to zakodowane jest i przeglądając znalazłem, że w BASE64.. póki co na tym chce zrobić tzn żęby działało logowanie.

W przyszlości będzie nowa strona z nowym logownaiem i na MD5 planuje.Ale to muszę po prostu uruchomić w miarę szybko,żeby działało
nospor
Cytat
Głowiłęm się w czym to zakodowane jest i przeglądając znalazłem, że w BASE64
To może coś źle znalazłeś. Pozwól, że sami ocenimi i pokaż wkońcu kod rejestracji.
radexon
Cał kod jest kaszanka,tak go ktoś napisał,że za logowanie odpowiada ponad 1200 lini.Pierwszy raz takie widziałem coś.

A jak wpisze zakodowane hasło w MYSQL w panelu logowania to działa ono.

Chciałem go stawić ale wyskakuje,że kod za długi jest...



Parse error: syntax error, unexpected '{' in /home2/krpipor/public_html/twojastrona/logowanie.php on line 15 taki błąd wyrzuciło ale podejrzewam,że w złym miejscu albo znaki wstawiłem
Sephirus
Ale wrzuć to tak jak wrzucałeś w ten kod z tym base64 i pokaż - zobaczymy co robisz źle smile.gif
radexon
  1. <?php
  2.  
  3. mysql_connect("localhost","baza","haslobazy");
  4.  
  5. if(isset($_SESSION['zalogowany'])) {
  6. echo "Witam, ".$_SESSION['login'];
  7. }else{
  8.  
  9. if(isset($_POST['wyslij'])) {
  10.  
  11.  
  12. if(mysql_num_rows(mysql_query("SELECT user_name, password
  13. FROM webc_accounts WHERE user_name = '".$_POST['login']."'
  14. && password = '".$_POST['haslo']."' ")) > 0) {
  15.  
  16.  
  17. if(mysql_num_rows(mysql_query("SELECT id FROM webc_accounts
  18. WHERE user_name = '".$_POST['login']."'
  19. && password = '".$_POST['haslo']."' ")) > 0 ) {
  20.  
  21.  
  22. $_SESSION['zalogowany'] = true;
  23. $_SESSION['login'] = $_POST['login'];
  24. $_SESSION['haslo'] = $_POST['haslo'];
  25. echo "Jesteś zalogowany.";
  26.  
  27.  
  28. } else {
  29.  
  30. echo "Złe hasło, proszę spróbować ponownie";
  31. }
  32. } else {
  33. echo "Nie ma takiego użytkownika";
  34. }
  35. } else {
  36.  
  37. ?>

Oryginał

A niżej zmodyfikowany przezemnie:
  1. <?php
  2.  
  3. mysql_connect("localhost","baza","haslo");
  4.  
  5. if(isset($_SESSION['zalogowany'])) {
  6. echo "Witam, ".$_SESSION['login'];
  7. }else{
  8.  
  9. if(isset($_POST['wyslij'])) {
  10.  
  11.  
  12. if(mysql_num_rows(mysql_query("SELECT user_name, password
  13. FROM webc_accounts WHERE user_name = '".$_POST['login']."'
  14. && password = '"$haslo = strrev(base64_encode.$_POST['haslo']."' ")) > 0) {
  15.  
  16. if(mysql_num_rows(mysql_query("SELECT id FROM webc_accounts
  17. WHERE user_name = '".$_POST['login']."'
  18. && password = '".$_POST['haslo']."' ")) > 0 ) {
  19.  
  20.  
  21. $_SESSION['zalogowany'] = true;
  22. $_SESSION['login'] = $_POST['login'];
  23. $_SESSION['haslo'] = $_POST['haslo'];
  24. echo "Jesteś zalogowany.";
  25.  
  26.  
  27. } else {
  28.  
  29. echo "Złe hasło, proszę spróbować ponownie";
  30. }
  31. } else {
  32. echo "Nie ma takiego użytkownika";
  33. }
  34. } else {
  35.  
  36. ?>


Błąd taki:Parse error: syntax error, unexpected T_VARIABLE in /home2/krpipor/public_html/twojastrona/logowanie.php on line 15
gothye
  1. <?php
  2.  
  3. mysql_connect("localhost","","");
  4. mysql_select_db("krpipor_pip");
  5.  
  6. if(isset($_SESSION['zalogowany'])) {
  7. echo "Witam, ".$_SESSION['login'];
  8. }else{
  9.  
  10. if(isset($_POST['wyslij'])) {
  11.  
  12.  
  13. if(mysql_num_rows(mysql_query("SELECT user_name, password
  14. FROM webc_accounts WHERE user_name = '".$_POST['login']."' // a o mysql_real_escape_string - słyszałeś
  15. && password = '".strrev(base64_encode($_POST['haslo']))."'")) > 0) {
  16.  
  17. if(mysql_num_rows(mysql_query("SELECT id FROM webc_accounts
  18. WHERE user_name = '".$_POST['login']."'
  19. && password = '".$_POST['haslo']."' ")) > 0 ) {
  20.  
  21.  
  22. $_SESSION['zalogowany'] = true;
  23. $_SESSION['login'] = $_POST['login'];
  24. $_SESSION['haslo'] = $_POST['haslo']; // po co ?
  25. echo "Jesteś zalogowany.";
  26.  
  27.  
  28. } else {
  29.  
  30. echo "Złe hasło, proszę spróbować ponownie";
  31. }
  32. } else {
  33. echo "Nie ma takiego użytkownika";
  34. }
Sephirus
@radexon innymi słowy powtórka z podstaw składni PHP by się przydała :/
radexon
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home2/krpipor/public_html/twojastrona/logowanie.php on line 15
Nie ma takiego użytkownika

Hmm coś jeszcze boli w skrypcie bo mam komunikat taki.
nawet jak zakodowane hasło z MYSQL wstawię to teraz już krzyczy że nie ma takiego usera w bazei

Fakt błąd aż wstyd że taki wypisałem w składni. ale na błędach sie uczy czlowiek smile.gif
nospor
if(mysql_num_rows(mysql_query("SELECT user_name, password
FROM webc_accounts WHERE user_name = '".$_POST['login']."' // a o mysql_real_escape_string - słyszałeś
&& password = '".strrev(base64_encode($_POST['haslo']))."'")) > 0) {
Nie mów, proszę, że wkleiłeś to jota w jotę włacznie z
// a o mysql_real_escape_string - słyszałeś
radexon
Nie no tyle nie wstawiłęm bez przesady na tyle to nie wklepywałem tego.Czytam
http://php.net/manual/pl/function.mysql-re...cape-string.php

i o zasotosowaniu tego w tym moim kodzie
$query = sprintf("SELECT * FROM webc_accounts WHERE uzytkownik='%s' AND haslo='%s'",
mysql_real_escape_string($login),
mysql_real_escape_string($haslo));
nospor
To pokaż pełen kod po zmianach, co byśmy mieli pewność jaki masz teraz kod.
nospor
1) Przenosze na przedszkole
2) zapoznaj sie z tym tematem:
Temat: Jak poprawnie zada pytanie
Przyda ci się bardzo
3)
Cytat
Nie no tyle nie wstawiłęm bez przesady na tyle to nie wklepywałem tego
I nie obruszaj się za proste pytania, ale Twoja wiedza z tej tematyki jest bardzo niska, wiec pytania jak moje poprzednie, wydają się być w miare logiczne i chcą ustalić faktyczny aktualny wygląd kodu.
nospor
4) I miej litość - zacznij wkońcu używać takich znaków jak przecinek czy kropka.
smile.gif
radexon
Ok udało mi się ogarnąć .W drugim kodzie przy zapytaniu też musiałem dodać .strrev(base64_encode($_POST i jest ok
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.