![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 27 Dołączył: 21.07.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, tworzę swój pierwszy silnik pod sklep internetowy, ma to być najprostszy silnik z kilkoma funkcjami, który z czasem zostanie rozbudowany.
W związku z tym mam kilka pytań(IMG:style_emoticons/default/biggrin.gif) Tworząc sklep wszystkie informacje o produktach oraz podstronach(które mają jakieś funkcje np. dodawanie produktu) będę trzymał w bazie danych. Produkty będę dodawał za pomocą dodawania rekordu oraz będę wyświetlał ten rekord w celu uzyskania "efektu" dodanego przedmiotu. To mniej więcej wiem jak zrobić, lecz problem mam z tym jak dodawać zdjęcia. Np. na stronie jest 10 przedmiotów jeden pod drugim i one mają swoje zdjęcia miniaturki. I właśnie tego na razie nie wiem, dlatego proszę o pomoc:) |
|
|
![]() |
![]()
Post
#2
|
|
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ć? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 07:51 |