Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] prosta stronka z poezją
Forum PHP.pl > Forum > Przedszkole
patrick1989
Witam!

Mam do wykonania projekt na Inżynierię Oprogramowania - utworzenie stronki z wierszami z możliwościami:

-Komentarz
-Ocena
-Zgłoszenie naruszenia zasad (raport)
-Dodanie wiersza przez Admina
-Edycja
-Usunięcie
-Akceptacja wiersza dodanego przez użytkownika
-Licznik wyświetleń
-Popularność
-Średnia ocen
-Top 10
-Alfabetyczny indeks autorów
-Kategorie

wybrałem PHP, gdyż wydaje się rozsądnym rozwiązaniem, lecz dopiero spotykam się z tym językiem na poważniej.
Jak rozwiązać ten problem? Jak przechowywać dane(wierszyki itd)? Myślałem o jakimś hostingu typu cba.pl i wrzucenie tam tego.

Jak przygotować specyfikację techniczną?

Dziękuję z góry za wszelkie wypowiedzi i okazaną pomoc. smile.gif
modern-web
PHP jest faktycznie najlepszym rozwiązaniem w tym przypadku.
Na Twoim miejscu skorzystałbym z MySQL. Inaczej tego nie zrobisz...
W bazie danych przechowuj komentarze, oceny (w skali 1-10 na przykład) i wiersze... Resztę można powiązać z tymi 3 tabelami MySQL.
Hosting... cóż... Jeśli chcesz by było to dostępne w sieci to polecam www.ugu.pl - obsługuje bazy danych, mail(), a także oferuje konta pocztowe.
Natomiast jeśli ma być to projekt tylko i wyłącznie do 'oceny' to może warto by było rzucić okiem na program typu WebServ (umożliwia uruchomienie 'serwera' (bazy danych i obsługę PHP) na Twoim komputerze).

Narazie mogę tylko tyle powiedzieć. Nie znam wszystkich szczegółów.
Pisz w razie jakichkolwiek pytań smile.gif

Pozdrawiam!
kto$
Tworzysz tabele w bazie danych.

Tabela artykułu zawierająca artykuł i id/nazwa autora, data dodania, pole podające ilośc wyświetleń, kategoria.
Komentarze z samym commentem, data, id autora, id artykulu.
Łączysz te dwie tabele i masz już system artykuł -> komentarz.

Rejestracja/Login : tabela autor,haslo, id_autora.

kategoria: tabela kategorii, id kategorii

Top 10/Alfabetyczny: wyszukiwanie/ zliczanie/listingowanie z poszczegolnych tabel

Szczególne możliwości admina: tworzysz panel administracyjny z poszczególnymi funkcjami.

Wszystko co po drodze znajdziesz w google.

Pozdrawiam

phpion
Hmmm, ja bym się najpierw upewnił, czy faktycznie masz fizycznie wykonać taką stronkę. Ja na inżynierii oprogramowania miałem tylko samą teorię opartą na schematach w języku Z. Wydaje mi się (ale może się mylę), że chodzi właśnie o przygotowanie takiej "dokumentacji" do strony, a nie faktyczne jej utworzenie.
modern-web
Cytat(kto$ @ 18.11.2010, 14:07:43 ) *
Tworzysz tabele w bazie danych.

Tabela artykułu zawierająca artykuł i id/nazwa autora, data dodania, pole podające ilośc wyświetleń, kategoria.
Komentarze z samym commentem, data, id autora, id artykulu.
Łączysz te dwie tabele i masz już system artykuł -> komentarz.

Rejestracja/Login : tabela autor,haslo, id_autora.

kategoria: tabela kategorii, id kategorii

Top 10/Alfabetyczny: wyszukiwanie/ zliczanie/listingowanie z poszczegolnych tabel

Szczególne możliwości admina: tworzysz panel administracyjny z poszczególnymi funkcjami.

Wszystko co po drodze znajdziesz w google.

Pozdrawiam


Nie sądzę by było to pomocne...
To co mu podałeś to Twój osobisty 'plan' tego systemu ;]
To się nazywa potocznie "lanie wody"... coś jakbym napisał "No zrób to tak jak być powinno, no wiesz jak..."
0 treści...
kto$
No wiesz, ja sam musiałem się namęczyc, żeby coś takiego stworzyc - a przy okazji dużo się przy tym nauczyłem.
Starałem się naprowadzic Cię w jaki sposób możesz to zrobic, ale projektu za Ciebie nie napisze.

Pozdrawiam

Edit do postu niżej: Sorry, źle wyczytałem z drzewka tongue.gif
modern-web
1. To nie ja poprosiłem o pomoc winksmiley.jpg
2. Raczej, że nie napiszesz w całości tongue.gif Nie od tego jest forum (a zwłaszcza ten temat). winksmiley.jpg
patrick1989
Dzięki za odpowiedzi. Projekt robię tylko i wyłącznie do oceny.

Mam zrobić tą stronkę(nie musi isć w świat) i przygotować specyfikację techniczną smile.gif

Nie wymagam od nikogo zrobienia tego za mnie, tylko naprowadzenia mnie na odpowiedni trop, bym mógł to zrobić na tyle dobrze, by działało i nie było zbyt trudne smile.gif
modern-web
W takim razie polecam Tobie WebServ smile.gif Znajdziesz go bez problemu w google.
Podczas instalacji i po jej zakończeniu wybieraj wszędzie "Dalej" (nie zmieniaj standardowych ustawień... konfiguracja dla początkujących będzie wystarczająca).

Koło godziny wyświetli Ci się ikonka WebServ. Klikasz na nią prawym klawiszem i...
1. Folder Główny - folder z plikami strony
2. Główna WWW - podgląd Twojego localhost smile.gif - wyświetlenie plików z folderu głównego
3. phpMyAdmin - baza danych - domyślnie użytkownik: 'root' / bez hasła
4. reszta nie będzie Ci potrzebna

Teraz system i sama strona. Zakładam, że z zaprojektowaniem strony poradzisz sobie samodzielnie winksmiley.jpg
Co do systemu to sugerowałbym wcześniejszą lekturę:
http://mynthon.net/articles/inne/sql_szybkie_zapytania
i
http://pl.wikibooks.org/wiki/PHP/Sesje

Zapytania do bazy to w Twoim projekcie podstawa, więc dobrze by było gdybyś to wszystko opanował niemalże perfekcyjnie.
Sesje przydadzą się podczas weryfikacji zarejestrowanego użytkownika / admina (panel administratora)

Wstępnie Cię nakierowałem smile.gif
Jeszcze zapytam; Co wcześniej robiłeś w PHP? Nie wiem jak Cie traktować ;P (jakie są Twoje umiejętności)
Nie chcę słyszeć pytań typu: "Jak połączyć się z bazą danych" albo "Jak wyświetlić znalezione rekordy".

Ale to i tak nie zmienia faktu, że z chęcią pomogę biggrin.gif
Pisz jak do czegoś dojdziesz lub też czegoś nie będziesz wiedział.

Pozdrawiam.
patrick1989
Dziękuję za pomoc. W tym tygodniu będę się zabierał za ten projekt.
Mam zrobiona specyfikację wymagań, potrzebny mi jeszcze projekt techniczny oraz wspomniana "stronka"(ale na nia mam jeszcze trochę czasu)

Co dopisać w specyfikacji wymagań jeśli będę używał PHP i wspomnianego MySQL?

Co do baz danych, to znam podstawy z przedmiotu Systemy Baz Danych - operowaliśmy na bazach danych by Oracle.
A co do PHP to hmmm... będę zaczynał dopiero.

Ogólnie stronka ma być jak najłatwiejsza do zrobienia smile.gif nie potrzebuje wodotrysków... ma działać winksmiley.jpg

Są jakieś narzędzia, które pozwolą na szybsze wykonanie mojego projektu? Np jakiś zarys stronki, buttony itd? Czy wszystko muszę sam klepać jako kod?
modern-web
Zarys - kartka papieru i jedziesz ;D
Buttony - chodzi o obrazki, tak? (www.cooltext.com albo photoshop ;P)
Niestety system musisz zaprogramować za pomocą kodu ;0
patrick1989
Chodzi mi, o to że mam wykonać jakiś zarys, szkielet by pokazać ze sie zabralem za projekt. Da sie coś zrobić w miarę łatwo i szybko?

Nie chce mi opdalić WebServ, gdyż nie jest skonfigurowany Apache. Ma ktoś krótki opis, jak się za to zabrać?

Znalazłem coś takiego, ale to obszerny opis.
CODE
http://download.netcoffee.pl/apache_www.pdf

Mephistofeles
WebServ ma wszystko już skonfigurowane, masz może Skypa? On się gryzie z Apachem. W opcjach Skypa trzeba wyłączyć port 80..
patrick1989
Właśnie próbuję zrobić dodawanie wierszy - czyli
1. wybieramy kategorię z listy
2. wpisujemy imię, nazwisko
3. wpisujemy tekst(treść wiersza do okna tekstowego)
4. klikamy button zamiesc(wyślij).

Kod
<html>
<html lang="pl">
    <head>
<b>Witamy na stronie POEMIX!</b>
    </head>

<body>
<br><br>Dodaj swój utwór<br><br>

<form action ="dwiersz.php" method=post>
<table border =0>
<tr>
<td>Kategoria:</td>
<td><select name="kategoria">
<option value = "milosne">Miłosne
<option value = "mroczne">Mroczne
<option value = "smutne">Smutne
<option value = "humorystyczne">Humorystyczne
<option value = "inne">Inne
</td>
</tr>
<tr>
<td>Imię:</td>
<td align="left"><input type="text" name="imie" size="30" maxlenght="20"></td>
</tr>
<tr>
<td>Nazwisko:</td>
<td align="left"><input type="text" name="nazwisko" size="30" maxlenght="20"></td>
</tr>
<tr>
<td>Tresc:</td>
<td><textarea name="tresc" cols="40" rows="6">Wpisz swój tekst...</textarea></td>
</tr>
<tr>
<td>&nbsp</td>
<td align="center">&nbsp</td>
</tr>
<tr>
<td colspan align="center"><input type="submit" value="Zamiesc"></td>
</tr>
</table>
</form>
</body>
</html>


Teraz mam plik dwiersz.php (czyli dodawanie wierszy) i nie mogę sobie z tym poradzić, by ten skrypt zadziałał. Wyskakuje komunikat: Parse error: syntax error, unexpected T_STRING in E:\Program Files\WebServ\httpd\dwiersz.php on line 17

dwiersz.php
Kod
<html>
<body>


<?php
$kategoria=$_POST['kategoria'];
$imie=$_POST['imie'];
$nazwisko=$_POST['nazwisko'];
$tresc=$POST['tresc'];
?>

<?php
      $polacz = @mysql_connect('localhost', 'admin', '1234') or die ("Nie moglem sie polaczyc z serwerem");

      mysql_select_db('wiersze') or die ("Nie moglem znalesc bazy danych");

      mysql_query (INSERT INTO `wiersze` ( `kategoria` , `imie` , `tresc` ,`nazwisko` , `login` ))
                  VALUES (
                   '$kategoria', '$id', '$imie' , '$nazwisko' , '$login' );

      mysql_close($polacz);

?>

<?php
echo "<p>Wiersz dodany!.</p>";
?>


</html>
</body>
Crozin
1. Znasz już jakiś język programowania? Nie ma sensu brać sie za PHP w momencie, gdy znasz (chociażby po łebkach) np. Javę albo C#.
2. Miałeś już styczność z bazą Oracle? Daruj sobie MySQL i wykorzystaj Oracle.
3. Jesteś studentem więc zakładam, że instalacja serwera HTTP (np. Apache) przy takiej ilości materiałów w sieci nie powinna być aż tak trudna dla Ciebie.

Cytat
PHP jest faktycznie najlepszym rozwiązaniem w tym przypadku.
Na Twoim miejscu skorzystałbym z MySQL. Inaczej tego nie zrobisz...
Nie pisz bzdur. PHP wcale nie musi być dobrym wyborem, a MySQL (czy ogólnie RDBMS-y) nie jest tutaj konieczne, chociaż jak najbardziej odpowiednie.
patrick1989
Jestem już na tym etapie, iż wiem że na pewno to będzie PHP i MySQL. Pracuję w Webservie. W międzyczasie czytam "PHP i MySQL Vademecum Profesjonalisty" Helionu.
Projekt mam do oddania w czwartek (13.01.2011)

Prosiłbym o pomoc w związku z problemem opisanym w poprzednim poście. Będę bardzo wdzięczny.
Crozin
Masz tydzień więc wszystko będzie byle jak, ale dobrze by było żebyś chociaż mniej-więcej wiedział co piszesz i pisał w miarę poprawnie.

1. Przeczytaj o podstawowej składni HTML5 i o rzeczy niezwykle ważnej - o semantyce.
2. Od formatowania stron masz CSS.
3. Nie ukrywaj żadnych błędów (patrz "@").
4. Do komunikacji z bazą danych używaj PDO, funkcje mysql_*() są niezbyt wygodne.
5. Używaj jakiegoś edytora z kolorowaniem składni - na forum nie będziemy Ci takich błędów poprawiać: http://ideone.com/wIIEN - jasno widać co jest nie tak.
patrick1989
http://ideone.com/MHs9o < - - klik

Co teraz jest źle?
Po wypełnieniu formularza html i zatwierdzeniu go wyświetla się czysta(pusta) strona :/

Nie utworzyła się baza "wiersze"
Crozin
1. Odwołujesz się do nieistniejących indeksów tablicy _POST (ten fragment kodu powinien wykonywać się jedynie po wysłaniu danych formularzem).
2. Patrz punkt 3 oraz 4 mojego wcześniejszego postu.
patrick1989
Miales rację.

Po usunięciu tłumienia:

Fatal error: Cannot instantiate non-existent class: mysqli in E:\Program Files\WebServ\httpd\dwiersz.php on line 29

jak temu zaradzić? Bo stoję w miejscu ;/

Muszę koniecznie korzystać z MySQL, bo zawarlem to w specyfikacji wymagań i nie mogę tego zmienić.
Crozin
Cytat
Muszę koniecznie korzystać z MySQL
W którym miejscu napisałem byś z niego nie korzystał? PDO, MySQLi czy zestaw funkcji mysql_*() to tylko rozszerzenia PHP pozwalające na komunikację z bazą danych (MySQL).

Co do błędu: http://tinyurl.com/243krlz - robisz to z każdym błędem, którego nie rozumiesz.
patrick1989
Teraz mam kolejny problem.
Kod taki sam jak poprzednio.

Gdy sam dodam bazę danych "wiersze" wyskakuje zdefiniowany przez mnie bład: "Wystšpił błšd. Wiersz nie został dodany do bazy."

A gdy tę bazę usunę mam coś takiego:
Warning: mysqli::mysqli() [function.mysqli-mysqli]: (42000/1049): Nieznana baza danych 'wiersze' in E:\Program Files\WebServ\httpd\dwiersz.php on line 29
Błšd: : Połšczenie z bazš danych nie powiodło się. Spróbuj jeszcze raz póŸniej.

Nie wygooglowałem rozwiązania.

Co ja tu odwaliłem? : http://ideone.com/xQw8p
Crozin
No to chyba oczywiste, że skoro usunąłeś bazę danych, to wyskoczył błąd "braku bazy danych".

Zrobiłeś jeden błąd - jesteś na etapie tworzenia skryptu i zamiast wyświetlać sobie maksimum informacji o błędzie wywaliłeś jakąś pierdołę, która nie mówi Ci ani słowa o tym co jest nie tak (takie coś powinno być dopiero w środowisku produkcyjnym, nie deweloperskim).

http://pl.php.net/manual/en/book.mysqli.php - poszukaj sobie metody, która informuje o tym jaki błąd był.
patrick1989
Gdy zakomentuje fragment kodu, który jest odpowiedzialny za "krycie błędu", wyskakuje tylko czysta strona. Żadnych błędów na widoku... dostal.gif
Crozin
A to znalazłeś http://pl.php.net/manual/en/mysqli.error.php ?
patrick1989
Dodawanie wierszy już działa.

Kod: http://ideone.com/cEkkl

Zastanawiam się jak wyświetlić wszystkie wiersze wraz z ich danymi, jak nazwisko itd.
Lecz nie mam żadnej dobrej koncepcji...

SELECT FROM WIERSZE &kategoria, %tytuł, &imie, &nazwisko, & tresc ?

tylko co zrobic z tym dalej, by to jakoś wyglądało?
Crozin
1. mysql_*(), a mysqli_*() to zupełnie co innego.
2. Google: Podstawy SQL - na takie pytania nie będziemy już odpowiadać.
patrick1989
No to zrobilem wyświetlanie wierszy

kod: http://ideone.com/sR4dv

otrzymuję:
Fatal error: Call to a member function query() on a non-object in E:\Program Files\WebServ\httpd\wwiersze.php on line 19

czytalem, ze błąd może lezec po stronie zle zadanego zapytania do bazy, lecz ja nie widzę nic do poprawy :/
Crozin
Przecież napisałem, że MySQLi (MySQL Improved Extension) i MySQL (MySQL Extension) to dwie inne rzeczy.
patrick1989
mysqli jest tylko tutaj:


if (mysqli_connect_errno()) {
echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;

Poprawie, ale w skrypcie dodajacym wiersze do bazy jest tez identyczny fragment kodu i działa, więc to raczej nie to, bo reszta jest pisana mysql.

Błąd jest prawdopodobnie w 19 linii:
$query = mysql_query($zapytanie, $conn);
Crozin
To teraz zobacz co zwraca mysql_query, a co mysqli_query, bo używasz jednego, a korzystasz jakbyś używał drugiego. W manualu masz przykład jak pobrać dane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.