Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt Logowania- nie działa
Forum PHP.pl > Forum > Gotowe rozwiązania
Wykladowca
Napisałem skrypt logowania, który oczywiście nie działa sadsmiley02.gif
pierwsza strona:
  1. <form action="sprawdz.php" target="_self" method="post">
  2. <tr><td>Login:</td><td><input type="text" name="login" size="18"></td></tr>
  3. <tr><td>Hasło:</td><td><input type="password" name="pass" size="20"></td></tr>
  4. <input type="submit" value="Zaloguj"></a>
  5. </form>
  6. </body>


Druga Strona

  1. <?
  2. $podanylogin = $_post['login'];
  3. $podanehaslo = $_post['pass'];
  4.  
  5. if(!file_exists('dane.db'){
  6.     $baza=sqlite_open("dane.db");
  7.     sqlite_query($baza, "CREATE TABLE news(temat varchar(50), tresc text, kiedy datetime)");
  8.     sqlite_query($baza, "CREATE TABLE ksiega(czyjwpis varchar(50), tresc text, data date, czas time)");
  9.     sqlite_query($baza, "CREATE TABLE users(login varchar(15), haslo varchar(20))");
  10.     sqlite_query($baza, "insert into users values('Wykladowca', 'haslo')");
  11. }
  12. else $baza=sqlite_open("dane.db");
  13. if(empty($_post['login'] || empty($_post['pass']) echo('Wpisz hasło i login');
  14. else
  15.     {
  16.     $baza=sqlite_open("dane.db");
  17.     $dobrehaslo = sqlite_query($pytanie_baza, "select haslo from users where login= $podanylogin");
  18.     if($dobrehaslo == $podanehaslo) echo "sukces!";
  19.     else echo "d*** tongue.gif";
  20.     }
  21. sqlite_close($baza);
  22. ?>

Z górey dziękuję za pomoc
free
Na moje początkujące oko widac ewidentnie ze nie ma komendy połączenia sie z baza danych :
typu
  1. $conn=mysql_connect($host,$bazalogin,$bazahaslo); //host , login i haslo do bazy
  2. mysql_select_db($baza); // nazwa twojej bazy
Wykladowca
Twoje początkujące oko nie zauważyło też że to nie mySQL tylko SQLite. blink.gif ehh...
LBO
sqlite_query" title="Zobacz w manualu php" target="_manual
Cytat
dbhandle
    The SQLite Database resource; returned from sqlite_open()[...]
Wykladowca
ohmy.gifA tak po noobsku? tzn. tak żebym zrozumiał?
LBO
Po pierwsze.
  1. <?php
  2.  
  3. sqlite_query($pytanie_baza, "select haslo from users where login= $podanylogin");
  4.  
  5. ?>

W miejscu $pytanie_baza powinna być zmienna $baza - resource otrzymany z funkcji sqlite_open" title="Zobacz w manualu php" target="_manual()

Po drugie.
Lepiej uzywaj takiego (
Cytat
resource sqlite_query ( string query, resource dbhandle [, int result_type [, string &error_msg]] )

) formatu zapytania. Dla osób pracujących z innymi bazami danych (MySQL, PostgreSQL), czy niezależnymi abstrakcjami (ADOdb), podawanie w pierwszym parametrze zapytania, a dopiero w drugim identyfikatora połączenia jest - jakby - bardziej naturalne (przypisz to przyzwyczajeniu).

Po trzecie:
O ile do pierwszego punktu musisz się dostosować, to drugi jest tylko radą i możesz zrobić jak zechcesz.
Wykladowca
teraz ma takie coś:
  1. <?
  2. if(empty($_post['login']) || empty($_post['pass'])) echo('Wpisz hasło i login');
  3. else
  4. {
  5. $podanylogin = $_post['login'];
  6. $podanehaslo = $_post['pass'];
  7.  
  8. if(!file_exists('dane.db')
  9. {
  10. $baza=sqlite_open("dane.db");
  11. sqlite_query($baza, "CREATE TABLE news(temat varchar(50), tresc text, kiedy datetime)");
  12. sqlite_query($baza, "CREATE TABLE ksiega(czyjwpis varchar(50), tresc text, kiedy datetime)");
  13. sqlite_query($baza, "CREATE TABLE users(login varchar(15), haslo varchar(20))");
  14. sqlite_query($baza, "insert into users values('Wykladowca', 'haslo')");
  15. }
  16. else $baza=sqlite_open("dane.db");
  17. $baza=sqlite_open("dane.db");
  18. $dobrehaslo = sqlite_query($baza, "select haslo from users where login= $podanylogin");
  19. if($dobrehaslo == $podanehaslo) echo "sukces!";
  20. else echo "d*** tongue.gif";
  21. sqlite_close($baza);
  22. }
  23. ?>


Czy muszę mówić żę nadal nie działa?
comzit
Tylko właściwie co do czego porównujesz?
Czy nie powinno być tak.

Kod
$dobrehaslo = sqlite_query($baza, "select * from users where haslo=$podanehaslo AND login= $podanylogin");
LBO
  1. <?php
  2.  
  3. $dobrehaslo = sqlite_query($baza, "SELECT COUNT(*) FROM users WHERE login= '$podanylogin' AND haslo='$podanehaslo'");
  4. $czy_istnieje = mysql_fetch_array($dobrehaslo);
  5. if($czy_istnieje[0] == 1) {
  6. print('zgadza sie!');
  7. } else {
  8. print('login lub haslo nieprawidlowe');
  9. };
  10.  
  11. ?>
Wykladowca
Sprytne
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-2024 Invision Power Services, Inc.