Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Prosta rejestracja
ToFFiK
post 17.08.2011, 14:30:12
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 17.04.2010

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


Witajcie, chciałem zrobić prostą rejestracje konta w pliczku PHP, która wyglądała by mniej więcej tak:

Nick: [pole]
Hasło: [w md5]
Wiek: [pole]

musi też sprawdzać największą liczbę "id" i dodawać do tego jeden. Nie chcę gotowca (chyba że już ktoś by pomógł tongue.gif) bo wiem jak tutaj jest na forum z "zrób mi skrypt", lecz byłbym wdzięczny za co najmniej konkretne linki do wytłumaczenia jak coś podobnego zrobić (nie do jakieś głównej php bo o tym wiem, lecz nie wiem pod czym szukac, i najszybciej uczę się na przykładach, które spróbowałbym przerobić pod siebie)

Edit. Już napisałem sobie pod siebie jakąś prostą rejestracje, jednak teraz został mi problem tylko z ID, ponieważ nie wiem jak w zapytaniu


  1. $zapytanie = "INSERT INTO `konta` (`id`, `name`, `Wiek`, `Key`) VALUES (NULL, '$login', '$email', '$pass_md5')";


Zrobić aby dodawało +1 ID zawsze

Edit2. po próbach okazało się że dodaje, lecz mam pytanie

Mam:
  1. <b>ID Skinu:<b><br />
  2. <input type="text" name="skin" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />


  1. $skin = trim($_POST['skin']);


Tylko jak teraz ograniczyć, aby w tym polu, można było wpisać tylko okresline liczby



Ten post edytował ToFFiK 17.08.2011, 15:24:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
mortus
post 17.08.2011, 14:57:20
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Normalnie kolumna id w tabeli użytkowników (u Ciebie konta) powinna być inkrementowana automatycznie (AUTO_INCREMENT), wtedy w zapytaniu pomijasz tę wartość, albo wpisujesz 0 w zestawieniu wartości VALUES. Jeśli jednak kolumna nie jest automatycznie zwiększana, to musisz pobrać zapytaniem wartość ostatniego id (zauważ, że będzie ono największe, a tu może się przydać funkcja MAX()) i na podstawie tej pobranej wartości obliczyć nowe id.
Go to the top of the page
+Quote Post
ToFFiK
post 17.08.2011, 15:25:42
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 17.04.2010

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


Jak napisałem wyżej, działa ID smile.gif
Tylko mam teraz pytanie, które też opisałem wyżej
Go to the top of the page
+Quote Post
mortus
post 17.08.2011, 15:32:38
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Jeśli mogą to być tylko określone liczby, to może lepiej użyć elementu select. Jeśli musi to być pole tekstowe, to trzeba będzie napisać funkcję JavaScript wywoływaną np. po opuszczeniu tego pola. Zadaniem tej właśnie funkcji będzie sprawdzanie, czy podano odpowiednią liczbę i ewentualne zgłaszanie błędu.
Go to the top of the page
+Quote Post
ToFFiK
post 17.08.2011, 15:39:37
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 17.04.2010

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


  1. <option name="skin" value="1">Skin 1</option>
  2. <option name="skin" value="2">Skin 2</option>
  3. <option name="skin" value="3">Skin 3</option>
  4. <option name="skin" value="4">Skin 4</option>


Coś tego typu? Wybacz, tworzę skrypty metodami prób i błędów smile.gif
Chcę żeby po wybraniu Skin X(np. 1) wpisało mi do bazy w polu skin liczbę 1, przy Skin 2 liczbę 2 itd.
Go to the top of the page
+Quote Post
mortus
post 17.08.2011, 15:42:28
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


To element select ma mieć atrybut name, a nie element option.
  1. <select name="skin">
  2. <option value="1" selected="selected">Skin 1</option>
  3. <option value="2">Skin 2</option>
  4. <option value="3">Skin 3</option>
  5. <option value="4">Skin 4</option>


Można również uznać którąś z wartości za domyślną, za pomocą atrybutu selected.

Ten post edytował mortus 17.08.2011, 15:43:23
Go to the top of the page
+Quote Post
toel
post 17.08.2011, 15:57:16
Post #7





Grupa: Zarejestrowani
Postów: 97
Pomógł: 11
Dołączył: 2.02.2010

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


select jest dobry, ale jeszcze będziesz go musiał jakoś zabezpieczyć (a jak ktoś podrobi formularz wink.gif ? )

w php, w miejscu sprawdzania numeru skin'a, zrób sobie tablicę zawierającą wszystkie dozwolone numery, a następnie skorzystaj z in_array() smile.gif
Go to the top of the page
+Quote Post
ToFFiK
post 17.08.2011, 16:05:17
Post #8





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 17.04.2010

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


  1. blad!You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near ''Char', `Key`, 'Cash', 'Kolorskory', 'Plec') VALUES (NULL, 'Jan_Dzban', '34', '3' at line 1


Niestety nie jestem tak zaawansowany w PHP że będę wiedział jak stworzyć od nowa tablicę wink.gif
A ten błąd teraz mi wyrzuca


  1. $zapytanie = "INSERT INTO `konta` (`id`, `name`, `Wiek`, 'Char', `Key`, 'Cash', 'Kolorskory', 'Plec') VALUES (NULL, '$login', '$wiek', '$skin', '$pass_md5', '750', '$kolors', '$plec')";
  2. $idzapytania = mysql_query($zapytanie);


  1. <b>Płeć:<b><br />
  2.  
  3. <select name="plec">
  4. <option value="1" selected="selected">Mezczyzna</option>
  5. <option value="2">Kobieta</option>
  6.  
  7. </select><br />
  8.  
  9.  
  10. <b>ID Skinu:<b><br />
  11. <select name="skin">
  12. <option value="1" selected="selected">Skin 1</option>
  13. <option value="2">Skin 2</option>
  14. <option value="3">Skin 3</option>
  15. <option value="4">Skin 4</option>
  16. </select><br />
  17.  
  18.  
  19. <b>Kolor skóry:<b><br />
  20. <select name="kolors">
  21. <option value="1" selected="selected">Bialy</option>
  22. <option value="2">Czarny</option>
  23. </select><br />



  1. $plec = trim($_POST['plec']);
  2. $skin = trim($_POST['skin']);
  3. $kolors = trim($_POST['kolors']);


Błedy zaczynają się od danych z selecta

Ten post edytował ToFFiK 17.08.2011, 16:07:21
Go to the top of the page
+Quote Post
mortus
post 17.08.2011, 16:07:52
Post #9





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Przy nazwach kolumn użyłeś apostrofów ' zamiast gravisów ` - 'Char', 'Cash', 'Kolorskory', 'Plec'.

EDIT
Cytat
Niestety nie jestem tak zaawansowany w PHP że będę wiedział jak stworzyć od nowa tablicę

Na razie się tym nie przejmuj, jednak pamiętaj, że wszystkie dane, jakie przesyłasz za pomocą formularza trzeba filtrować, choćby funkcją mysql_real_escape_string(), ale nie tylko. Warto sprawdzać, czy np. dane liczbowe są rzeczywiście liczbami, czy łańcuchy znaków nie zawierają jakiejś niechcianej wartości. Poczytaj o SQL Injection choćby w PHPMagazynie.

Ten post edytował mortus 17.08.2011, 16:12:46
Go to the top of the page
+Quote Post
ToFFiK
post 17.08.2011, 16:16:59
Post #10





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 17.04.2010

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


Dzięki, nie wiedziałem nawet że to różnica, dziś praktycznie napisałem pierwsze dwa skrypty pod siebie, a tak tylko w HTMLu robiłem
Go to the top of the page
+Quote Post

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: 14.08.2025 - 03:19