Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Prosta rejestracja
Forum PHP.pl > Forum > Przedszkole
ToFFiK
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

mortus
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.
ToFFiK
Jak napisałem wyżej, działa ID smile.gif
Tylko mam teraz pytanie, które też opisałem wyżej
mortus
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.
ToFFiK
  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.
mortus
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.
toel
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
ToFFiK
  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
mortus
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.
ToFFiK
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
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.