Autor | Zpráva | ||
---|---|---|---|
Dawe97 Profil |
Dělám do školy projekt a nefunguje mi část s komentáři. Nefunguje výpis ani zápis do databáze
<?php session_start(); include 'db_spojeni.php'; require_once ("nbbc/nbbc.php"); ?> <!DOCTYPE html> <html> <head> <script src="jsn/jquery.js" type="text/javascript"></script> <script src="jsn/main.js" type="text/javascript"></script> <link rel="shortcut icon" href="/obrazky/favicon.ico" type="image/x-icon" /> <link href="styl.css" rel="stylesheet" type="text/css"/> <title>Blogger</title> <meta charset="UTF-8"> </head> <body> <div id="obal"> <img class="logo" src="obrazky/logo.png" alt=""/> <img class="citat" src="obrazky/citat.png" alt=""/> <?php $con=mysqli_connect("###", "###", "###", "###"); $bbcode = new BBCode; $sql = "SELECT * FROM prispevek ORDER BY id DESC"; $res = mysqli_query($db_spojeni, $sql) or die(mysqli_error($db_spojeni)); $posts = ""; if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_assoc($res)) { $id = $row['id']; $prispevek_nadpis = $row['prispevek_nadpis']; $autor = $row['autor']; $text = $row['text']; $output = $bbcode->Parse($text); $posts .= "<div class='prispevky'><h2>$prispevek_nadpis</h2><p class='autor2'><span class='autor'>Autor:</span>$autor</p><p class='clanek'>$text</p> <form class='formular_kom' action=index.php method='post' enctype='multipart/form-data'> <textarea placeholder='komentář' name='text_kom' rows='10' cols='50'></textarea><br /> <input class='tlac_kom' name='submit' type='submit' value='okomentovat'> </form> </div>"; } echo $posts; }else { echo "nejsou prispevky"; } // komentáře if(isset($_POST['submit'])) { $text_kom = strip_tags($_POST['text_kom']); $text_kom = mysqli_real_escape_string($db_spojeni, $_POST['text_kom']); $kom = "INSERT INTO komentar (id_kom,cislo_prispevek,text_kom) VALUES('','',$text_kom')"; if($text_kom == "") { echo "<span class='chyba_kom'> prosím vyplňte textové pole </span>"; } else { mysqli_query($db_spojeni, $kom); } } $kom = "SELECT * FROM komentar ORDER BY id_kom DESC"; $vys = mysqli_query($db_spojeni, $kom) or die(mysqli_error($db_spojeni)); $coments = ""; if(mysqli_num_rows($vys) > 0) { while($row = mysqli_fetch_assoc($vys)) { $id_kom = $row['id_kom']; $cislo_prispevek = $row['cislo_prispevek']; $text_kom = $row['text_kom']; $coments .= "<div class='komenty'><p> $text_kom </p></div>"; echo $coments; } } $query = mysqli_query($con, "SELECT COUNT(id) FROM prispevek"); $row = mysqli_fetch_array($query,MYSQLI_NUM); ?> <div class="pocet"> <?php printf("Celkem příspěvků: %s",$row[0]); ?> </div> <a class="pridat" href ='post.php' target='_blank' >Přidat příspěvek</a> <img class="scroll-to-top-link" src="obrazky/scroll-to-top-link.png" alt="obrazek" title="scroll-to-top-link" > </div> </body> </html> Moderátor juriad: Odmazány přihlašovací údaje.
|
||
Lonanek Profil |
Co nejrychleji ve vlastnímm>m zájmu vymažte přihlašovací údaje k databázi.
Moderátor juriad: Provedeno.
Nevím co máte v souboru db_spojeni.php, ale v proměnné $db_spojení nemáte to co potřebujete. To se nachází v proměnné $con. pak např. ř.47 bude vypadat: $res = mysqli_query($con, $sql) or die(mysqli_error($con)); |
||
Dawe97 Profil |
#3 · Zasláno: 5. 6. 2016, 20:16:42
Děkuji za upomínku ohledně hesla. Nějak mi to nedošlo.
Můj problém ohledně komentářů se ale nezměnil.Byl bych vděčný za jakékoli další nápady |
||
Lonanek Profil |
A opravil jste v dotazech proměnnou podle [#2]?
Jak vypadá kód po úpravě? |
||
Dawe97 Profil |
#5 · Zasláno: 5. 6. 2016, 20:52:37
Kod jsem upravil a teď vypadá takto:
<?php session_start(); include 'db_spojeni.php'; require_once ("nbbc/nbbc.php"); ?> <!DOCTYPE html> <html> <head> <script src="jsn/jquery.js" type="text/javascript"></script> <script src="jsn/main.js" type="text/javascript"></script> <link rel="shortcut icon" href="/obrazky/favicon.ico" type="image/x-icon" /> <link href="styl.css" rel="stylesheet" type="text/css"/> <title>Blogger</title> <meta charset="UTF-8"> </head> <body> <div id="obal"> <img class="logo" src="obrazky/logo.png" alt=""/> <img class="citat" src="obrazky/citat.png" alt=""/> <?php $con=mysqli_connect("******","******","******","******"); $bbcode = new BBCode; $sql = "SELECT * FROM prispevek ORDER BY id DESC"; $res = mysqli_query($con, $sql) or die(mysqli_error($con)); $posts = ""; if(mysqli_num_rows($res) > 0) { while($row = mysqli_fetch_assoc($res)) { $id = $row['id']; $prispevek_nadpis = $row['prispevek_nadpis']; $autor = $row['autor']; $text = $row['text']; $output = $bbcode->Parse($text); $posts .= "<div class='prispevky'><h2>$prispevek_nadpis</h2><p class='autor2'><span class='autor'>Autor:</span>$autor</p><p class='clanek'>$text</p> <form class='formular_kom' action=index.php method='post' enctype='multipart/form-data'> <textarea placeholder='komentář' name='text_kom' rows='10' cols='50'></textarea><br /> <input class='tlac_kom' name='submit' type='submit' value='okomentovat'> </form> </div>"; } echo $posts; }else { echo "nejsou prispevky"; } // komentáře if(isset($_POST['submit'])) { $text_kom = strip_tags($_POST['text_kom']); $text_kom = mysqli_real_escape_string($con, $_POST['text_kom']); $kom = "INSERT INTO komentar (id_kom,cislo_prispevek,text_kom) VALUES('','',$text_kom')"; if($text_kom == "") { echo "<span class='chyba_kom'> prosím vyplňte textové pole </span>"; } else { mysqli_query($con, $kom); } } $kom = "SELECT * FROM komentar ORDER BY id_kom DESC"; $vys = mysqli_query($con, $kom) or die(mysqli_error($con)); $coments = ""; if(mysqli_num_rows($vys) > 0) { while($row = mysqli_fetch_assoc($vys)) { $id_kom = $row['id_kom']; $cislo_prispevek = $row['cislo_prispevek']; $text_kom = $row['text_kom']; $coments .= "<div class='komenty'><p> $text_kom </p></div>"; echo $coments; } } $query = mysqli_query($con, "SELECT COUNT(id) FROM prispevek"); $row = mysqli_fetch_array($query,MYSQLI_NUM); ?> <div class="pocet"> <?php printf("Celkem příspěvků: %s",$row[0]); ?> </div> <a class="pridat" href ='post.php' target='_blank' >Přidat příspěvek</a> <img class="scroll-to-top-link" src="obrazky/scroll-to-top-link.png" alt="obrazek" title="scroll-to-top-link" > </div> </body> </html> |
||
Lonanek Profil |
Kde lze vidět?
Jen drobnost: 1) NIKDY bych do spouštěného souboru neuváděl přihlašovací údaje - to není drobnost, ale bezpečnost, proč includujete soubor db_spojeni.php a co v něm je? 2) určitě bych v cyklu (pokud to není nezbytné) nenačítal data do proměnné, kterou po skončení cyklu vypíši, ale přímo v cyklu bych tyto údaje vypisoval. 3) v cyklu pro komentáře neustále načítáte do proměnné a pak ji vypisujete, tedy pokud k článku budete mít 10 komentářů, pak se objeví 1, pak 1 a 2, 1+2+3, 1+2+3+4, ... |
||
Dawe97 Profil |
#7 · Zasláno: 5. 6. 2016, 21:16:54
Nahradil jsem proměnou $db_spojeni proměnou $con.Můj problém s komentáři se nezměnil.
|
||
Lonanek Profil |
Chybové hlášky?
Kde lze vidět stránku? Opravte si chybu: <form class='formular_kom' action='index.php' method='post' enctype='multipart/form-data'> $kom = "INSERT INTO komentar (id_kom,cislo_prispevek,text_kom) VALUES('','','$text_kom')"; $con=mysqli_connect("******","******","******","******"); // tohle urcite nepatri do spousteneho souboru $con=mysqli_connect($server, $user, $pass, $database); // takhle je to lepsi, promenne pak definovat v souboru db_spojeni.php |
||
Dawe97 Profil |
Chyby jsem opravil.Odkaz na stránku : blogger.czweb.org
Pořád nemůžu přijít na to, proč se údaje z formuláře: formular_kom ani nevloží do databáze.Problém je že mi to nepíše žádné chybové hlášky. obsah souboru db_spojeni je čístě připojení k databázi |
||
Lonanek Profil |
Dawe97:
„obsah souboru db_spojeni je čístě připojení k databázi“ Tak proč je ještě jedno ve spouštěném souboru? Opravil jste ty chyby? Dawe97: „Problém je že mi to nepíše žádné chybové hlášky.“ Při pokusu o vložení příspěvku: Notice: Undefined variable: db_spojeni in /3w/czweb.org/b/blogger/db_spojeni.php on line 7 Připojení se nepodařilo |
||
Dawe97 Profil |
Původně jsem myslel že řádek : "$con=mysqli_connect($server, $user, $pass, $database);" musí být i v souboru index.php(už tam není).
Chyby jsem si opravil. "Notice: Undefined variable: db_spojeni in /3w/czweb.org/b/blogger/db_spojeni.php on line 7 Připojení se nepodařilo" - ted jsem to upravoval... přidání příspěvku už funguje. |
||
Lonanek Profil |
Při pokusu o vložení prázdného příspěvku:
<b>Warning</b>: mysqli_connect(): (HY000/1045): Access denied for user 'blogger.czwe4896'@'venuse.srv.wz.cz' (using password: YES) in <b>/3w/czweb.org/b/blogger/post.php</b> on line <b>4</b><br /> <br /> <b>Warning</b>: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in <b>/3w/czweb.org/b/blogger/post.php</b> on line <b>14</b><br /> <br /> <b>Warning</b>: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in <b>/3w/czweb.org/b/blogger/post.php</b> on line <b>16</b><br /> <br /> <b>Warning</b>: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in <b>/3w/czweb.org/b/blogger/post.php</b> on line <b>18</b> Takže komplet soubory db_spojeni.php a index.php, soubor post.php si upravíte později. |
||
Dawe97 Profil |
tohle je soubor post.php
Teď bych hlavně potřeboval vyřešit vkládání a vypisování těch komentářů. <?php session_start(); include 'db_spojeni.php'; if(isset($_POST['post'])) { $prispevek_nadpis = strip_tags($_POST['prispevek_nadpis']); $text = strip_tags($_POST['text']); $autor = strip_tags($_POST['autor']); $prispevek_nadpis = mysqli_real_escape_string($con, $_POST['prispevek_nadpis']); $text = mysqli_real_escape_string($con, $_POST['text']); $autor = mysqli_real_escape_string($con, $_POST['autor']); $sql = "INSERT INTO prispevek (prispevek_nadpis,autor,text) VALUES('$prispevek_nadpis','$autor','$text')"; if($prispevek_nadpis == "" || $text == "") { echo "<span class='chyba'> prosím vyplňte všechna pole </span>"; } else { mysqli_query($con, $sql); header("Location: index.php"); } } ?> <!DOCTYPE html> <html> <head> <link href="styl.css" rel="stylesheet" type="text/css"/> <link rel="shortcut icon" href="/obrazky/favicon.ico" type="image/x-icon" /> <title>Blogger</title> <meta charset="UTF-8"> </head> <body class="body_post"> <div id="obal"> <h3>Napište nám svůj názor</h3> <form class="formular" action="post.php" method="post" enctype="multipart/form-data"> <span class="popisek"> Vyplňte titulek článku </span> <input placeholder="titulek" name="prispevek_nadpis" type="text" autofocus size="48"><br /><br /> <span class="popisek"> Zadejte vaše jméno </span> <input placeholder="autor" name="autor" value="anonym" type="text"><br /><br /> <span class="popisek"> Vyplňte text příspěvku </span> <textarea placeholder="text" name="text" rows="20" cols="50"></textarea><br /> <input class="tlac" name="post" type="submit" value="Zveřejnit"> </form> </div> </body> </html> |
||
Lonanek Profil |
post.php Vám již funguje, jen výpis chyby posíláte před hlavičkou souboru. Tu posíláte později...
viz: <span class='chyba'> prosím vyplňte všechna pole </span> <!DOCTYPE html> <html> <head> dejte sem řádek s insertem do tabulky komentar |
||
Dawe97 Profil |
Lonanek:
Můžu se zeptat jak by měl teda vypadat ten post.php ? Myslel jste to takhle ? if($prispevek_nadpis == "" || $text == "") { echo "<span class='chyba'> prosím vyplňte všechna pole </span>"; } else { $sql = "INSERT INTO prispevek (prispevek_nadpis,autor,text) VALUES('$prispevek_nadpis','$autor','$text')"; mysqli_query($con, $sql); |
||
Lonanek Profil |
Způsobů je mnoho, např.:
<?php ... if(empty($prispevek_nadpis) OR empty($text)) { $error = 1; } else { mysqli_query($con, $sql); header("Location: index.php"); exit; } } ?> <!DOCTYPE html> <html> <head> <link href="styl.css" rel="stylesheet" type="text/css"/> <link rel="shortcut icon" href="/obrazky/favicon.ico" type="image/x-icon" /> <title>Blogger</title> <meta charset="UTF-8"> </head> <body class="body_post"> <div id="obal"> <h3>Napište nám svůj názor</h3> <?php if ($error) echo "<span class='chyba'> prosím vyplňte všechna pole </span>"; ?> ... Jsou v tabulce komentar všechny sloupce, které uvádíte v INSERTU? Předpokládám, že propojení příspěvku a komentáře budete řešit později. |
||
Dawe97 Profil |
#17 · Zasláno: 5. 6. 2016, 22:41:05
V INSERTU jsou všechny sloupce z tabulky "komentar".
Propojení mám pomocí cizího klíče na sloupec "cislo_prispevek". Mám přidat obrázek relace mezi tabulkami "prispevek" a "komentar"? |
||
Lonanek Profil |
#18 · Zasláno: 7. 6. 2016, 18:31:01
již vyřešeno?
Pokud funguje ukládání a výpis článků, pak musí také fungovat i komentáře k článkům. |
||
Časová prodleva: 9 let
|
0