Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie - postgresql
Forum PHP.pl > Forum > Przedszkole
domelpl
Witam,
Wiem że jest pełno tematów na forum o logowaniu, przeczytałem chyba wszystkie ale nadal nie moge poradzić sobie z logowaniem
Zamieszczam mój prosty skrypt i z góry przepraszam za głupie błędy ale jestem początkujący
Błagam pomuszcie mi

index.html
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  3. <title>strona testowa</title>
  4.  
  5. <STYLE type="text/css">
  6. .logowanie {font-family: sans-serif; font-size: 12pt; margin:4em;}
  7. .tytul {font-family: Home Sweet Home; font-size: 15pt; margin:3em;}
  8. </head>
  9. <SPAN class="tytul"><br><br><div align="center"><STRONG>Witaj w programie lojalnosciowym</STRONG></div></SPAN>
  10. <SPAN class="logowanie"><br><br><div align="center"><form action="logowanie.php" method="post">
  11. <p>Login<input type="text" name="form_log" /></p>
  12. <p>Haslo<input type="password" name="form_pass" /></p>
  13. <p><input type="submit" value="Zaloguj" /></p>
  14. </form></div></SPAN>
  15.  
  16. </body>
  17. </html>



logowanie.php
  1. <?php
  2. function laczenie()
  3. {
  4. $db=pg_connect('host=localhost dbname=test user=domel');
  5. //if ($db) {
  6. //echo 'polaczenie udane';}
  7. //else {
  8. //echo 'polaczenie nieudane';}
  9. }
  10.  
  11. $lacz=laczenie(); echo '<br>';
  12. //$login = 'domel';
  13. //$password = 'lotus';
  14. $log = $_POST['form_log'];
  15. $pass = $_POST['form_pass'];
  16.  
  17. $login = ('select login from users where login='$log';');
  18. $wyk1 = pg_query($login);
  19. $password = ('select haslo from users where haslo='$pass';');
  20. $wyk2 = pg_query($password);
  21.  
  22. if ($log == $wyk1 && $pass == $wyk2)
  23. { 
  24. $user=$_POST['form_log'];
  25. echo('<br><div align="center">Witaj '.$user.'</div>'); 
  26. } 
  27. else 
  28. { 
  29. echo('Bledny login lub haslo'); 
  30. } 
  31. //-----------------------------------------------------------------------------------------
  32.  
  33. ?>


Zapomniałem dodać w czym problem a więc: po wpisaniu danych do formularza przerzuca mnie na stronke "logowanie.php"
i na tym koniec nic sie nie dzieje. Wcześniej gdy miałem z góry ustalony login i hasło bez łączenia z bazą to wszystko działało
Jeszcze raz proszę o pomoc i wyrozumiałość
BORG
Jezeli masz
  1. <form action="logowanie.php">

To cie przenosi na te stronke. Mozesz w logowanie.php dodac
  1. location.href = 'index.html';
  2. </script>

Wtedy z logowanie.php cie przekieruje na inna stronke, mozesz tez zrobic plik index.php
  1. <?
  2. include("logowanie.php");
  3. if($_POST['action'] == 'login')
  4. {
  5. loguj($_POST['form_login'], $_POST['form_pass']);
  6. }
  7. ?>
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  9. <html>
  10. <head>
  11. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  12. <title>strona testowa</title>
  13.  
  14. <STYLE type="text/css">
  15. .logowanie {font-family: sans-serif; font-size: 12pt; margin:4em;}
  16. .tytul {font-family: Home Sweet Home; font-size: 15pt; margin:3em;}
  17. </STYLE>
  18. </head>
  19. <body>
  20. <SPAN class="tytul"><br><br><div align="center"><STRONG>Witaj w programie lojalnosciowym</STRONG></div></SPAN>
  21. <SPAN class="logowanie"><br><br><div align="center"><form action="index.php" method="post">
  22. <p>Login<input type="text" name="form_log" /></p>
  23. <p>Haslo<input type="password" name="form_pass" /></p>
  24. <input type="hidden" name="action" value="login">
  25. <p><input type="submit" value="Zaloguj" /></p>
  26. </form></div></SPAN>
  27.  
  28. </body>
  29. </html>


i plik logowanie.php:

  1. <?php
  2. function laczenie()
  3. {
  4. $db=pg_connect('host=localhost dbname=test user=domel');
  5. //if ($db) {
  6. //echo 'polaczenie udane';}
  7. //else {
  8. //echo 'polaczenie nieudane';}
  9. }
  10. function loguj($log, $pass)
  11. {
  12. $lacz=laczenie(); echo '<br>';
  13. //$login = 'domel';
  14. //$password = 'lotus';
  15.  
  16.  
  17. $login = ('select login from users where login='$log';');
  18. $wyk1 = pg_query($login);
  19. $password = ('select haslo from users where haslo='$pass';');
  20. $wyk2 = pg_query($password);
  21.  
  22. if ($log == $wyk1 && $pass == $wyk2)
  23. { 
  24. $user=$_POST['form_log'];
  25. echo('<br><div align="center">Witaj '.$user.'</div>'); 
  26. } 
  27. else 
  28. { 
  29. echo('Bledny login lub haslo'); 
  30. } 
  31. //-----------------------------------------------------------------------------------------
  32. }
  33. ?>


Powinno dzialac, chyba ze cos zchrzanilem winksmiley.jpg
domelpl
Dzieki za pomoc ale nie pomogło. To ze przerzuca mni na stronke "logowanie.php" to tak ma byc tylko chodzi mi o to ze mam co zle w skrypcie logowania na stronie "logowanie.php" bo cokolwiek wpisze to nic sie nie wyswietla nawet "bledny login lub haslo" nic a jak mialem wpisany recznie login i haslo a nie laczylem sie z baza to dzialalo
acztery
następne logowanie z kosmosu...


  1. <?php
  2. $sql="SELECT COUNT(*) FROM users WHERE username='".$_POST['form_log']."' AND password='".$_POST['form_log']."'";
  3. $dane = pg_query($db_handle,$sql);
  4.  
  5. if (pg_num_rows($dane)
  6. {
  7. echo "witaj, jestes teraz zalogowany";
  8. }esle{
  9. echo "brak dostepu, nieprawidlowe dane";
  10. }
  11. ?>
domelpl
Dzieki za podpowiedź ale nadal to samo sad.gif
satsun
Nie znam pgsql ale moze dobrze bedzie
  1. <?php
  2. $query = 'SELECT * FROM users WHERE login= " '.$_POST['form_log'].'" AND haslo = "'.$_POST['form_pass'].'";';
  3. $res = pg_query($db_h, $query);
  4. if(pg_num_rows($res) == 1)
  5. {
  6. echo 'Udalo sie';
  7. }
  8. else
  9. { echo 'Nie udalo sie zalogowac';
  10. }
  11. ?>
domelpl
No jest już lepiej ale nie działa do końca dobrze tzn cokolwiek bym wpisał to logowanie jest nieudane obojętnie czy wpiszę dobre czy złe dane
Dzieki za pomoc
satsun
Cytat(satsun @ 6.01.2007, 20:23:14 ) *
  1. <?php
  2. $query = 'SELECT * FROM users WHERE login= " '.$_POST['form_log'].'" AND haslo = "'.$_POST['form_pass'].'";';
  3. $res = pg_query($db_h, $query);
  4. if($res)
  5. {
  6. echo 'Udalo sie';
  7. }
  8. else
  9. { echo 'Nie udalo sie zalogowac';
  10. }
  11. ?>

A tak?
domelpl
Nadal to samo czyli "Nieudalo sie zalogowac" cokolwiek bym wpisal sad.gif
satsun
A na pewno sa pola login i haslo w tabeli users?
domelpl
Tak tabela jest OK i połączenie też jest dobre bo wyświetla mi rekordy

No wiec tak przynajmniej wiem gdzie jest jakis blad oto kod "logowanie.php"
  1. <?php
  2. $db=pg_connect('host=localhost dbname=test user=domel');
  3. echo($db); echo'<br>';
  4. if ($db) {
  5. echo 'polaczenie udane';}
  6. else {
  7. echo 'polaczenie nieudane';}
  8.  
  9. //-----------------------------------------------------------------------------------------
  10. $query = 'SELECT * FROM users WHERE login = "'.$_POST['login'].'" AND haslo = "'.$_POST['pass'].'";';
  11. $res = pg_query($db_h, $query);
  12. if (pg_num_rows($res) == 0) {
  13. echo '<br>Udalo sie';
  14. }
  15. else {
  16. echo '<br>Nie udalo sie zalogowac';
  17. }
  18. //----to dla sprawdzenia czy laczy sei z baza i wybiera rekordy (dziala)
  19. $select = 'SELECT login, haslo from users;';
  20. $tb_dane = pg_exec($db, $select) or die(pg_erromessage());
  21. $zawtab = @pg_numrows($tb_dane);
  22.  
  23. printf("<br><br><table border>");
  24. echo '<b>USERS</b>';
  25. printf("<tr>");
  26. printf("<td width="90"><b>LOGIN</b></td>");
  27. printf("<td width="90"><b>HASLO</b></td>");
  28. printf("</tr>");
  29.  
  30. for($i=0; $i<$zawtab; $i++)
  31. {
  32. printf("<tr>");
  33. printf("<td>%s</td>",pg_result($tb_dane, $i, 'login'));
  34. printf("<td>%s</td>",pg_result($tb_dane, $i, 'haslo'));
  35. printf("</tr>");
  36. }
  37. printf("</td></table>");
  38.  
  39.  
  40.  
  41.  
  42. ?>


a mianowicie jak we fragmencie
  1. <?php
  2. if (pg_num_rows($res) == 0) {
  3. echo '<br>Udalo sie';
  4. }
  5. else {
  6. echo '<br>Nie udalo sie zalogowac';
  7. }
  8. ?>

jest ustawiona wartosc 0 to cokolwiek wpisze to sie loguje poprawnie, a gdy wartosc 1 to co bym nie pisal poprawne dane czy nie to sie nie loguje i tak w kółko to samo Błagam pomóżcie bo naprawde zaczyna mnien to juz denerwować
acztery
co to za zmienna $db_h?



$res = pg_query($db_h, $query);

daj

$res = pg_query($db, $query);
domelpl
Zmieniłem na:
  1. <?php
  2. $query = 'SELECT * FROM users WHERE login = "'.$_POST['login'].'" AND haslo = "'.$_POST['pass'].'";';
  3. $res = pg_query($db, $query) or die(pg_errormessage());
  4. if (pg_num_rows($res) == 1) {
  5. echo '<br>Udalo sie';
  6. }
  7. else {
  8. echo '<br>Nie udalo sie zalogowac';
  9. }
  10. ?>

i teraz tak jak jest ==1 to jak wpisze błędne dane np login " tomel" i hasło "kot" to wywala ERROR: column "tomek" does not exist
a jak wpisze w login "login" a w haslo "haslo" to jest OK. Natomiast jak dam ==0 to wywala ten sam blad a ppo wpisaniu "login" "haslo" logowanie jest niudane
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.