NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze: PHP diskuze s reakcemi

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
mr.sammet
Člen
Avatar
mr.sammet:10.3.2016 19:10

Zdravím, mohli byste mi prosím někdo pomoct s problémem, který řeším snad celý den? Tvořím v PHP diskuzi s reakcemi spojenou s databází a mám problém s vypsáním reakcí. Pokaždé mi to vypíše pouze první příspěvek s reakcemi, ale další už ne. Děkuji

Kód:

<?php $sql = "SELECT ID_diskuze, autor_diskuze, predmet_diskuze, text_diskuze, datum_cas_diskuze
                     FROM diskuze";
              $result = mysql_query($sql);

           while ($row = mysql_fetch_array($result)){

           $ID_diskuze = $row['ID_diskuze'];
           $autor_diskuze = $row['autor_diskuze'];
           $predmet_diskuze = $row['predmet_diskuze'];
           $text_diskuze = $row['text_diskuze'];
           $datum_cas_diskuze = $row['datum_cas_diskuze']; ?>

          <p>
          <span style="color:rgb(204,0,0); font-weight:bold; font-size: 20px">OD: <?php echo $autor_diskuze ?></span>
          <span style="color:rgb(0,0,0); font-size: 16px"> (<?php echo $datum_cas_diskuze ?>)</span><br />
          <span style="color:rgb(0,0,204); font-weight:bold; font-size: 16px">TITULEK: <?php echo $predmet_diskuze ?></span><br />
          <span style="font-weight:bold;">NAPSAL: </span><?php echo $text_diskuze ?>
          </p>

          <?php $sql = "SELECT ID_diskuze, hloubka_odpovedi, autor_odpovedi, text_odpovedi, datum_cas_odpovedi
                        FROM odpovedi
                        WHERE ID_diskuze = $ID_diskuze
                        ORDER BY hloubka_odpovedi ASC";
              $result = mysql_query($sql);

           while ($row = mysql_fetch_array($result)){

           $ID_diskuze = $row['ID_diskuze'];
           $hloubka_odpovedi = $row['hloubka_odpovedi'];
           $autor_odpovedi = $row['autor_odpovedi'];
           $text_odpovedi = $row['text_odpovedi'];
           $datum_cas_odpovedi = $row['datum_cas_odpovedi'];

           $reakce = $autor_odpovedi." - ".$datum_cas_odpovedi." - ".$text_odpovedi;

           ?>

           <p>
           <span style="color:rgb(0,204,0); font-weight:bold; font-size: 16px">REAKCE: <?php echo $reakce ?></span><br />
           </p>

      <?php }

          if((isset ($_SESSION['login_admin']) == true) and (isset ($_SESSION['pass_admin']) == true)) { ?>

          <form class="form-reakce" method="POST" action="diskuze.php">
          <input type="submit" name="<?php echo $ID_diskuze ?>" value="REAGOVAT">
          </form>

          <?php }

          if(isset($_POST[$ID_diskuze])){ ?>

          <form class="form-reakce" method="POST" action="diskuzereakce.php">
          <textarea name="reakce_diskuze" cols="100%" rows="4" ></textarea>
          <input type="submit" name="<?php echo $ID_diskuze ?>" value="Odeslat reakci">
          </form>

          <?php



          } }


          ?>
Editováno 10.3.2016 19:13
 
Odpovědět
10.3.2016 19:10
Avatar
Odpovídá na mr.sammet
Uživatel sítě :10.3.2016 19:45

U druhého cyklu přepiš $result na $result2 například.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
+1
10.3.2016 19:45
Chybami se člověk učí, běžte se učit jinam!
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Uživatel sítě
mr.sammet:10.3.2016 19:48

nemám slov prostě, jaká jsem lopata :-D ... děkuji mockrát!!! :-)

Editováno 10.3.2016 19:49
 
Nahoru Odpovědět
+1
10.3.2016 19:48
Avatar
Martin Štěpánek :10.3.2016 21:15

jen doporučuji ty data od uživatele ošetřovat funkcí htmlspecialchars() ;-)

Nahoru Odpovědět
10.3.2016 21:15
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
mr.sammet
Člen
Avatar
Odpovídá na Martin Štěpánek
mr.sammet:15.3.2016 16:16

jop SQL Injection jsem vyřešil hned poté, děkuji :-)

 
Nahoru Odpovědět
15.3.2016 16:16
Avatar
Nahoru Odpovědět
+2
15.3.2016 16:29
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
shaman
Člen
Avatar
Odpovídá na mr.sammet
shaman:15.3.2016 16:37

htmlspecialchars nie je osetrenie voci sql injection, aj ked na prvy pohlad ta moze ukludnit. Tiez tie mysql_ prikazy su uz niekolko rokov neodporucane pouzivat a v PHP7 uplne odstranene. Prepis ich aspon na mysqli alebo PDO.

Nahoru Odpovědět
+2
15.3.2016 16:37
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.