tworzenie sklepu internetowego, Problemy i pytania |
tworzenie sklepu internetowego, Problemy i pytania |
3.08.2013, 10:53:35
Post
#21
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Kiedy zrobię tak:
Kod $_SESSION['zle'] = Podano_zle_dane; i to wyświetlę, to wszystko jest ok, ale kiedy już robię tak: Kod $_SESSION['zle'] = Podano zle dane; to jest error. A ja wolałbym to wyświetlić bez underline "_". Można to jakoś przekształcić -------------------- ;)
|
|
|
3.08.2013, 11:37:36
Post
#22
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 36 Dołączył: 1.03.2012 Ostrzeżenie: (0%) |
|
|
|
4.08.2013, 13:05:59
Post
#23
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) |
Rozumiem że jest jakiś początek, no ale takie coś jak walidacja email - to jest konieczność. Tymczasem co tam nie wpiszę to przechodzi
-------------------- Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
|
|
|
5.08.2013, 16:04:21
Post
#24
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Znalazłem takie coś:
Kod function checkEmail($email) { if (!preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)) { return false; } return true; } Ma to za zadanie sprawdzić poprawność formatu adresu email, ale nie za bardzo wiem jak to połączyć z plikiem "rejestracja.php", który jest powyżej. Może mnie ktoś nakierować -------------------- ;)
|
|
|
5.08.2013, 16:15:31
Post
#25
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 36 Dołączył: 1.03.2012 Ostrzeżenie: (0%) |
Obsłużysz to zwykłymi warunkami if/else.
Ten post edytował kristaps 5.08.2013, 16:27:42 |
|
|
5.08.2013, 16:15:44
Post
#26
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 17 Dołączył: 15.12.2012 Ostrzeżenie: (0%) |
|
|
|
13.08.2013, 10:52:01
Post
#27
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
Małe modyfikacje systemu logowania, teraz powinno być lepiej. Dodałem filtrowanie danych, Hashowanie hasła, sprawdzanie budowy adresu email, loginu i hasła.
Demo dostępne tutaj Całość można pobrać tutaj, jeśli komuś się przyda Wygląda to tak: index.php Kod <?php session_start(); mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych"); echo "<center>$_SESSION[zle]</center>"; unset($_SESSION['zle']); echo "<center>$_SESSION[wymagane]</center>"; unset($_SESSION['wymagane']); echo "<center>$_SESSION[uzupelnij]</center>"; unset($_SESSION['uzupelnij']); echo "<center>$_SESSION[dostep]</center>"; unset($_SESSION['dostep']); echo "<center>$_SESSION[logut]</center>"; unset($_SESSION['logut']); ?> <html> <center> <form method="POST" action="logowanie.php"> <b>login:</b><input type="text" name="login"><br /> <b>haslo:</b><input type="password" name="haslo"><br /> <input type="submit" value="zaloguj się" name="zaloguj"><br /> </form> <b>Jesli nie jesteś zalogowany kliknij </b><a href="formularz.php"><b>tutaj</b></a> </center> </html> logowanie.php Kod <? session_start(); //rozpoczyna sesję mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych"); function filtruj($filtracja) { if(get_magic_quotes_gpc()) $filtracja = stripslashes($filtracja); //usuwa slashe return mysql_real_escape_string(htmlspecialchars(trim($filtracja))); // usuwa spacje, tagi html oraz niebezpieczne znaki } $login = filtruj($_POST['login']); //pobiera dane z formularza $haslo = filtruj($_POST['haslo']); if (isset($_POST['zaloguj'])) //sprawdza czy użytkownik wcisną przycisk zaloguj if(!empty($_POST['login']) AND !empty($_POST['haslo'])) //sprawdza czy użytkownik wypełnił wszystkie pola if (mysql_num_rows(mysql_query("SELECT login haslo FROM uzytkownicy1 WHERE login = '".$login."' && haslo = '".md5($haslo)."' ")) > 0 ) //sprawdza czy użytkownik o podanym loginie i haśle istnieje w bazie { $_SESSION['zalogowany'] = '1'; //zapisuje sesję $_SESSION['login'] = $login; header("Location: dziala.php"); } else //jeśli użytkownik o podanym loginie i haśle nie istnieje wykonuje instrukcje { $_SESSION['zle'] = 'Podano zle dane'; header("Location: index.php"); } else //jeśli użytkownik nie wypełnił wszystkich pól { $_SESSION['wymagane'] = 'Wypełnij wszystkie pola'; header("Location: index.php"); } else //jeśli ktoś próbuje wejść na stronę z adresu { $_SESSION['uzupelnij'] = 'Najpierw uzupelnij wszystkie pola'; header("Location: index.php"); } ?> formularz.php Kod <? session_start(); mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych"); echo "<center>$_SESSION[uzupelnij]</center>"; unset($_SESSION['uzupelnij']); echo "<center>$_SESSION[wymagane]</center>"; unset($_SESSION['wymagane']); echo "<center>$_SESSION[adres]</center>"; unset($_SESSION['adres']); echo "<center>$_SESSION[log]</center>"; unset($_SESSION['log']); echo "<center>$_SESSION[has]</center>"; unset($_SESSION['has']); echo "<center>$_SESSION[zle]</center>"; unset($_SESSION['zle']); echo "<center>$_SESSION[email]</center>"; unset($_SESSION['email']); echo "<center>$_SESSION[haslo]</center>"; unset($_SESSION['haslo']); echo "<center>$_SESSION[dodano]</center>"; unset($_SESSION['dodano']); ?> <html> <center> <form method="POST" action="rejestracja.php"> <b>Twoj login:</b><input type="text" name="login"><br /> <b>Twoje haslo:</b><input type="password" name="haslo"><br /> <b>Powtorz haslo:</b><input type="password" name="haslo1"><br /> <b>Adres email:</b><input type="text" name="email"><br /> <input type="submit" value="zarejestruj się" name="zarejestruj"><br /> </form> <b>Powrot na strone logowania </b><a href="index.php"><b>tutaj</b></a> </center> </html> rejestracja.php Kod <?php session_start(); mysql_connect("host", "login", "haslo")or die("Nie można nawiązać połączenia z bazą"); //łącze z bazą danych mysql_select_db("baza")or die("Wystąpił błąd podczas wybierania bazy danych"); function filtruj($filtracja) { if(get_magic_quotes_gpc()) $filtracja = stripslashes($filtracja); //usuwa slashe return mysql_real_escape_string(htmlspecialchars(trim($filtracja))); // usuwa spacje, tagi html oraz niebezpieczne znaki } $login=filtruj($_POST['login']); //pobiera dane z formularza $haslo=filtruj($_POST['haslo']); $haslo1=filtruj($_POST['haslo1']); $email=filtruj($_POST['email']); if (isset($_POST['zarejestruj'])) //sprawdza czy użytkownik wcisną przycisk zarejestruj if (!empty($_POST['login']) AND !empty($_POST['haslo']) AND !empty($_POST['haslo1']) AND !empty($_POST['email'])) //sprawdza czy zostały uzupełnione wszystkie pola if(preg_match('/^[a-zA-Z0-9\.\-_]+\@[a-zA-Z0-9\.\-_]+\.[a-z]{2,4}$/D', $_POST['email'])) //sprawdza poprawność struktury adresu email if(preg_match('/^[a-zA-Z0-9\-_]{4,30}$/D', $_POST['login'])) //sprawdza poprawność struktury loginu if(preg_match('/^[a-zA-Z0-9\-_]{6,30}$/D', $_POST['haslo'])) //sprawdza poprawność struktury hasła if ($haslo == $haslo1) //sprawdza czy podane chasła są takie same if (mysql_num_rows(mysql_query("SELECT email FROM uzytkownicy1 WHERE email = '".$email."' ")) == 0 ) //sprawdza czy użytkownik o podanym adresie email istnieje if (mysql_num_rows(mysql_query("SELECT login FROM uzytkownicy1 WHERE login = '".$login."' ")) == 0 ) //sprawdza czy użytkownik o podanym logonie istnieje { mysql_query("INSERT INTO `uzytkownicy1` (`login`,`haslo`,`email`) VALUES ('".$login."','".md5($haslo)."','".$email."')"); //zapisuje do bazy $_SESSION['dodano'] = 'Dodano pomyslnie'; header("Location: formularz.php"); } else { $_SESSION['haslo'] = 'Uzytkownik o podanym loginie juz istnieje'; header("Location: formularz.php"); } else { $_SESSION['email'] = 'Uzytkownik o podanym adresie email juz istnieje'; header("Location: formularz.php"); } else { $_SESSION['zle'] = 'Hasla nie sa identyczne'; header("Location: formularz.php"); } else { $_SESSION['has'] = 'Haslo jest za krotkie, lub zawiera nie dozwolone znaki<br />( min. 6 max. 30 znakow, wtym - i _ )'; header("Location: formularz.php"); } else { $_SESSION['log'] = 'Login jest za krotki, lub zawiera nie dozwolone znaki<br />( min. 4 max. 30 znakow, wtym - i _ )'; header("Location: formularz.php"); } else { $_SESSION['adres'] = 'Nie poprawny adres email'; header("Location: formularz.php"); } else { $_SESSION['wymagane'] = 'Wypełnij wszystkie pola'; header("Location: formularz.php"); } else { $_SESSION['uzupelnij'] = 'Najpierw uzupelnij wszystkie pola'; header("Location: formularz.php"); } ?> dziala.php (jakaś strona dla zalogowanych) Kod <? session_start(); if($_SESSION['zalogowany'] == 1) { echo "Witaj $_SESSION[login]<br />Tu maja dostep tylko zalogowani<br /><a href=wyloguj.php>Wyloguj się</a>"; } else { $_SESSION['dostep'] = 'Nie masz prawa dostepu'; header("Location: index.php"); } ?> wyloguj.php Kod <? session_start(); if(isset($_POST['wyloguj'])) $_SESSION['zalogowany'] = '0'; session_destroy(); header("Location: logut.php"); ?> logut.php Kod <? session_start(); $_SESSION['logut'] = 'Zostałeś wylogowany'; header("Location: index.php"); ?> Jak można wyświetlić np. 5 najnowszych rekordów z bazy. Mam pole z datą, lecz rekordy ustawiają się w bazie w dół, czyli najnowsze na dole. I dlatego nie mogę ich wyświetlić poprzez dodanie Kod LIMIT 5 ponieważ to mi pokaże te pierwsze, czyli ostatnie. Można to jakoś zmienić? -------------------- ;)
|
|
|
13.08.2013, 12:36:41
Post
#28
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) |
Tak można proszę poszukać pod frazą "mysql order by"
-------------------- |
|
|
19.08.2013, 17:51:13
Post
#29
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) |
W bazie mam zapisane kategorie np. 'Dom i AGD', jeśli to prześlę za pomocą GET i wyświetlę to pojawia mi się samo 'Dom' ponieważ jest to napisane ze spacjami.
Gdy natomiast zmienię nazwę kategorii na 'Dom_i_AGD' to wtedy wyświetla mi się cała nazwa. Czy istnieje możliwość usunięcia '_' już po odebraniu danych? @ Działa to mniej więcej tak po kliknięciu w kategorie Komputery lub Dom_i_AGD: Efekt -------------------- ;)
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 23:07 |