Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Pomoc z komentarzami
Strarus
post
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


cześć:)
Chciałbym prosić o ocenę (także w komentarzach (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ) mojego systemiku komentarzy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

http://www.comments.yoyo.pl/

Ten post edytował Strarus 12.12.2008, 10:40:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




... Boże ratuj. Mamy oceniać "pustą" stronę? Może być sypnął kodem?
A co do kodu twojej strony to tragedia o której wołalem do Boga w pierwszym zdaniu.

Jak da się zalogować to zapodaj konto testowe.
Go to the top of the page
+Quote Post
Strarus
post
Post #3





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


KOD:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <title>Komentarze v3</title>
  6. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  7. <meta name="Keywords" content="komentarze" />
  8. <meta name="description" content="System komentarzy oparty o MySQL" />
  9. <link rel="stylesheet" type="text/css" href="style.css" />
  10.      <script type="text/javascript">
  11. function hl(t,c) {
  12.   if(c) {
  13.       t.style.border='1px solid lightgreen';
  14.   } else {
  15.       t.style.border="1px solid steelblue";
  16.   }
  17. }
  18. </script>
  19. </head>
  20. <body>
  21. <?php if (isset($_GET['add'])):
  22. ?>
  23.  
  24. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  25. <center><table border="0" class="tabelka">
  26. <tr>
  27.  <td>
  28.   Nick:
  29.  </td>
  30.  <td>
  31.   <input class="name" type="text" name="nick" style="width: 100px;" onmouseover="hl(this,true)" onmouseout="hl(this,false)" maxlength="12"/>
  32.  </td>
  33. </tr>
  34. <tr>
  35.  <td>
  36.  Wpisz tutaj swój komentarz:
  37.  </td>
  38.  <td>
  39.   <textarea name="content" class="content" onmouseover="hl(this,true)" onmouseout="hl(this,false)" rows="3" cols="40"></textarea>
  40.  </td>
  41. </tr>
  42. <tr>
  43.  <td>
  44.   WWW: (Bez przedrostka <i>http://</i>)
  45.  </td>
  46.  <td>
  47.   <input class="stronka" type="text" name="www" onmouseover="hl(this,true)" onmouseout="hl(this,false)" style="width: 200px;" maxlength="32"/>
  48.  </td>
  49. </tr>
  50. <tr>
  51.  <td>
  52.   <input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>"/>
  53.  </td>
  54.  <td>
  55.   <input type="submit" value="AKCEPTUJ" />
  56.  </td>
  57. </tr>
  58. </table></center>
  59. </form>
  60. <?php else:
  61.  
  62.  $baza = @mysql_connect('**********', '*******', '********'); // Dane do połączenia z MySQL
  63.  if (!$baza) {
  64.    exit('<p>W tej chwili nie można nawiazać ' .
  65.        'połaczenia z serwerem bazy danych.</p>' );
  66.  }
  67.  if (!@mysql_select_db('*******')) { // Nazwa bazy danych
  68.    exit('<p>Nie można w tej chwili ' .
  69.        'zlokalizować bazy danych.</p>');
  70.  }
  71.  if (isset($_POST['content'])) {
  72.    $content = strip_tags($_POST['content']);
  73.    $ip = $_POST['ip'];
  74.    $nick = strip_tags($_POST['nick']);
  75.    $www = strip_tags($_POST['www']);
  76.    $data = date('d.m.Y H:i:s');
  77.    $sql = "INSERT INTO comments SET
  78.        content='$content',
  79.        www='$www',
  80.        ip='$ip',
  81.        nick='$nick',
  82.        data='$data'";
  83.    if (@mysql_query($sql)) {
  84.      echo '<p>Twój komentarz został dodany. Dziękuję!</p>';
  85.    } else {
  86.      echo '<p>Bład podczas dodawania komentarza: ' .
  87.          mysql_error() . '</p>';
  88.    }
  89.  }
  90.  if (isset($_GET['delete'])) {
  91.    $id = $_GET['delete'];
  92.    $sql = "DELETE FROM comments
  93.        WHERE id=$id";
  94.    if (@mysql_query($sql)) {
  95.      echo '<p>Komentarz został usunięty.</p>';
  96.    } else {
  97.      echo '<p>Bład podczas usuwania komentarza: ' .
  98.          mysql_error() . '</p>';
  99.    }
  100.  }
  101.  echo '<p>Aktualne komentarze:</p>';
  102.  
  103.  $result = @mysql_query('SELECT * FROM comments ORDER BY id DESC');
  104.  if (!$result) {
  105.    exit('<p> Bład podczas wykonywania zapytania: ' . mysql_error() . '</p>');
  106.  }
  107.  while ($row = mysql_fetch_array($result)) {
  108.    $date = $row['data'];
  109.    $nick = $row['nick'];
  110.    $www = $row['www'];
  111.    $ip = $row['ip'];
  112.    $id = $row['id'];
  113.    $content = $row['content'];
  114.    $explode = explode(".", $ip);
  115.    $ip = $explode[0].".".$explode[1].".".$explode[2].".xxx";
  116.  
  117.    session_start();
  118.    if($_SESSION['zalogowany']) {
  119.   $usun =  '<a href="' . $_SERVER['PHP_SELF'] .'?delete=' . $id . '"><img border="0" class="left" src="delete.png" alt="Usuń!" /></a>';
  120. }
  121. else {
  122.  
  123. $usun = '';
  124.  
  125. }
  126.     echo '<center><table class="comment3">
  127. <tr>
  128. <td><font class="nick"><b>Dodane przez: </b>' . $nick . '</font></font><font class="date"><b>Dnia: </b><i>' . $date . '</i></font></td>
  129. </tr>
  130. </table>
  131. <table class="coment">
  132. <tr>
  133. <td><font class="nick"><b>Komentarz:&nbsp</b></font><font class="comments_news">' . $content . '</font></td>
  134. </tr>
  135. </table>
  136. <table class="coment2">
  137. <tr>
  138. <td><font class="www"><b>www: </b><a target="_blank" href=" . $www . ">' . $www . '</a></font><font class="ip"><b>IP: </b>' . $ip . '</font></td>
  139. </tr>
  140. </table>' . $usun . '<br /><br /></center>';
  141.  }
  142.  
  143.  
  144. endif;
  145. ?>
  146. <br /><br /><p><a href="<?php $_SERVER['PHP_SELF']; ?>?add=1"><img border="0" src="add.png" alt="Dodaj!" /></a></p>
  147. <?php
  148. if($_SESSION['zalogowany']) {
  149.   echo  '<a class="strona" href="logout.php"><img border="0" src="logout.png" alt="Wyloguj!" />Wyloguj!</a>';
  150. }
  151. else {
  152.  
  153. echo '<a class="strona" href="login.php"><img border="0" src="login.png" alt="Zaloguj!" />Zaloguj!</a>';
  154.  
  155. }
  156.  
  157.  
  158. ?>
  159. </body>
  160. </html>


To nie jest panel, tylko możliwość usuwania (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) Hasło: passwd
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Po kiego ci logowanie skoro i tak można usunąć wpis bez logowania? :|
Go to the top of the page
+Quote Post
Strarus
post
Post #5





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


W sensie, że przez phpMyAdmin??
Go to the top of the page
+Quote Post
phpion
post
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Strarus @ 12.12.2008, 12:10:04 ) *
W sensie, że przez phpMyAdmin??

http://www.comments.yoyo.pl/index.php?delete=1
Nie chce mi się szukać konkretnych ID do usunięcia ale po kodzie widać, że nie sprawdzasz zalogowania przed usunięciem.

//Edit:
Właśnie wywaliłem ci wszystkie komentarze. Bez logowania. Jak?
http://www.comments.yoyo.pl/index.php?delete=1%20OR%201=1

Ten post edytował phpion 12.12.2008, 10:14:58
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod php kolejna tragedia.
Nawet nie wiem czy ci zadziała session_start().
A dlaczego? To sobie już poszukaj w manualu. Ocena 2/10 za wygląd formularza do komentowania.

Ja rozumie dobre chęci, ale jeżeli potrzebujesz pochwały to pochwała od siebie samego powinna ci wystarczyć. Jeżeli coś będzie naprawdę dobre to cię pochwali ktoś z zewnątrz.

Mały faq na twoje przypuszczalne pytania:
1). Co jest źle?
Napewno wywal logowanie, i popraw wcięcia w kodzie
2) Co jeszcze?
Wszystko
3) Dlaczego wszystko?
Bo jesteśmy w erze programowania projektowego a programowanie strukturalne jest głównie do ćwiczeń i tego się trzymajmy

Ten post edytował wookieb 12.12.2008, 10:14:35
Go to the top of the page
+Quote Post
Strarus
post
Post #8





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


@phpion czyli muszę dać na POST usuwanie?
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Strarus @ 12.12.2008, 12:20:04 ) *
@phpion czyli muszę dać na POST usuwanie?

Musisz poczytać o bezpieczeństwie (szczególnie: SQL Injection) oraz wykorzystać logowanie (sprawdzenie, czy user jest zalogowany) przy usuwaniu komentarzy.
Go to the top of the page
+Quote Post
Strarus
post
Post #10





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


Jeszcze jedno: coś mi nie działa to usuwanie? Na cba działało a tu nie? Zero zmian kodu, a nie działa? Po prostu nie znajduje ID. Jak to załatwić?
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


1. Nie ma tu nic do oceny. Przenoszę wątek na Przedszkole.
2. Proszę nadać mu inny tytuł.
Go to the top of the page
+Quote Post
Strarus
post
Post #12





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


cześć:)
Chciałbym abyście ocenili mój systemik komentarzy po drobnej modernizacji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

http://strarus.cba.pl/index.php

Hasło: passwd

Proszę o ocenę:
a) Wyglądu strony
cool.gif Bezpieczeństwa strony [tzn. możliwość manipulowania komentarzami bez zalogowania]
c) Możliwości i funkcjonalności

Liczę na Wasze opinie i rady odnośnie tego co powinienem dodać, ująć, ulepszyć (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

ref

Ten post edytował Strarus 13.12.2008, 18:54:40
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




yyyy, a co to za logowanie tylko hasłem? A gdzie login? Jak sobie wyobrażasz konta uzytkowników?

Kolejna sprawa: mozna wstrzyknac kod js (dalem alert(2)) przez co bezpieczenstwo tego skryptu mozna do kosza wyrzucic.

Po tych kwiatkach nie chce mi sie juz nic sprawdzac
Go to the top of the page
+Quote Post
Strarus
post
Post #14





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


tak ,zauważyłem komunikat "2" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jak mogę zabezpieczyć skrypt przed takim czymś?? używam przecież funkcji strip_tags do każdego z pól ? ap ropo logowania myślałem na logowaniem z bazą tzw. loginy i hasła były by przechowywane w bazie danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

PS. Ty to zrobiłeś przez panel edycji posta chyba... a tam specjalnie zostawiłem pole content bez strip_tags aby można potem w razie kradzieży skryptu komuś namieszać na stronie (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

Ten post edytował Strarus 13.12.2008, 19:10:06
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
PS. Ty to zrobiłeś przez panel edycji posta chyba... a tam specjalnie zostawiłem pole content bez strip_tags aby można potem w razie kradzieży skryptu komuś namieszać na stronie
Ales namieszal... normalnie brak slow... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Nie ma to jak logiczne myslenie: dodanie zabezpiecze, ale edycji już nie. Przeciez nikt przy zdrowych zmyslach nie hakuje podczas edycji....
Go to the top of the page
+Quote Post
Strarus
post
Post #16





Grupa: Zarejestrowani
Postów: 339
Pomógł: 12
Dołączył: 22.11.2008

Ostrzeżenie: (20%)
X----


czemu namieszałem?? a inne aspekty mojego skryptu??
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
czemu namieszałem??

Przeciez sam napisales:
Cytat
aby można potem w razie kradzieży skryptu komuś namieszać na stronie

No i mowie: to komuś namieszasz takim kodem. Zamiast mysleniem o mieszaniu, zajmij sie lepiej mysleniem o bezpieczenstwie twojego skryptu. Szukaniem naiwniakow co bedą chcieli "ukraść" ci skrypt bedziesz sie martwil za pare lat (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.09.2025 - 00:36