• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Moja pierwsza strona z bazą danych

VPS Starter Arubacloud
0 głosów
956 wizyt
pytanie zadane 24 grudnia 2017 w Nasze projekty przez DudSon Użytkownik (680 p.)
edycja 21 lutego 2018 przez DudSon
Chciałbym się pochwalić moją pierwszą stroną pracującą razem z bazą danych. Na razie skupiłem się na php, bo teraz mi najbardziej na tym zależy. W najbliższym czasie skupię się na html i css, bo to akurat mam trochę opanowane. Zapraszam do testowej rejestracji i dodawania ogłoszeń, będzie mi bardzo miło.

Adres: www.mojatestowa.pl/lokalne

Nowa wersja : http://www.mojatestowa.pl/nowylayout/index.php
komentarz 24 grudnia 2017 przez kosaa Stary wyjadacz (14,130 p.)
edycja 24 grudnia 2017 przez kosaa

nie przychodzi mi mail z rejestracja :(

@EDIT
outlook robi problemy, po podaniu gmaila dziala

@EDIT2
HACKED ;)

komentarz 24 grudnia 2017 przez DudSon Użytkownik (680 p.)
Dobre, jutro będę naprawiał. Dziś już jestem zmęczony i wolę się zająć nowym layout'em dla relaksu. Zdradzisz jak to zrobiłeś?
komentarz 24 grudnia 2017 przez kosaa Stary wyjadacz (14,130 p.)
edycja 25 grudnia 2017 przez kosaa
curl -v --cookie "PHPSESSID=sessid" --data "title=title&category=Hacked&content=tekst

 

komentarz 24 grudnia 2017 przez DudSon Użytkownik (680 p.)
Trochę to wykracza poza moją wiedzę. Nawet nie wiem co miałbym z tym zrobić, ale dojdę i do tego.
komentarz 24 grudnia 2017 przez kosaa Stary wyjadacz (14,130 p.)
ogolnie chodzi o to ze nie sprawdzasz tego co przychodzi od uzytkownika, trzeba to zawsze weryfikowac, czy to co dostajesz w zmiennej POST jest prawidlowe

pokazalem Ci na prostym przykladzie ze da sie te wartosci podmienic :)
komentarz 24 grudnia 2017 przez DudSon Użytkownik (680 p.)
Coś tam o tym czytałem i oglądałem w pewnych polach jest to sprawdzane, ale zdaję sobie sprawę, że nie wszędzie. W liście to nawet nie wiedziałem, że trzeba sprawdzać. Dzięki za zainteresowanie. Jutro wrzucę na Github'a jak tylko się dowiem jak.
komentarz 24 grudnia 2017 przez kosaa Stary wyjadacz (14,130 p.)

1. waliduj parametry ktore dostajesz ^^

2. ograniczyl bym tez liczbe ogloszen jakie uzytkownik moze dodac na jeden dzien

3. obstawiam ze masz pola w bazie typu text - lepszym pomyslem bylo by varchar z ograniczeniem

komentarz 25 grudnia 2017 przez kosaa Stary wyjadacz (14,130 p.)
edycja 25 grudnia 2017 przez kosaa

4. podczas rejestracji warto by sprowadzic maila ktorego poda uzytkownik do malych znakow a dopiero pozniej sprawdzac czy istnieje

mozna zarejestrowac sie dwa razy tym samym mailem

mail@test.pl i MAil@test.pl traktowane sa jako rozne

6 odpowiedzi

0 głosów
odpowiedź 24 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)
A możesz wrzucić kod zródłowy na Githuba?
komentarz 24 grudnia 2017 przez DudSon Użytkownik (680 p.)
Spoko, tylko się dowiem jak to działa. Dziś już nie mam siły jutro ogarnę.
komentarz 25 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)
I co z tym Githubem ;) jestem bardzo ciekawy kodu.
komentarz 25 grudnia 2017 przez DudSon Użytkownik (680 p.)
Nie wiem jak to obsłużyć wkleję wszystko zaraz tutaj. Też jestem ciekaw co powiecie.
0 głosów
odpowiedź 25 grudnia 2017 przez DudSon Użytkownik (680 p.)
edycja 28 grudnia 2017 przez DudSon
Całość już wgrałem na https://github.com/DudSon007/ogloszenia
komentarz 26 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)
Nie no spoko, ale nie lepiej wrzucić to na Github'a? Wiesz w przyszłości Ci się przyda.
komentarz 26 grudnia 2017 przez DudSon Użytkownik (680 p.)
Wiem, że lepiej, już mam kurs do tego na razie przerabiam podstawy git'a, ale widzę, że Github jest dalszych rozdziałach. Czy ja dobrze rozumiem, że w tym git'cie tworzę takie jakby checkpoint'y przy pomocy commit i mogę do dowolnego w dowolnym momencie wrócić jak coś zepsuję w kodzie?
komentarz 27 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)
Tak, możesz też w łatwy sposób podzielić się kodem źródłowym swojego projektu.
komentarz 27 grudnia 2017 przez DudSon Użytkownik (680 p.)
Powiedz mi czy możesz teraz przeglądać te pliki które wgrałem: https://github.com/DudSon007/ogloszenia
komentarz 27 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)

Tak mogę laugh Przyda Ci się w przyszłości. Widzę, że nie poddałeś się z Githubem cheeky 

Masz jeszcze jakieś inne ciekawe projekty?

komentarz 27 grudnia 2017 przez DudSon Użytkownik (680 p.)
Mam coś fajnego przez dwa dni świąteczne zrobiłem nową szatę graficzną dla mojej strony z ogłoszeniami: https://github.com/DudSon007/nowylayout
Tylko jest problem z responsywnością. Pierwszy raz coś na flexbox'ie robiłem i w trybie responsywnym na chrome jak zmniejszam płynnie szerokość to widzę, że kolumna po prawej z miejscem na logowanie i rejestrację robi się szersza od tej po lewej stronie z kategoriami i rejonami świata. Tutaj na serwerze: http://mojatestowa.pl/nowylayout/ Daj znać jak Ci się podoba.
komentarz 27 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)

Ogólnie to szata graficzna spoko. 

Ja sam mam zawsze problem z kolorami...

Polecam Ci stronę html5up.net na tej stronie znajdziesz szablony do wykorzystania za darmo. Ja osobiście korzystam z nich. Zawsze coś tam można przerobić ;) 

komentarz 27 grudnia 2017 przez DudSon Użytkownik (680 p.)
Wole z szablonów na razie korzystać, bo chce się jak najwięcej sam nauczyć.  Chyba, że patrzeć na szablon i pisać swój kod Mam taki program nazywa się Artisteer generuje właśnie szablony. Otwieram sobie szablon na jednej monitorze a na drugim go kopiuje, ale pisząc cały kod samodzielnie. Najwyżej czcionki w tym wygenerowanym sprawdzam no i kolory kopiuję, ale kod css, html i niedługo dojdzie do tego php w całości mój własny. Tak czy inaczej dzięki za stronę na pewno skorzystam
komentarz 27 grudnia 2017 przez Paweł123 Nałogowiec (33,500 p.)
Ok, fajne masz podejście do nauki.
0 głosów
odpowiedź 29 grudnia 2017 przez DudSon Użytkownik (680 p.)

Mam takie pytanie odnośnie mojej strony w tych plikach które udostępniłem php jest na górze przed html da się to zrobić w osobnych plikach? Chodzi mi np. o ten fragment pliku index.php (na dole) tam jest przekazanie zawartości formularza przez post i to jest dla mnie problem, bo prosty fragment kodu to umiem dodać poleceniem include.

<?php  
 +	session_start();
 +	if (isset($_SESSION ['login']) && $_SESSION ['login'] = true) 
 +	{
 +		
 +	}
 +	else
 +	{
 +		header('Location:login.php');
 +	}
 +
 +	$title = '';
 +	$category = '';
 +	$content = '';
 +	$nickname = '';
 +	$email = '';
 +	$errorTitle = '';
 +	$errorCategory = '';
 +	$errorContent = '';
 +	$errorNickname = '';
 +	$errorEmail = '';
 +	$good = 0;
 +
 +	/* walidacja formularza */
 +
 +	if( isset($_POST['ok']) )
 +	{
 +		$title = $_POST['title'];
 +		$category = $_POST['category'];
 +		$content = $_POST['content'];
 +		/*
 +		$nickname = $_POST['nickname'];
 +		*/
 +		$nickname = $_SESSION['username'];
 +		/*$email = $_POST['email'];*/
 +		if ( ! $title )
 +		{
 +			$errorTitle = 'Tytuł jest obowiązkowy aby dodać ogłoszenie';
 +		}
 +		if ( $category == "sellect" )
 +		{
 +			$errorCategory = 'Musisz wybrać kategorię';
 +		}
 +		if ( ! $content )
 +		{
 +			$errorContent = 'Musisz podać treść ogłoszenia';
 +		}
 +		/*
 +		if ( ! $nickname )
 +		{
 +			$errorNickname = 'Musisz się podpisać';
 +		}
 +		else if ( $nickname && strlen($nickname) < 6 )
 +		{
 +			$errorNickname = 'Podpis musi mieć minimum 6 znaków';
 +		}
 +		if ( !$email )
 +		{
 +			$errorEmail = 'Musisz podać adres email';
 +		}
 +		else if ( $email && ! filter_var($email, FILTER_VALIDATE_EMAIL))
 +		{
 +			$errorEmail = 'Adres email musi mieć poprawny format';
 +		}
 +		/* Wysyłanie email */
 +		if( ! $errorTitle && ! $errorCategory && ! $errorContent && ! $errorNickname && ! $errorEmail )
 +		{
 +			$to = $email;
 +			$subject = 'Właśnie dodałeś ogłoszenie';
 +			$message = 'Twoje ogłoszenie zostało dodane pomyślnie';
 +			$emailSent = mail($to, $subject, $message);
 +			$good = 1;
 +		}
 +	}
 +
 +	/* dodawanie nowego ogłoszenia */
 +	include('resources/db_connect.php');
 +	if ( isset($_POST['ok']) && $good == 1 )
 +	{
 +		echo $nickname;
 +		$title = $_POST['title'];
 +		$category = $_POST['category'];
 +		$content = $_POST['content'];
 +		$nickname = $_SESSION['username'];
 +		/*$email = $_SESSION['email'];*/
 +		$title = htmlentities($title, ENT_QUOTES, "UTF-8");
 +		$category = htmlentities($category, ENT_QUOTES, "UTF-8");
 +		$content = htmlentities($content, ENT_QUOTES, "UTF-8");
 +		$nickname = htmlentities($nickname, ENT_QUOTES, "UTF-8");
 +
 +		$statement = $mysqli->prepare("INSERT classifieds (title, category, content, nickname) VALUES (?,?,?,?)");
 +		$statement->bind_param("ssss", $title, $category, $content, $nickname);
 +		$statement->execute();
 +		$statement->close();
 +
 +		header("Location:index.php");
 +	}
 +?>
 +<!DOCTYPE html>
 +<html lang="en">
 +<head>
 +	<meta charset="UTF-8">
 +	<title>Ogłoszenia lokalne</title>
 +	<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
 +	<link rel="stylesheet" href="style/style.css">
 +</head>
 +<body>
 +	<header>
 +		<?php include("resources/header.php"); ?><!-- Dołączenie nagłówka strony wraz z menu -->
 +	</header>
 +
 +	<main class="container">
 +		<div class="addForm">
 +			<h2>Dodaj ogłoszenie</h2>
 +			
 +			<?php if ( $emailSent == 1 ) { ?>
 +				<span class = "greenLabel">
 +					<?php echo 'Ogłoszenie zostało dodane. Potwierdzenie dodania ogłoszenia zostało wysłane na twój adres email' ?>
 +				</span>
 +			<?php } ?>
 +			<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 +								
 +				<div class="requiredFiled">
 +					<label for="Tytuł ogłoszenia">Tytuł ogłoszenia:</label>
 +					<?php if ( $errorTitle != null ) { ?>
 +						<span class = "redLabel">
 +							<?php echo $errorTitle; ?>
 +						</span>
 +					<?php } ?>
 +					<input type="text" name="title" id="title" value="<?php echo $title; ?>">
 +				</div>
 +
 +				<div class="requiredFiled">
 +					<label for="Wybór kategorii">Wybierz kategorię:</label>
 +					<select name="category" id="category">
 +						<option value="sellect">Wybierz kategorię</option>
 +						<option value="Kupię">Kupię</option>
 +						<option value="Sprzedam">Sprzedam</option>
 +						<option value="Zamienię">Zamienię</option>
 +					</select>

 

0 głosów
odpowiedź 29 grudnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Polecam zarzucić korzystanie z mysqli na rzecz np. PDO. Jeśli dobrze pamiętam to w PHP7 chyba mysqli zostało wycofane, albo zalecane do wycofania (dawno już nie pisałem w PHP to nie pamiętam na 100%).

I druga sprawa, to polecam dane konfiguracyjne do bazy danych wyrzucić w oddzielny plik np. database_config i objąć go plikiem .gitignore. Teraz nie ma problemu, ale za chwilę jak zrobisz jakiś projekt na zdalnej bazie to lepiej nie udostępniać publicznie jej danych :) Można za to wygenerować kopię bazy, którą każdy może sobie samodzielnie zaimportować lokalnie lub na swoim serwerze, jeśli korzystasz z MySQL to plik taki można wygenerować np. poleceniem mysqldump, albo z poziomy phpmyadmin.

Ale to takie uwagi bardziej na przyszłość do kolejnych projektów :)

Pozdrawiam i życzę powodzenia w kodowaniu!
komentarz 29 grudnia 2017 przez DudSon Użytkownik (680 p.)
edycja 29 grudnia 2017 przez DudSon
Dzięki za sugestie, mysqli z tego co wiem jest nową wersją i jak najbardziej obowiązuje w php 7 za to stary model podłączenia został już z 7 usunięty. Mogę się oczywiście mylić. Dziękuję też za zwrócenie uwagi na to aby objąć gitignore plik połączeniowy z bazą, bo rzeczywiście go udostępniłem na github'ie. Nie pomyślałem o tym w ogóle a to wybitnie głupie. Teraz zresztą nie wiem jak to usunąć, ale zaraz posiedzę.

P.S. Plik połączeniowy już usunięty.
komentarz 29 grudnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)
https://github.com/DudSon007/ogloszenia/commit/ed2b0a900d6c8a50fe3540e2619319ed5b1ebec3

a tak można go sobie odtworzyć wchodząc w historię commitów :p

Nie robię tego złośliwie, chcę Ci tylko pokazać, jak ważne jest dokładne przemyślenie co wsadzasz na publiczne repozytorium...

Aby to naprawić można pokombinować z poleceniem "git rm -r --cached" jeśli dobrze pamiętam (ale jeśli Cię to zainteresuje to poczytaj w dokumentacji git bo robiłem to kiedyś tylko raz i już nie pamiętam czy na pewno podaję dobrą komendę, po niej trzeba zrobić nowego pusha oczywiście).
komentarz 30 grudnia 2017 przez DudSon Użytkownik (680 p.)
Nie za bardzo wiem gdzie mam te komendy wpisywać, na razie obsługiwałem to repozytorium przez przeglądarkę a nie przez git'a. Domyślam się, że te komendy muszę tam podawać tylko nie wiem jak to ze sobą sparować.
komentarz 30 grudnia 2017 przez Tomek Sochacki Ekspert (227,510 p.)
Tutaj masz fajny poradnik o GIT: https://git-scm.com/book/pl/v1

Sam z niego korzystałem i do dziś czasami zdarza mi się tam zaglądać. Fajnie napisany z przykładami.

Najlepiej poćwicz sobie GIT lokalnie u siebie, sam github to tylko pewnego rodzaju "dodatek".
0 głosów
odpowiedź 21 lutego 2018 przez DudSon Użytkownik (680 p.)
Proszę o próbę rejestracji na stronie http://www.mojatestowa.pl/nowylayout/index.php bo coś mi nie działa i nie wiem czy to tylko u mnie błąd wywala czy coś jest źle ze stroną. Na localhost'cie działa pięknie. TYLKO KOD AKTYWACYJNY SIĘ NIE WYSŁA NA EMAIL więc proszę sobie zapisać. Jeszcze tego nie naprawiłem.
komentarz 21 lutego 2018 przez Jedras Maniak (54,860 p.)
Zgaduję, że w kodzie korzystasz z funkcji mail()?
komentarz 21 lutego 2018 przez DudSon Użytkownik (680 p.)
Tak, a coś w tym złego?
komentarz 21 lutego 2018 przez Jedras Maniak (54,860 p.)
Generalnie to korzystamy raczej z https://github.com/PHPMailer/PHPMailer.
komentarz 21 lutego 2018 przez DudSon Użytkownik (680 p.)
Dziękuję wezmę to pod uwagę. Uczę się cały czas. Ktoś dał mi minusa za moją poprzednią wersje strony mam nadzieję, że zajrzy tutaj jeszcze raz i zobaczy jakiego dokonałem postępu technologicznego pomiędzy jednym a drugim serwisem. Myślę, że jest znacznie lepiej.
0 głosów
odpowiedź 28 lutego 2018 przez tymtym56 Nowicjusz (140 p.)
Cześć,

Z jakich źródeł uczyłeś się PHP?
komentarz 17 kwietnia 2018 przez DudSon Użytkownik (680 p.)
Ze strefakursow.pl kurs php podstawowy, Mirosław Zelent kurs PHP na yt a teraz jadę z książki PHP i mySQL dla każdego Marcin Lis i trochę z neta z różnych źródeł jak miałem pomysł na coś co podejrzewałem, że może zadziałać a nie było w tych materiałach np.: losowanie kodu aktywacyjnego.

Podobne pytania

0 głosów
3 odpowiedzi 589 wizyt
+4 głosów
5 odpowiedzi 776 wizyt
pytanie zadane 7 listopada 2017 w HTML i CSS przez adim1248 Początkujący (450 p.)
+2 głosów
2 odpowiedzi 230 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...