GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: blackdog476 - 2014. Október 11. - 23:53:24

Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 11. - 23:53:24
Ü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
Cím: Saját kezdetleges fórum
Írta: Peterta12 - 2014. Október 12. - 09:51:01
Na ezt nem néztem ki belõled.Megy a +
Cím: Saját kezdetleges fórum
Írta: anGeL - 2014. Október 12. - 09:56:35
Csak így tovább, sok sikert, szép munka. Ment a plusz.  8)
Cím: Saját kezdetleges fórum
Írta: Loren - 2014. Október 12. - 10:42:35
Szép munka! Sok sikert :)!


Azt hiszem ideje nekem is belekóstolgatni a PHP nyelvbe :).
Cím: Saját kezdetleges fórum
Írta: Szilard - 2014. Október 12. - 11:39:24
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/:
 

 
$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>\";
Cím: Saját kezdetleges fórum
Írta: krisk - 2014. Október 12. - 11:56:09
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?
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 12. - 15:57:56
Köszönöm a visszajelzéseket.



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. */
 


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
Cím: Saját kezdetleges fórum
Írta: ZyZu. - 2014. Október 14. - 07:16:05
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.
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 14. - 17:44:26
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
Cím: Saját kezdetleges fórum
Írta: Kovacs_Richard - 2014. Október 15. - 10:56:53
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 :)
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 15. - 18:45:14
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]
Cím: Saját kezdetleges fórum
Írta: Nátha - 2014. Október 15. - 19:12:05
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
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 15. - 23:40:38
Köszi. Valóban gyakorlásnak szántam, mert ez az elsõ ilyen scriptem, hogy nagyjából használható valamire
Cím: Saját kezdetleges fórum
Írta: DrG - 2014. Október 16. - 19:51:22
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 ;)
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 16. - 20:32:31
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]
Cím: Saját kezdetleges fórum
Írta: Nátha - 2014. Október 16. - 21:18:17
Idézetet írta: DrG date=1413481882\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic
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 ;)

 
Az SMF-et nem egy ember készíti hanem egy komplett csapat, éppen ezért nem lehet összehasonlítani Nukerdog fórumát és az SMF-et.
De szerintem Nukerdog-nak nem az az elsõ számú célja hogy felhasználja, hanem hogy ezáltal kitanulja a PHP-t.
Cím: Saját kezdetleges fórum
Írta: balintx - 2014. Október 16. - 23:15:15
[quote author=krisk date=1413107769\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50972\" data-ipsquote-contentclass=\"forums_Topic\">vagy .[/quote]
https://news.ycombinator.com/item?id=4177516
Cím: Saját kezdetleges fórum
Írta: nathan - 2014. Október 18. - 22:33:41
Annyira nem rossz, gyakorolj még! :)
Cím: Saját kezdetleges fórum
Írta: blackdog476 - 2014. Október 18. - 23:12:18
Köszi. A 2. verzióhoz képest ez nagyon rossz, semmi.:D
Cím: Saját kezdetleges fórum
Írta: ElektroN - 2014. December 12. - 19:31:31
Idézetet írta: Reynolds 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.
 
Miért a \"a világ egyik legrosszabb programozási nyelve\"? Nem is értelek... Mindennek az alap köve a PHP, de ha jobban átgondolom, akkor a HTML.
Cím: Saját kezdetleges fórum
Írta: Dani99 - 2014. December 31. - 20:58:48
Jó lett!