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

Saját kezdetleges fórum
« Dátum: 2014. Október 11. - 23:53:24 »
+8
Ü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
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
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
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
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
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
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
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
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
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
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
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
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
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
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