Szerző Téma: Saját kezdetleges fórum  (Megtekintve 3893 alkalommal)

Saját kezdetleges fórum
« Dátum: 2014. október 11. - 23:53:24 »
+8 Show voters
Üdv.
El is érkeztem egy újabb munkámmal, ami nem más, mint egy fórum(nak az alapja).
Egy táblázatot használ fel. Ebben megadtam az üzenet azonosítóját, azt hogy ez egy téma-e, a küldõ nevét, a címet, az üzenetet, a dátumot, és a téma azonosítóját.
Ezt egy \'messages\' nevû táblázatba mentettem el.
Ez még nagyon kezdetleges, de használható.
v1.0
Témák átlátható kilistázásaLehetséges
Téma létrehozásLehetséges
Hozzászólás témákhozLehetséges
Témák adminisztrálásaNem lehetséges
->Törlése
Nem lehetséges
->Szerkesztése
Nem lehetséges
->Kiemelése
Nem lehetséges
BeléptetõrendszerNincs
BiztonságGyenge *
*: Itt azt értem, hogy bárki posztolhat bármilyen névvel bármennyiszer bármikor.
Készítõ:Én
Verzió:v1.0
Készítési idõ:Nem számoltam, egy nap alatt meg volt a v1
Kód (amit mindig elfelejtek kirakni):
 

<style>
body { background: #fea; text-align:center; }
table {border:1px solid black; width:800px}
td#comment {border:1px solid black;}
*{
   margin:0;
   padding:0;
}
div#page{
   width:800px;
   margin:0 auto;
   text-align:left;
}
</style>
<div id=\"page\">
<?php
session_start();
mysql_connect(\"localhost\",\"root\",\"\") or die(\"Nem tudtam csatlakozni az adatbázishoz!\");
mysql_select_db(\"blackdog\") or die(\"Nem tudtam kiválasztani az adatbázist!\");
if(!isset($_GET[\"option\"])) header(\"Location: ?option=main\");
switch($_GET[\"option\"]) {
case \"main\":
         print(\"<button onclick=\'window.location.href=\\\"?option=createtopic\\\"\'>Új téma</button>\");
         print(\"<table>\");
         print(\"<tr><td style=\'width:400px\'><b>Cím</b></td><td><b>Indította</b></td><td><b>Válaszok</b></td></tr>\");
         $query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 1\");
         while($row = mysql_fetch_array($query)) {
            $res = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 0 AND TOPICID = $row[iD]\");
            $valaszok = mysql_num_rows($res);
            print(\"<tr><td><a href=\'?option=show&id=$row[iD]\'>$row[TITLE]</a></td><td><i>$row[AUTHOR]</i></td><td>$valaszok válasz</td></tr>\");
         }
         print(\"</table>\");
   break;
case \"show\":
      if(!isset($_GET[\"id\"])) header(\"Location: ?option=main\");
      $query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 1 AND ID = \".$_GET[\"id\"]);
      $row = mysql_fetch_array($query);
      if(!is_array($row)) die(\"Nem létezik ilyen téma!\");
      print(\"<button onclick=\'window.location.href=\\\"?option=show\\\"\'>Vissza</button>\");
      print(\"<button onclick=\'window.location.href=\\\"?option=comment&topicid=$_GET[id]\\\"\'>Új hozzászólás</button>\");
      $query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 0 AND TOPICID = $_GET[id]\");
      $valaszok = mysql_num_rows($query);
      print(\"<table><tr><td id=\'comment\'>$row[AUTHOR]</td><td id=\'comment\'><b>$row[TITLE]</b> ($valaszok válasz)<br>Hozzáadva: \".date(\"Y.m.d H:i:s\",$row[\"ADDED\"]).\" $row[AUTHOR] által<hr><hr>$row[CONTENT]</td></tr>\");
      while($row = mysql_fetch_array($query)) {
         print(\"<tr><td id=\'comment\'>$row[AUTHOR]</td><td id=\'comment\'>Hozzáadva: \".date(\"Y.m.d H:i:s\",$row[\"ADDED\"]).\"  $row[AUTHOR]<hr><hr>$row[CONTENT]</td></tr>\");
      }
      print(\"</table>\");
   break;
case \"comment\":
   if(!isset($_GET[\"topicid\"])) header(\"Location: ?option=main\");
      if(isset($_POST[\"redirect\"])) {
         print(\"<button onclick=\'window.location.href=\\\"?option=createtopic\\\"\'>Vissza</button><br>\");
         if(empty($_POST[\"content\"])) die(\"Üres tartalom\");
         if(empty($_POST[\"name\"])) die(\"Üres név\");
         $content = $_POST[\"content\"];
         $nev = $_POST[\"name\"];
         $time = time();
         mysql_query(\"INSERT INTO `messages` (`ISTOPIC`,`AUTHOR`,`TITLE`,`CONTENT`,`ADDED`,`TOPICID`) VALUES (0,\'$nev\',\'\',\'$content\',\'$time\',\'$_GET[topicid]\');\") or die(mysql_error());
         header(\"Location: ?option=main\");
      } else {
         print(\"<button onclick=\'window.location.href=\\\"?option=show\\\"\'>Vissza</button>\");
         print(\"<form method=\'POST\'><input type=\'text\' name=\'name\' placeholder=\'Név\'/><br><textarea style=\'resize:vertical;\' cols=\'100\' rows=\'20\' name=\'content\' placeholder=\'Tartalom\'></textarea><br><input type=\'submit\' name=\'redirect\'/></form>\");
      }
   break;
case \"delete\":
   if(!isset($_GET[\"msgid\"])) header(\"Location: ?option=main\");
   $query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 1 AND ID = \".$_GET[\"id\"]);
   $row = mysql_fetch_array($query);
   if(!is_array($row)) die(\"Nem létezik ilyen téma!\");
   if(!isset($_GET[\"sure\"])) die(\"Biztos vagy benne? <button onclick=\'window.location.href= \\\"?option=delete&sure\\\"\'>Törlés</button> | <button>Vissza</button>\");
   else mysql_query(\"DELETE FROM `messages` WHERE `topicid` = \".$_GET[\"msgid\"]) or die(mysql_error());
   break;
/*
SQL: messages
ID - ISTOPIC - AUTHOR -  TITLE - CONTENT - ADDED - TOPICID
*/
case \"createtopic\":
      if(isset($_POST[\"redirect\"])) {
         print(\"<button onclick=\'window.location.href=\\\"?option=createtopic\\\"\'>Vissza</button><br>\");
         if(empty($_POST[\"name\"])) die(\"Üres név\");
         if(empty($_POST[\"title\"])) die(\"Üres cím\");
         if(empty($_POST[\"content\"])) die(\"Üres tartalom\");
         $title = $_POST[\"title\"];
         $content = $_POST[\"content\"];
         $nev = $_POST[\"name\"];
         $time = time();
         $topicid = mysql_fetch_array(mysql_query(\"SELECT max( TOPICID ) FROM `messages`\"));
         $topicid = $topicid[\"0\"]+1;
         mysql_query(\"INSERT INTO `messages` (`ISTOPIC`,`AUTHOR`,`TITLE`,`CONTENT`,`ADDED`,`TOPICID`) VALUES (1,\'$nev\',\'$title\',\'$content\',\'$time\',\'$topicid\');\") or die(mysql_error());
         header(\"Location: ?option=main\");
      } else {
         print(\"<button onclick=\'window.location.href=\\\"?option=show\\\"\'>Vissza</button>\");
         print(\"<form method=\'POST\'><input type=\'text\' name=\'name\' placeholder=\'Név\'/><br><input type=\'text\' name=\'title\' placeholder=\'Cím\'/><br><textarea style=\'resize:vertical;\' cols=\'100\' rows=\'20\' name=\'content\' placeholder=\'Tartalom\'></textarea><br><input type=\'submit\' name=\'redirect\'/></form>\");
      }
   break;
default: header(\"Location: ?option=main\");
}
?>
</div>

 
v1.0 képek: www.nukerdog.tk/private/forumalap/index.php
« Utoljára szerkesztve: 2014. október 11. - 23:59:09 írta Nukerdog »

Nem elérhető Peterta12

  • 183
  • Peterta12
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #1 Dátum: 2014. október 12. - 09:51:01 »
0 Show voters
Na ezt nem néztem ki belõled.Megy a +

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #2 Dátum: 2014. október 12. - 09:56:35 »
+2 Show voters
Csak így tovább, sok sikert, szép munka. Ment a plusz.  8)

Nem elérhető Loren

  • 1401
  • Ex Moderátor
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #3 Dátum: 2014. október 12. - 10:42:35 »
0 Show voters
Szép munka! Sok sikert :)!


Azt hiszem ideje nekem is belekóstolgatni a PHP nyelvbe :).

Nem elérhető Szilard

  • Adminisztrátor
  • 1832
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #4 Dátum: 2014. október 12. - 11:39:24 »
+5 Show voters
Töltsd fel valahová, kérlek, bebizonyítom, hogy Lorennek nincs igaza mutatok valamit.


Komolyra fordítva a szót, néhány komolyabb hiba /van más is, de most nincs kedvem az összeset felsorolni/:
 
  • az általad használt mysql függvények elavultak, javasolt a mysqli, vagy PDO használata

  • minden egy fájlban van /átláthatatlan, stb./

  • teljes mértékben statikus, a dinamikusság jeleit még csak nem is mutatja

  • nincs semmiféle autentikáció

  • $row[iD] -> $row[\'ID\']

  • print helyett inkább echo

  • htmlspecialchars

  • injection ellen mysql_real_escape_string(), ami szintén elavult

  • én nem írnám ki a mysql errort csak úgy bárkinek

  • én nem használnék ilyen buttonokat

  • feleslegesen csinálsz egy sor helyett öt sort

  • echo \"asd = $valami\" => echo \'asd = \'.$valami;



 
$query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 1\");
                                        while($row = mysql_fetch_array($query)) {
                                                $res = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 0 AND TOPICID = $row[iD]\");
                                                $valaszok = mysql_num_rows($res);
                                                print(\"<tr><td><a href=\'?option=show&id=$row[iD]\'>$row[TITLE]</a></td><td><i>$row[AUTHOR]</i></td><td>$valaszok válasz</td></tr>\");
                                        }
                                        print(\"</table>\");

 
helyett valami ilyesmi is jó (és az elavult mysql függvényekkel például nem foglalkoztam):
 
$query = mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 1\");
                                        while($row = mysql_fetch_array($query)) {
                                                echo \'<tr><td><a href=\"?option=show&id=\'.$row[\"ID\"].\'\">\'.htmlspecialchars($row[\"TITLE\"].\'</a></td><td><i>\'.htmlspecialchars($row[\"AUTHOR\"]).\'</i></td><td>\'.mysql_num_rows(mysql_query(\"SELECT * FROM messages WHERE ISTOPIC = 0 AND TOPICID = \".$row[\'ID\'])).\' válasz</td></tr>\';
                                        }
                                        echo \"</table>\";
« Utoljára szerkesztve: 2014. október 12. - 11:58:40 írta Szilard00 »

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #5 Dátum: 2014. október 12. - 11:56:09 »
+1 Show voters
Gratulálok, sikeresen írtál a világ egyik legrosszabb webprogramozási nyelvén egy mégrosszabb fórumot. Ha már muszáj használnod a PHP-t, akkor használd legalább normálisan, vagy ne is használd egyáltalán.
E.1.: most nézem hogy a régi mysql_* fgv-könyvtárat használod. Miért nem használod a mysqli_*-t?
« Utoljára szerkesztve: 2014. október 12. - 12:01:20 írta krisk »

Saját kezdetleges fórum
« Válasz #6 Dátum: 2014. október 12. - 15:57:56 »
0 Show voters
Köszönöm a visszajelzéseket.


Spoiler for Szilard:

Idézetet írta: Szilard00 date=1413106764\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic
Komolyra fordítva a szót, néhány komolyabb hiba /van más is, de most nincs kedvem az összeset felsorolni/:
 
  • az általad használt mysql függvények elavultak, javasolt a mysqli, vagy PDO használata
/* Ok. */
 
  • minden egy fájlban van /átláthatatlan, stb./
/* Újraírom majd az egészet :) */
 
  • teljes mértékben statikus, a dinamikusság jeleit még csak nem is mutatja
/* Majd a következõ verzióban */
 
  • nincs semmiféle autentikáció
/* Írtam, hogy ez még nagyon alap, de már mûködik legalább. */
 
  • $row[iD] -> $row[\'ID\']
/* Szerintem az elsõ átláthatóbb, de legyen így. */
 
  • print helyett inkább echo
/* Ok. */
 
  • htmlspecialchars
/* Majd teszek bele, kifelejtettem. */
 
  • injection ellen mysql_real_escape_string(), ami szintén elavult
/* Majd teszek bele, kifelejtettem. */
 
  • én nem írnám ki a mysql errort csak úgy bárkinek
/* Jogos. Szintén még csak nagyon alap verzió, tesztelgetésre volt. */
 
  • én nem használnék ilyen buttonokat
/* Miért? Mit használnál helyettük? */
 
  • feleslegesen csinálsz egy sor helyett öt sort
/* Javítom. */
 
  • echo \"asd = $valami\" => echo \'asd = \'.$valami; 
/* Szerintem az elsõ átláthatóbb, de legyen így. */
 
Spoiler for krisk:


mégrosszabb fórumot[/quote]
Köszi a bíztatást.
 

a világ egyik legrosszabb webprogramozási nyelvén
 
[/quote]
Szerintem PHP nélkül nehezebb lenne mindezt megcsinálni

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #7 Dátum: 2014. október 14. - 07:16:05 »
0 Show voters
Idézetet írta: krisk date=1413107769\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic
Gratulálok, sikeresen írtál a világ egyik legrosszabb webprogramozási nyelvén egy mégrosszabb fórumot.
 
Valahol mindig el kell kezdeni.. ez rossz lett, és? A következõ verzió jobb lesz! :D Nem vagyok profi PHP -ból.. de legalább szántál rá idõt és nekiültél megcsinálni ennyit. ;) Gratulációm.

Saját kezdetleges fórum
« Válasz #8 Dátum: 2014. október 14. - 17:44:26 »
0 Show voters
Idézetet írta: ZyZu. date=1413263765\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic


Gratulálok, sikeresen írtál a világ egyik legrosszabb webprogramozási nyelvén egy mégrosszabb fórumot.
 
Valahol mindig el kell kezdeni.. ez rossz lett, és? A következõ verzió jobb lesz! :D Nem vagyok profi PHP -ból.. de legalább szántál rá idõt és nekiültél megcsinálni ennyit. ;) Gratulációm.
 
[/quote]
Köszi

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Saját kezdetleges fórum
« Válasz #9 Dátum: 2014. október 15. - 10:56:53 »
0 Show voters
tényleg nem a legszebb/legjobb a kód...meg a design is alap...de valahol el kell kezdeni, gyakorlásnak nem rossz :) élesbe azért nem állítanám, de tanulásnak vagy \"eddig tanultak alkalmazásához\" jó :) kezdetnek nem rossz, de ha szánsz rá elég idõt és energiát ennél sokkal jobbat fogsz majd alkotni :) további sok sikert :) és ne felejtsd el honnan indultál :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Saját kezdetleges fórum
« Válasz #10 Dátum: 2014. október 15. - 18:45:14 »
0 Show voters
Köszi :)
Jelenleg épp a mysqlI-vel szarakodok, egyszerûen nem értem az egészet... Majd lesz valami...
Itt egy kép. Nem viszem túlzásba a designt, nem is vagyok CSS master, de azért egy alap designt összedobtam.. :D
[hs width=450 height=300]www.nukerdog.tk/private/theforum/img1.png[/hs]

Nem elérhető Nátha

  • 1036
    • Profil megtekintése
Saját kezdetleges fórum
« Válasz #11 Dátum: 2014. október 15. - 19:12:05 »
0 Show voters
Nem rossz.
Gyakorlásnak meg tanulgatásnak tökéletes, de másnak nem, mert már sok nyílt forráskódú fórumok vannak, nagy példa rá: SMF

Saját kezdetleges fórum
« Válasz #12 Dátum: 2014. október 15. - 23:40:38 »
0 Show voters
Köszi. Valóban gyakorlásnak szántam, mert ez az elsõ ilyen scriptem, hogy nagyjából használható valamire

Nem elérhető DrG

Saját kezdetleges fórum
« Válasz #13 Dátum: 2014. október 16. - 19:51:22 »
0 Show voters
Sziasztok.

Nem tudom miért fikázzátok, legalább próbálkozik, és nem elvenni kéne a kedvét, hanem biztatni, hogy folytassa.


Kezdésnek jó, majd idõvel kiforrja magát ez a fórum is, az smf rendszere se úgy kezdte amilyen most ;)

Saját kezdetleges fórum
« Válasz #14 Dátum: 2014. október 16. - 20:32:31 »
0 Show voters
Köszi.
Nem feltétlen fikáznak
 
Idézetet írta: krisk date=1413107769\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic
írtál egy mégrosszabb fórumot. Ha már muszáj használnod a PHP-t
..vagy de, de Szilard00 hozzászólása például teljesen építõ jellegû kritika.
De többnyire biztatást kaptam
 

de valahol el kell kezdeni, gyakorlásnak nem rossz :) [...] de ha szánsz rá elég idõt és energiát ennél sokkal jobbat fogsz majd alkotni :) további sok sikert :) és ne felejtsd el honnan indultál :)
 
[/quote]
 

Valahol mindig el kell kezdeni.. ez rossz lett, és? A következõ verzió jobb lesz! :D Nem vagyok profi PHP -ból.. de legalább szántál rá idõt és nekiültél megcsinálni ennyit. ;) Gratulációm.
 
[/quote]
 

Szép munka! Sok sikert :)
 
[/quote]
 

Csak így tovább, sok sikert, szép munka.
 
[/quote]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal