![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Oto mój skrypt do rejestracji nowych użytkowników:
<? $polaczenie = mysql_connect("localhost", "w", "e"); mysql_select_db("w", $polaczenie) or die ("Nie mozna sie połączyć"); $imie=$_POST['imie']; $nazwisko=$_POST['nazwisko']; $email=$_POST['email']; $login=$_POST['login']; $haslo=$_POST['haslo']; $haslo2=$_POST['haslo2']; $rodzaj=$_POST['rodzaj']; if ($haslo != $haslo2) { echo "Hasła nie są takie same!"; } $wynik=mysql_query("SELECT * FROM users WHERE login=$login"); echo mysql_error(); if ($wynik!==0) { echo "Już taki login istnieje!"; } $zapis="INSERT INTO users(imie,nazwisko,email,login, haslo,rodzaj, data) VALUES('".$_POST['imie']."', '".$_POST['nazwisko']."', ''".$_POST['email']."', ''".$_POST['haslo']."', ''".$_POST['haslo2']."', ' '".$_POST['rodzaj']."', ')"; $wynik=mysql_query($zapis); if (!$wynik) { echo "Rejestracja zakończona pomyślnie"; exit; } else { echo ('Rejestracja nie powiodła sie! '); exit; } ?> Przy wypełnianiu formularza np we wszystkie pola wpisuje xxx tp wyświetla się komunikat : "Unknown column 'xxx' in 'where clause'Już taki login istnieje!Rejestracja zakończona pomyślnie". Co należy zmienić żeby prawidłowo dodawało użytkowników do bazy?? |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
login=$login
na login='$login' tekst w mysql trzeba brac w ciapki prosze uzywac bbcode |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź,zrobiłem tak jak powiedziałeś,jednak teraz wyświetla sie komunikat : "Już taki login istnieje!Rejestracja zakończona pomyślnie." Chyba musiałem popełnić jakiś błąd w SQL bo nie dodaje użytkowników do bazy.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
dziwnie masz to skonstruowane. mimo ze bedziesz mial, iz login istnieje, to i tak przechodzisz dalej do dodawania usera. gdzie sens i logika? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
pozatym zle sprawdzasz istnienie usera. mysql_query o ile nie ma bledow mysql zwraca dla selecta resource, czyli twoj warunek zawsze bedzie sprawdzony. powiino to byc tak:
co do niedodawania to walnij se : i zobacz czy ci nie pluje bledami pomine juz ten szczegol: ze jezeli zapytanie wypluje ci bledy to ty piszesz ze wszystko jest ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Teraz po kliknięciu Rejestruj wyskakuje błąd : "Column count doesn't match value count at row 1"
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no juz moglbys sam poszukac. Mowi to, iz nie pasuje liczba kolumn ktore wkladasz
Mowisze ze wkladasz: imie,nazwisko,email,login, haslo,rodzaj, data a w rzeczywostosci wkladasz: imie,nazwisko,email,haslo,haslo2,rodzaj wiec chyba cos sie nie zgadza |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuje,rejestracja prawie idealnie działa,ale uważam że to tylko drobny błąd.Mianowicie w formularzu , mam pole rodzaj zablokowane i wpisana wartość jest zawsze "1",natomiast po rejestracji w bazie danych zapisuje mi rodzaj jako 0.
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) przez jakie pole jest reprezentowane w formularzu to zablokowane (pokaz jego html)
2) w tabeli jaki typ ma to pole 3) skoro zawsze jest 1, to po co je tam walic? wkladaj do bazy od razu 1 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ad.1
<td><input type="text" disabled="disabled" value="1" name="rodzaj" /></td> Ad.2 W tabeli pole rodzaj ma wartość int. Ad.3 Pole rodzaj jest mi potrzebne ,ponieważ przy logowaniu skrypt sprawdza rodzaj.Jeżeli jest 0 to otwiera się strona admina,1-strona użytkownika.Jestem początkujący w php,więc nie wiem w jak inny sposób zapisać automatycznie przy każdej rejestracji rodzaj 1 |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
disabled="disabled"
pola tego typu nie sa przesylane formularzem, wiec masz 0 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) daj readonly albo najlepiej zrob hidden ad3) no zamiast wpisywac to z posta przez $_POST['rodzaj'] to wpisz bezczelnie 1. no chyba ze jednak ten rodzaj w jakis posob sie zmienia gdzies tam to zrob jak pisalem wczesniej |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zakładając że chce "bezszczelnie wpisywać 1" to jak ma wyglądać zapytanie,żeby zawsze dodawało 1 i nie potrzebne będzie do tego pole w formularzu??
Obecne zapytanie:
|
|
|
![]()
Post
#12
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Po prostu zamiast zmiennej wpisujesz ręcznie do zapytania 1 (w zmiennej tez możesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 1.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem to jak napisałeś ,niestety przy rejestracji zwraca 0(pewnie interpretuje to jako false).Wiem że napewno sie da zrobić tak żeby zawsze 1 zapisywało,problem tkwi zapewne w szczegółach.
|
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ale to pole to int? jak tak to zamiast
.., '1',... ma byc ..., 1,.... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:16 |