Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błąd na prostym forum w php, PO usunięciu nie chce się dodać nowy wątek
mozart2008
post 19.06.2010, 09:15:08
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

Ostrzeżenie: (0%)
-----


Witam.
Mam strasznie głupi błąd dotyczący małego forum które piszę.
Otóż moje forum wyświetla wszystkie posty z bazy danych MySQL.
Można dodać też nowy post.
Czyli dodawanie i włączanie postów działa ALE:
kiedy skasuję obojętnie jaki post.... wtedy kiedy dodaje nowy.. noto w liście postów są tylko 2 przecinki

tutoriale.php
  1. <center>FORUM - TUTORIALE</center>
  2. <?php
  3. @mysql_connect('tajne','tajne','tajne')
  4. or die('Nieudane połączenie');
  5. @mysql_select_db('tajne')
  6. or die('Nieudane wybranie bazy');
  7. if(isset($_SESSION['zalogowany'])) {
  8. ?>
  9. <div id="naglowek1">
  10. <br/>
  11. <b>OPCJE:</b>
  12. <br/><br/>
  13. </div>
  14. <hr/>
  15. <form method='POST' action='index.php?url=tutoriale'>
  16. <input type="submit" name="odswiez" class="wyslij" value="Odśwież/Powrót" />
  17. <input type="submit" name="nowy_watek" class="wyslij" value="Nowy wątek" />
  18. </form>
  19. <hr/>
  20. <br/>
  21. <center>
  22. <div id="naglowek1">
  23. <br/>
  24. <b>WSZYSTKIE POSTY:</b>
  25. </div>
  26. </center>
  27. <?php
  28. if (isset($_POST['odswiez'])) {
  29. header ('Location:index.php?url=tutoriale') ;
  30. }
  31. if (isset($_POST['nowy_watek'])) {
  32. header ('Location:index.php?url=nowywatek') ;
  33. }
  34. ?>
  35. <hr/>
  36. <div style="width: 1000px; height: 700px; overflow: scroll;">
  37. <?php
  38. // Wyświetlanie forum dyskusyjnego. Jeżeli jest podany numer postu,
  39. // wyświetla się on i jego odpowiedzi. Jeżeli nie - całe forum.
  40. function wypiszforum ($nr) {
  41. // Funkcja rekurencyjnie wyświetla wszystkie rekordy, będące poniżej
  42. // w hierarchii postów (czyli odpowiedzi, odpowiedzi na odpowiedzi,
  43. // itd...
  44. global $fref; global $fdata; global $fosoba; global $ftytul;
  45.  
  46. $str = '';
  47. for ($i=count($fref); $i>=1; $i--) {
  48. if ($fref[$i] == $nr) {
  49. $str .= "<li><a href=\"http://www.alteringphotos.cba.pl/index.php?url=tutoriale&nr=$i\">$ftytul[$i]</a>, ".
  50. "<i>$fosoba[$i], $fdata[$i]</i>\n";
  51. $str .= wypiszforum ($i);
  52. $str .= "</li>";
  53. }
  54. }
  55. if($str != '')
  56. return "<ul>$str</ul>";
  57. else
  58. return $str;
  59. }
  60. if(isSet($_GET['nr'])) $nr = $_GET['nr'];
  61. else $nr = '';
  62. if ($nr>0) { // chcesz wyświetlić post
  63. $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
  64. "FROM forumdyskusyjne WHERE nr=$nr");
  65. if ($rekord = mysql_fetch_array ($wynik)) { // i ten post jest
  66. $tresc = $rekord[2]; $tytul = $rekord[1];
  67. echo ("<h3>$rekord[1]</h3>");
  68. echo ("<p>wysłany przez <b>$rekord[0]</b>, <b>$rekord[3]</b>:");
  69. echo ("</p><p>$rekord[2]</p><hr />");
  70. echo emotki("<a href=\"http://www.alteringphotos.cba.pl/index.php?url=nowywatek&ref=$nr\">Wylij odpowiedź
  71. </a><hr />");
  72. if (isset($_POST['usunwatek'])) {
  73.  
  74. $zapytanie = "DELETE FROM forumdyskusyjne WHERE nr = '$nr' ";
  75. $idzapytania = mysql_query($zapytanie);
  76.  
  77.  
  78. ?>
  79.  
  80. <script type="text/javascript">
  81.  
  82. alert ("Usunąłeś swojego posta!") ;
  83.  
  84. window.location ="http://www.alteringphotos.cba.pl/index.php?url=tutoriale";
  85.  
  86. </script>
  87. <?php
  88. }
  89. ?>
  90. <form method='POST' action='?url=tutoriale&nr=<?php echo $nr; ?>'>
  91. <input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/>
  92. </form>
  93. <?php
  94. } else { $nr = 0; }
  95. } else { $nr = 0; }
  96. // odczyt danych, które będą wykorzystane w funkcji rekurencyjnej
  97. $wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ".
  98. "FROM forumdyskusyjne");
  99. while ($rekord = mysql_fetch_array ($wynik)) {
  100. $fref[$rekord[0]] = $rekord[4];
  101. $fdata[$rekord[0]] = $rekord[3];
  102. $ftytul[$rekord[0]] = $rekord[2];
  103. $fosoba[$rekord[0]] = $rekord[1];
  104. }
  105. // wypisanie postów potomnych - rekurencja
  106. print wypiszforum ($nr);
  107. ?>
  108. </div>
  109. <?php
  110. }else{
  111. ?>
  112. <br/><br/><br/>
  113. <center>
  114. Musisz być zalogowany aby oglądać tę stronę!!
  115. </center>
  116. <br/><br/><br/><br/><br/>
  117. <br/><br/><br/><br/><br/>
  118. <?php
  119. }
  120. ?>
  121. <br/>

nowywatek.php
  1. <div id="naglowek1">
  2. <br/>
  3. <b>OPCJE:</b>
  4. <br/><br/>
  5. </div>
  6. <hr/>
  7. <form method='POST' action='http://www.alteringphotos.cba.pl/index.php?url=nowywatek'>
  8. <input type="submit" name="powroot" class="wyslij" value="Powrót" />
  9. </form>
  10. <hr/>
  11. <?php
  12.  
  13. @mysql_connect('tajne','tajne','tajne')
  14. or die('Nieudane połączenie');
  15. @mysql_select_db('tajne')
  16. or die('Nieudane wybranie bazy');
  17. if (isset($_POST['powroot'])) {
  18. header ('Location:index.php?url=tutoriale') ;
  19. }
  20. if (isSet($_POST['co']) && $_POST['co'] == 'wyslij') {
  21.  
  22. $ty = addslashes(htmlspecialchars ($_POST['tytul']));
  23. $os = addslashes(htmlspecialchars ($_SESSION['login']));
  24. $tr = addslashes(nl2br(htmlspecialchars ($_POST['tresc'])));
  25. if ($ty && $os && $tr) { // dopisujesz!
  26. $query = ("INSERT INTO forumdyskusyjne (osoba, tytul, tresc, ".
  27. "data, ref) valueS ('$os', '$ty', '$tr', now(),
  28. '".$_POST['ref']."')");
  29. mysql_query ($query);
  30. print 'Wpis został dokonany.';
  31. } else {
  32. $tresc = $_POST['tresc'];
  33. $tytul = $_POST['tytul'];
  34. $osoba = $_POST['osoba'];
  35. }
  36. } elseif (isSet($_GET['ref']) && $_GET['ref']>0) {echo "aaaa";
  37.  
  38. $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
  39. "FROM forumdyskusyjne WHERE nr=
  40. ".$_GET['ref']);
  41. if ($wynik && $rekord = mysql_fetch_assoc ($wynik)) {
  42.  
  43. $tresc = $rekord['tresc']; $tytul = $rekord['tytul'];
  44. $tresc = str_replace ("<br />", "", $tresc);
  45. $tresc = str_replace ("\n", "\n: ", $tresc); $tresc =
  46. ": ".$tresc;
  47. if (!(ereg ("^RE: ", $tytul))) { // dopisujesz RE,
  48. // o ile nie ma
  49. $tytul = "Re: ".$tytul;
  50. }
  51. print "<h3>Odpowiedz na post: ".$rekord['tytul'].
  52. "</h3><p>Wysłany przez ";
  53. print "<b>".$rekord['osoba']."</b>,
  54. <b>".$rekord['data']."</b></p>".$rekord['tresc']."<br /><hr />";
  55. }
  56. }
  57. // Wyświetlenie formularza
  58. if(!isSet($osoba)) $osoba = '';
  59. if(!isSet($tytul)) $tytul = '';
  60. if(!isSet($tresc)) $tresc = '';
  61. if(isSet($_GET['ref'])) $ref = $_GET['ref']; else $ref = 0;
  62. print "<h3>Poślij post:</h3>";
  63. print "<center>" ;
  64. print "<div id=\"maina\">";
  65. print "<form method='post' action='http://www.alteringphotos.cba.pl/index.php?url=nowywatek'>";
  66. print "<input type=\"image\" src=\"grafika/usmiech.gif\" onclick=\"tresc.value += ';)';\">" ;
  67. print "<input type=\"image\" src=\"grafika/beczy.gif\" onclick=\"tresc.value += '[beczy]';\">" ;
  68. print "<input type=\"image\" src=\"grafika/bezradny.gif\" onclick=\"tresc.value += '[bezradny]';\">" ;
  69. print "<input type=\"image\" src=\"grafika/eee.gif\" onclick=\"tresc.value += ';/';\">" ;
  70. print "<input type=\"image\" src=\"grafika/email.png\" onclick=\"tresc.value += '[email]';\">" ;
  71. print "<input type=\"image\" src=\"grafika/glupek.gif\" onclick=\"tresc.value += '[glupek]';\">" ;
  72. print "<input type=\"image\" src=\"grafika/hehe.gif\" onclick=\"tresc.value += ';d';\">" ;
  73. print "<input type=\"image\" src=\"grafika/yyy.gif\" onclick=\"tresc.value += ';|';\">" ;
  74. print "<input type=\"image\" src=\"grafika/hura.gif\" onclick=\"tresc.value += '[hura]';\">" ;
  75. print "<input type=\"image\" src=\"grafika/jezyk.gif\" onclick=\"tresc.value += ';p';\">" ;
  76. print "<input type=\"image\" src=\"grafika/mutny.gif\" onclick=\"tresc.value += ':(';\">" ;
  77. print "<input type=\"image\" src=\"grafika/smutny.gif\" onclick=\"tresc.value += '[smutny]';\">" ;
  78. print "<input type=\"image\" src=\"grafika/prosi.gif\" onclick=\"tresc.value += '[prosi]';\">" ;
  79. print "<input type=\"image\" src=\"grafika/zly.gif\" onclick=\"tresc.value += '[zly]';\">" ;
  80. print "</div>";
  81. print "<div id=\"maina\">";
  82. print "<input class=\"wyslij\" type=\"hidden\" name=\"co\" value=\"";
  83. print "wyslij\" /><input class=\"wyslij\" type=\"hidden\" name=\"ref\"
  84. value=\".$ref.\" />";
  85. print "<b>Użytkownik:</b>" ."<div id=\"uzytkowniki\">" . $_SESSION['login'] . "</div><br/>" ;
  86. print "<br /><b>Tytuł postu:</b><br/>";
  87. print "<input class=\"wyslij\" type=\"text\" name=\"tytul\" value=\"$tytul\" ";
  88. print "size='50' /><br /><br/><b>Treść:</b><center><textarea name=\"tresc\" ";
  89. print "rows='10' id=\"text\"cols='130'>$tresc</textarea><br /><br/>\n";
  90. print "<input class=\"wyslij\" type=\"submit\" value=\"Wyślij\" />";
  91. print "</center>" ;
  92. print "</form>";
  93. print "</div>";
  94. print "</center>" ;
  95. ?>
  96. <br/>
  97. <br/><br/>


Mam jeszcze jeden błąd.
KIedy dodaję nowego posta noto jak wpisze temat, potem piszę treści chcę wkleić sobie emotikonkę, klikam na któryś obrazek, imotikonka sie dodaje ale jednocześnie wysyła się formularz.

PYTANIA:
1.Jak zrobić żeby po dodaniu emotikonki formularz sie nie wysyłał?
2.CO zrobić żeby po skasowaniu jakiegoś postu można było dodać nowy?

Z emotikonkami sobie poradziłem.
Na końcu wpisałem return false;
Ale nadal zostaje jeden błąd,dotyczący tych przecinków kiedy skasuje sie post i chce sie dodać nowy.
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:10