![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Czy ktoś może mi podpowiedzieć dlaczego to mi nie chodzi :?: Teoretycznie powinno, ale coś się wali i wyskakuje za każdym razem "Login jest wolny!.." :?
[php:1:cb6d8acb60]<?php include("admin/config.php"); include("nowy.php"); gora(); $login = $_POST["login"]; @mysql_connect($db_host, $db_admin, $db_pass) or die("Nie można połączyć się z MySql."); @mysql_select_db($db_name) or die("Nie można połączyć się z bazą."); $sql = mysql_query("SELECT * FROM users WHERE login='$login'"); $num = mysql_num_rows($sql); if($num == 1) { echo"Login jest już zarejestrowany."; } else if($num == 0) { echo"Login jest wolny! <A HREF='dalej.php'">Kliknij tutaj</A>"; } ?>[/php:1:cb6d8acb60] Pomocy... [ UTFPHPBBCODE - Use The Fu****g php BBCode ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
a nie powinno być elseif zamiast else if?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Cytat a nie powinno być elseif zamiast else if?
Nawet po zmianie nie działa... A i Seth dzieki za zmiany ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A zamień $_POST na $HTTP_POST_VARS - jak masz starszą wersję PHP4.
I usuń @ sprzed funkcji, może to one sie wywalają. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Nadal nie chodzi, nawet po zmianie, a co do php to mam nowszą wersję a co do "@" to z innymi skryptami działa idealnie więc nie powinno wywalać errorów :? Więc co się dzieje :?: Bo nie mam pojęcia...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
a moze bys jednak usunal to "@" i zobaczyl jaki ci sie blad pokaze ... :wink: jak jest to bald skladni to napewno pokaze sie komunikat, a jesli np. zle dopisuje do bazy login albo zle przesyla jakas zmienna ? usun najpierw to @ i powiedz jaki jest komunikat
![]() edit: heh bylem pierwszy spenalzo :wink: |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Usuń @ i napisz czy coś wyskakuje. Jasnowidzeniem służę na audiotele.
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Po usunięciu '@' skrypt nie działa poprawnie... Wywala cały czas "Login jest wolny!..." :? Nie mam pojęcia dla czego to nie działa...
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Cytat a nie powinno być elseif zamiast else if?
Cytat W php można też napisać 'else if' (dwoma słowami) zamiast 'elseif' (jednym słowem). Z punktu widzenia składni języka, wyrażenia te różnią się od siebie (jeśli znasz się na C, jest to ta sama różnica co w C), jednak wynik ich działania jest ten sam.
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
Kod "WHERE login LIKE '$login'"
-------------------- --
Carpe Diem |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kod "WHERE login LIKE '$login'" Nadal guzik :? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
[php:1:8fab9c0070]echo"Login jest wolny! <A HREF='dalej.php'">Kliknij tutaj</A>";[/php:1:8fab9c0070]
a dlaczego ja widze ze skladnie php mowi na samym koncu ze jest zle ? masz kolo <A HREF='dalej.php' taki znaczek " usun go i zobacz czy nie jest ok... ok ? ma byc wiec tak :[php:1:8fab9c0070]echo "Login jest wolny! <A HREF='dalej.php'>Kliknij tutaj</A>";[/php:1:8fab9c0070] sprawdz czy chodzi i powiedz :wink: |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Ten błędzik zauważyłem już dawno, i nawet po poprawieniu nie diała :?
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
dobra no to nie pozostaje nic innego jak to zebys umiescil jeszcze plik ktory sluzy za przesylanie zmiennej do tego co juz napisales ale nie dziala, moze to klopot ze zmienna jednak jest... :?:
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Oki. Tutaj macie formularz
![]() [php:1:38245711fe]<?php <? include("nowy.php"); gora(); echo "<FORM ACTION="rejestracja.php" METHOD="POST"> Login: <INPUT TYPE="TEXT" NAME="login"><BR> Hasło: <INPUT TYPE="PASSWORD" NAME="pass"><BR> Email: <INPUT TYPE="TEXT" NAME="email"><BR> Login: <INPUT TYPE="TEXT" NAME="login"><BR> <INPUT TYPE="SUBMIT" VALUE="Wyślij"></FORM>"; dol(); ?> ?>[/php:1:38245711fe] |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
no jak masz dwa razy pole login w formularzu to moga byc problemy.
-------------------- --
Carpe Diem |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kod "WHERE login LIKE '$login'" Taki kod jest niepoprawwny z punktu widzenia bezpieczeństwa: powiedzmy że są zarejestrowani użytkownicy o nazwie spen i spenalzo. Dziwnym zbiegiem okoliczności mają takie samo hasło - i co? Użytkownik spen może zalogować się na konto spenalzo... W przypadku logowania musi byc WHERE login='$login'. Można zrobic jeszcze tak (modyfikacja pierwszeo kodu): [php:1:c4fee491d0]<?php $sql = mysql_query("SELECT * FROM users WHERE login='$login' LIMIT 1"); $_t=mysql_fetch_array($sql); if($_t["login"]==$_POST["login"]) { echo"Login jest już zarejestrowany."; } else { echo"Login jest wolny! <A HREF='dalej.php'>Kliknij tutaj</A>"; } ?>[/php:1:c4fee491d0] Masz od razu jeszcze jedno zabezpieczenie. Zobacz czy to będzie działać. -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 100 Pomógł: 0 Dołączył: 25.01.2003 Skąd: mazury, wawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat Kod "WHERE login LIKE '$login'" Taki kod jest niepoprawwny z punktu widzenia bezpieczeństwa: powiedzmy że są zarejestrowani użytkownicy o nazwie spen i spenalzo. .... Moj blad, przyznaje sie bez bicia. ---- ponizej edytowane ---- Chociaz nie wiem czemu uwazasz ze to blad ? utworzylem tabele z polem login, wykonalem zapytanie Kod SELECT *
FROM `users` WHERE login LIKE 'jozek' i phpmyadmin wywalilo mi tylko 1 rekord, pomimo ze w tabeli mam 'jozeka', 'jozekaaaaaa'. Czy jedyna roznica pomiecy LIKE i = jest : Cytat If you are comparing case-insensitive strings with any of the standard operators (=, <>..., but not LIKE) trailing whitespace (spaces, tabs and newlines) will be ignored.
Aha, no i czemu zapytanie Kod SELECT * wywala pusta odpowiedz pomimo ze w tabeli mam 'jozek' ?
FROM `users` WHERE login = 'jozek' -------------------- --
Carpe Diem |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Lisu, co ja bym bez ciebie zrobił... Bo już chciałem wyrzucić kompa przez okno 8) Nie zauważyłem że są dwa pola "login"... Thx
![]() ![]() |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Moj blad, przyznaje sie bez bicia.
---- ponizej edytowane ---- Chociaz nie wiem czemu uwazasz ze to blad ? Tym razem mój błąd: poniższy kod Kod "WHERE login LIKE '$login'"
nie da takiej sytuacji jak opisałem powyżej, ale taki kod już tak: Kod "WHERE login LIKE '%$login%'"
znak procenta powoduje, że szukane są ciągi które zawierają także (a nie tylko) wyrażenie zawarte w zmiennej $login, tzn. że wartość zmiennej może być otoczona innymi znakami. Sorry za zamieszanie. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 14:44 |