Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [Nie działa]Rejestracja
klozz
post 1.06.2003, 18:06:20
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 winksmiley.jpg))))) - Seth]
Go to the top of the page
+Quote Post
Jabol
post 1.06.2003, 18:42:20
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?
Go to the top of the page
+Quote Post
klozz
post 1.06.2003, 21:23:54
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 smile.gif
Go to the top of the page
+Quote Post
spenalzo
post 1.06.2003, 21:27:15
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ą.


--------------------

Go to the top of the page
+Quote Post
klozz
post 1.06.2003, 21:36:41
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...
Go to the top of the page
+Quote Post
Fo
post 1.06.2003, 22:54:32
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 aaevil.gif

edit: heh bylem pierwszy spenalzo :wink:
Go to the top of the page
+Quote Post
spenalzo
post 1.06.2003, 22:57:34
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.


--------------------

Go to the top of the page
+Quote Post
klozz
post 2.06.2003, 09:14:10
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...
Go to the top of the page
+Quote Post
DeyV
post 2.06.2003, 09:28:23
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..."
Go to the top of the page
+Quote Post
lisu
post 2.06.2003, 09:39:50
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
Go to the top of the page
+Quote Post
klozz
post 2.06.2003, 16:37:08
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 :?
Go to the top of the page
+Quote Post
Fo
post 2.06.2003, 17:02:20
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:
Go to the top of the page
+Quote Post
klozz
post 2.06.2003, 17:09:04
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 :?
Go to the top of the page
+Quote Post
Fo
post 2.06.2003, 17:16:57
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... :?:
Go to the top of the page
+Quote Post
klozz
post 2.06.2003, 17:20:01
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 biggrin.gif
[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]
Go to the top of the page
+Quote Post
lisu
post 2.06.2003, 18:06:46
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
Go to the top of the page
+Quote Post
spenalzo
post 2.06.2003, 21:54:56
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ć.


--------------------

Go to the top of the page
+Quote Post
lisu
post 2.06.2003, 22:50:56
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 *

FROM `users`

WHERE login = 'jozek'
wywala pusta odpowiedz pomimo ze w tabeli mam 'jozek' ?


--------------------
--
Carpe Diem
Go to the top of the page
+Quote Post
klozz
post 3.06.2003, 08:28:18
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 biggrin.gif A tak oftopic to fajne dyskusje mozna wywolac laugh.gif
Go to the top of the page
+Quote Post
spenalzo
post 3.06.2003, 20:32:21
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.


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 14:44