ďťż
Podstrony
|
telcocafeWitam<HTML> <HEAD> <TITLE>System rejestracji</TITLE> </HEAD> <BODY> <FORM METHOD='post' ACTION='<?php $PHP_SELF ?>'> <TABLE BORDER=1> <TR> <TH>Podaj swój login:</TH> <TD><INPUT TYPE='text' NAME='login'></TD> </TR> <TR> <TH>Podaj hasło:</TH> <TD><INPUT TYPE='password' NAME='haslo1'></TD> </TR> <TR> <TH>Ponowanie podaj hasło:</TH> <TD><INPUT TYPE='password' NAME='haslo2'></TD> </TR> <TR> <TH>Podaj swoje imię:</TH> <TD><INPUT TYPE='text' NAME='imie'></TD> </TR> <TR> <TH>Podaj swoje nazwisko:</TH> <TD><INPUT TYPE='text' NAME='nazwisko'></TD> </TR> <TR> <TD><INPUT TYPE='submit'></TD><TD><INPUT TYPE='reset'></TD> </TR> </TABLE> </FORM> <?php function brak_danych() // funkcja wyświetla komunikat błędu w przypadku braku jednej z danych { echo "Jedno z okienek nie zostało wypełnione lub została wypełniona błędnie. Prosimy o sprawdzenie wprowadzonych danych"; } // sprawdzenie czy wszystkie dane zostały wypełnione i czy są wypełnione poprawnie if($_POST['login'] == "") brak_danych(); if($_POST['haslo1'] == "") brak_danych(); if($_POST['haslo2'] == "") brak_danych(); if($_POST['imie'] == "") brak_danych(); if($_POST['nazwisko'] == "") brak_danych(); // łączymy się z bazą oi czym wysyłamy dane do tabeli $id_polaczenia = mysql_connect('localhost', 'root', 'krasnal'); //sprawdzenie połączenia z bazą if(!$id_polaczenia) echo "nie udało się nawiązać połączenia"; else echo "nawizanie połączenia z bazą zakończyło się sukcesem"; mysql_select_db("baza", $id_polaczenia); $id = mysql_insert_id($id_polaczenia); $login = $_POST['login']; $haslo = $_POST['haslo1']; $imie = $_POST['imie']; $nazwisko = $_POST['nazwisko']; $query = "INSERT INTO user VALUES('$id', '$login', '$haslo', '$imie', '$nazwisko', curdate(), NULL)"; $wynik = mysql_query($query); //sprawdzenie czy wysłanie danych się udało if(!$wynik) echo "nie udało się wysłać danych"; ?> </BODY> </HTML> To jest kod pisany na szybko od ręki. Ma on na celu wyświetlenie formularza rejestracji, sprawdzenie poprawności danych i jeśli wszystko działa to wysłanie ich do tabeli. Niestety za każdym razem gdy wysyłam te dane nie są one zapisane. Według zabezpieczenia $wynik zostaje zakończony niepowodzeniem. czyli wyświetla się napis "nie udało się wysłać danych" Sprawdziłem i chyba pozbyłem się wszystkich literuwek, ale może gdzieś jest jakiś błąd logiczny albo coś. Tak na marginesie...wiem, że moje "zabezpieczenia" poprawności danych są mocno niedopracowane. Narazie jednak chciałbym uruchomić ten skrypt. Ktoś widzi błąd? //Edit - jeszcze jedno Otóż jest taka sprawa. Montuje sobie baze danych która na początku miałą przechowywać info o użytkowniku, ale jak to w życiu bywa musze ją troche przerobić bo jej zadania zostały powiększone. Otóż chodzi o ustelenie praw. Kiedyś pracowałem z pewną mądrą książka i miałem przykładowe tabele gdzie były uprawnienia ustawione. Moje pytanie brzmi. Jak zmontować tabele uprawnień użytkownika? Jak zrobić tak żeby jeden user był adminem czyli miał wszystkie prawa a inny żadnych ? Użytkownik Dawid_Fix edytował ten post 18 październik 2005, 20:01 Na początku <FORM METHOD=post ACTION="reg.php">Zawartość pliku reg.php: <?php $polaczenie = mysql_connect('localhost','root','twoje_haslo'); mysql_select_db('twoja_baza',$polaczenie); $sql = "INSERT INTO user VALUES('$id','$login','$haslo','$imie','$ nazwisko', curdate(),NULL)"; $wynik = mysql_query($sql,$polaczenie); ?> Jeśli chodzi o logowanie się do Admina i zwykłego Usera, to w tabeli user w MySQL-u dodaj jeszcze pole status. Wtedy w pliku reg.php wyedytuj linijkę: $sql = "INSERT INTO user VALUES('$id','$login','$haslo','$imie','$ nazwisko', curdate(),NULL,'user')"; Dodając standardowo status user. Utwórz teraz plik logowanie.php i jego zawartość uzupełnij następująco: <html> <head><title>Logowanie</title></head> <body> <form action="panel.php" method=post> Login: <input type=text name=login> Hasło: <input type=password name=haslo><br> <input type=submit value=Zaloguj> </form> </body> </html> Będzie to formularz logowania. Plik panel.php: <?php // jeśli nie wypelniono wszystkich pól, przekierowuje z powrotem if ((!$_POST[login]) || (!$_POST[haslo])) { header("Location: logowanie.php"); exit; } $polaczenie = mysql_connect('localhost','root','twoje_haslo'); mysql_select_db('twoja_baza',$polaczenie); $sql = "SELECT * FROM user WHERE status = $_POST[login]"; $wynik = mysql_query($sql,$polaczenie); $status = mysql_fetch_array($wynik); $status = $status['user']; if ($status == 'admin') { echo 'Witamy Adminie!'; } elseif ($status == 'user') { echo 'Witamy Userze!'; } ?> Powinno być OK B) Użytkownik virus_jc edytował ten post 21 październik 2005, 15:26 |
|||
Sitedesign by AltusUmbrae. |