Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wielkie i małe litery w postgresie...
marcinp1984
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Zrobiłem sobie panel dodawania nowych użytkowników w moim projekcie, już myślałem że wszystko jest cacy a tu lipa :/ Chce zrobić tak aby przy próbie utworzenia użytkownika wywalało jakiś komunikat jeśli istnieje on już w bazie... i tak jeśli np wpisuje marcin i w bazie też jest marcin to działa ok... ale jeśli wpisze Marcin to takiego użytkownika już dodaje :/ Co może rozwiązać ten problem??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Musisz zadac odpowiednie zapytanie
  1. SELECT id FROM userzy WHERE login ILIKE '%wpisane_przez_ciebie_nick%'


I jezeli zwroci jakis rekord tzn ze jest taki uzytkownik.
Go to the top of the page
+Quote Post
marcinp1984
post
Post #3





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


No właśnie tyle że takie coś u mnie nie za bardzo chce zadziałać i nie wiem jak z tym sobie poradzić :/
Mam taki oto kod, nie wiem czy w ogóle tak powinno się to robić ale jestem w tym wszystkim początkujący i nie bardzo się znam (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. $gatunek = $_POST[gatunek];
  3.  
  4. $result = pg_query("SELECT * FROM gatunki WHERE nazwa_gatunku ='$gatunek'");
  5. $line = pg_fetch_array($result);
  6.  
  7. $gatunek_z_bazy = $line[nazwa_gatunku];
  8.  
  9.   if($gatunek==$gatunek_z_bazy)
  10.      {
  11.      echo "<font style='font-family:chiller;font-size:5mm'><b>TAKI GATUNEK JUŻ ISTNIEJE!!!</b></font><br>";
  12.      }
  13.   else
  14.      {
  15.      $query = pg_query("insert into gatunki values(default, '$gatunek')");
  16.      echo "<font style='font-family:chiller;font-size:5mm'><b>DODANO NOWY GATUNEK</b></font>";  
  17.      }  
  18. else
  19. ?>


No i jak tu teraz coś zrobić żeby wielkość liter nie miała znaczenia??
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(marcinp1984 @ 1.06.2009, 21:23:22 ) *
że takie coś u mnie nie za bardzo chce zadziałać\

Jak ma działać skoro W OGÓLE nie zastosowałeś sie do zapytania podanego wyzej
Cytat
i nie wiem jak z tym sobie poradzić :/

A to nie powinno czasem brzmiec "Zróbcie mi to"?\

Ba. Pisałeś o bazie uzytkowników a teraz walisz jakieś gatunki.

Ten post edytował wookieb 1.06.2009, 20:40:28
Go to the top of the page
+Quote Post
marcinp1984
post
Post #5





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


A więc tak... nie jest tak jak pisałeś tylko tak jak miałem to oryginalnie... tak jak pisałeś już przerabiałem i niestety nie dało oczekiwanego rezultatu :/

Faktycznie... bo wkleiłem nie ten kod (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) No ale to nie robi większej różnicy gdyż dla gatunków to ma działać tak samo jak dla użytkowników... no i działa tak samo źle
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No to pokaz co zrobiles, czyli jak wykorzystales podane zapytanie,
Go to the top of the page
+Quote Post
marcinp1984
post
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


ja zrobiłem coś takiego.. aczkolwiek pewnie źle skoro nie chce działać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Może już wkleje cały kod żeby było wszystko jasne
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4.  
  5.  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6.  <link rel="Stylesheet" type="text/css" href="index.css">
  7.    
  8. </head>
  9. <body>
  10. <center>
  11.  
  12. <?php
  13. $dbconn = pg_connect("host='localhost' port='5432' dbname='postgres' user='postgres' password='marcin'");
  14.  
  15. $gatunek = $_POST[gatunek];
  16.  
  17. $result = pg_query("SELECT * FROM gatunki WHERE nazwa_gatunku ilike '$gatunek'");
  18. $line = pg_fetch_array($result);
  19.  
  20. $gatunek_z_bazy = $line[nazwa_gatunku];
  21.  
  22. if($gatunek==null)
  23.   {
  24.   echo "<font style='font-family:chiller;font-size:5mm'><b>WYPEŁNIJ WSZYSTKIE WYMAGANE POLA!!!</b></font>";
  25.   }
  26. else
  27.   {
  28.   if($gatunek==$gatunek_z_bazy)
  29.      {
  30.      echo "<font style='font-family:chiller;font-size:5mm'><b>TAKI GATUNEK JUŻ ISTNIEJE!!!</b></font><br>";
  31.      }
  32.   else
  33.      {
  34.      $query = pg_query("insert into gatunki values(default, '$gatunek')");
  35.      echo "<font style='font-family:chiller;font-size:5mm'><b>DODANO NOWY GATUNEK</b></font>";  
  36.      }  
  37.   }
  38.  
  39. pg_close($dbconn);
  40. ?>
  41.  
  42. </center>
  43. </body>
  44. </html>
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. <?php
  2. if(mb_strtolower($gatunek, 'nazwa_kodowania_ktorego_uzywasz')==mb_strtolower($gatunek_z_bazy, 'nazwa_kodowania_ktorego_uzywasz'))
  3. ?>

Pomijaac ten aspekt ze i tak to jest zbedne.
Wystarczy samo
  1. <?php
  2. if(empty($gatunek_z_bazy))
  3. {
  4. // nie ma jeszcze takiego rekordu
  5. }
  6. else
  7. {
  8. //jets taki rekord
  9. }
  10. ?>
Go to the top of the page
+Quote Post
marcinp1984
post
Post #9





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


yyyy... no dobra ale w które miejsce ja mam to dodać? Albo zamiast czego?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Pomyśl troche. Przeciez dostales prawie ze gotowca. Wystarczy odrobine pomyslec.
Go to the top of the page
+Quote Post
marcinp1984
post
Post #11





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


Wielkie dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Działa.. nie bardzo wiem na jakiej zasadzie ale działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Wookieb mógłbyś jeszcze zerknąć na ten kod? Teraz mam podobny problem w samym logowaniu na stronkę, którego wcześniej jednak nie zauważyłem :/ Jak w bazie mam login marcin a podam Marcin to już wywala że zły login... a chyba poprzednie rozwiązanie które mi podpowiedziałeś w tym przypadku już nie pomorze bo mi nie działało, chyba że źle to zrobiłem...
Oryginalnie wygląda to tak:

  1. <?php
  2.  
  3. $dbconn = pg_connect("host='localhost' port='5432' dbname='postgres' user='postgres' password='marcin'");
  4.  
  5. $login_pom = $_POST[login];
  6. $haslo_pom = $_POST[haslo];
  7.  
  8. $result = pg_query("SELECT * FROM uzytkownicy WHERE nick ilike '$login_pom'");
  9. $line = pg_fetch_array($result);
  10.  
  11. $haslo_z_bazy = $line[haslo];
  12. $login_z_bazy = $line[nick];
  13. $id = $line[id_uzytkownika];
  14. $admin = $line[czy_admin];
  15. $admin_glowny = $line[czy_admin_glowny];
  16. $zablokowany = $line[czy_zablokowany];
  17.  
  18.  
  19. if($login_pom == null || $haslo_pom == null)
  20.   {
  21.   echo "<font color='black' style='font-family:Chiller;font-size:7mm'><b>PODAJ LOGIN I HASŁO!!!</b></font><br>
  22.         <font color='black' style='font-family:Chiller;font-size:6mm'><b><a href='logowanie.php' class='haslo'>Powróć</a> do strony logowania i spróbuj jeszcze raz</b></font>";
  23.   }
  24. else
  25.   {
  26.   if ($login_z_bazy == $login_pom && $haslo_z_bazy == $haslo_pom && ($admin == 't' || $admin_glowny == 't') && $zablokowany == 'f')
  27.      {  
  28.      header("Location: administrator.php?id=$id");
  29.      }
  30.   else
  31.      {
  32.      echo "<font color='black' style='font-family:Chiller;font-size:7mm'><b>NIEPOPRAWNY LOGIN LUB HASŁO!!!</b></font><br>
  33.            <font color='black' style='font-family:Chiller;font-size:6mm'><b><a href='logowanie.php' class='haslo'>Powróć</a> do strony logowania i spróbuj jeszcze raz</b></font>";
  34.      }
  35.   }
  36.  
  37. pg_close($dbconn);
  38. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #12





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




1) Nie masz zabezpieczenia przed sql injection. Poczytaj o tym.
  1. <?php
  2. $login_pom = mysql_real_escape_string($_POST[login]);
  3. $haslo_pom = mysql_real_escape_string($_POST[haslo]);
  4. ?>

2) analogicznie zastosuj porade w mb_strtolower na $login_z_bazy i $login_pom

Ten post edytował wookieb 2.06.2009, 11:48:48
Go to the top of the page
+Quote Post
marcinp1984
post
Post #13





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


ok zaraz to sprawdze

ale zastanawia mnie jedn... $login_pom = mysql_real_escape_string($_POST[login]);
czy to aby na pewno działa w postgresie? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował marcinp1984 2.06.2009, 12:07:49
Go to the top of the page
+Quote Post
wookieb
post
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Ach zapomnialem. Oczywiscie ze nie i uzyj http://pl.php.net/pg_escape_string
Go to the top of the page
+Quote Post
marcinp1984
post
Post #15





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


No dobra tylko nie bardzo wiem jak tego użyć...

  1. <?php
  2. $login_pom = pg_escape_string($_POST[login]);
  3. $haslo_pom = pg_escape_string($_POST[haslo]);
  4. ?>


to pewnie tak.

A co z tym mb_strtolower ? W tym przypadku też to potzrebne??

Ten post edytował marcinp1984 2.06.2009, 12:20:52
Go to the top of the page
+Quote Post
wookieb
post
Post #16





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No tak.
No pomysl.
Pobierasz login z bazy = Marcin
a ktos wpisal marcin

Potem porownuje marcin==Marcin i co ci wychodzi? Wiec zamien wszystko na male litery.
Go to the top of the page
+Quote Post
marcinp1984
post
Post #17





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


Nie wiem czy dobrze to zrobiłem.. w każdym bądź razie nie działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Póki co dopisałem to tylko do loginu

  1. <?php
  2. $dbconn = pg_connect("host='localhost' port='5432' dbname='postgres' user='postgres' password='marcin'");
  3.  
  4. $login_pom = pg_escape_string($_POST[login]);
  5. $haslo_pom = $_POST[haslo];
  6.  
  7. $result = pg_query("SELECT * FROM uzytkownicy WHERE nick ilike '$login_pom'");
  8. $line = pg_fetch_array($result);
  9.  
  10. $haslo_z_bazy = $line[haslo];
  11. $login_z_bazy = $line[nick];
  12. $id = $line[id_uzytkownika];
  13. $admin = $line[czy_admin];
  14. $admin_glowny = $line[czy_admin_glowny];
  15. $zablokowany = $line[czy_zablokowany];
  16.  
  17.  
  18. if($login_pom == null || $haslo_pom == null)
  19.   {
  20.   echo "<font color='black' style='font-family:Chiller;font-size:7mm'><b>PODAJ LOGIN I HASŁO!!!</b></font><br>
  21.         <font color='black' style='font-family:Chiller;font-size:6mm'><b><a href='logowanie.php' class='haslo'>Powróć</a> do strony logowania i spróbuj jeszcze raz</b></font>";
  22.   }
  23. else
  24.   {
  25.   if ($login_pom == mb_strtolower($login_z_bazy,'UTF-8') && $haslo_z_bazy == $haslo_pom && ($admin == 't' || $admin_glowny == 't') && $zablokowany == 'f')
  26.      {  
  27.      header("Location: administrator.php?id=$id");
  28.      }
  29.   else
  30.      {
  31.      echo "<font color='black' style='font-family:Chiller;font-size:7mm'><b>NIEPOPRAWNY LOGIN LUB HASŁO!!!</b></font><br>
  32.            <font color='black' style='font-family:Chiller;font-size:6mm'><b><a href='logowanie.php' class='haslo'>Powróć</a> do strony logowania i spróbuj jeszcze raz</b></font>";
  33.      }
  34.   }
  35. ?>
Go to the top of the page
+Quote Post
wookieb
post
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak UWAŻNIE czytasz?
Cytat(wookieb @ 2.06.2009, 12:45:42 ) *
2) analogicznie zastosuj porade w mb_strtolower na $login_z_bazy i $login_pom


A jak nadal nie bedzie dzialac to przed if-em wyswietl sobie wszystkie zmienne jakie uzywasz.

Ten post edytował wookieb 2.06.2009, 12:52:03
Go to the top of the page
+Quote Post
marcinp1984
post
Post #19





Grupa: Zarejestrowani
Postów: 112
Pomógł: 0
Dołączył: 17.05.2009

Ostrzeżenie: (0%)
-----


I znów wielkie dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Działa :]
No to teraz mi zostało tylko zrobić forum do mojego projektu... masakra :/ No ale idę walczyć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:38