Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Jak dodac kod php z formularzem newsów - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Jak dodac kod php z formularzem newsów (/thread-jak-dodac-kod-php-z-formularzem-newsow)



Jak dodac kod php z formularzem newsów - neneth - 04-05-2011

Witam wszystkich,

mam problem. Znalazłem w sieci system newsów w php, ale nie wiem, jak dodac go do mojej strony, żeby ukazywał się w divie. Proszę o pomoc.
Oto link:
http://smook.webhelp.pl/newsy/
Na pierwszy rzut oka wszysko jest proste, ale jak próbuję coś dodać, to nic się na stronie nie wyświetla. Proszę o pomoc, to naprawdę ważne.


RE: Jak dodac kod php z formularzem newsów - Pedro84 - 04-05-2011

Z czym masz problem konkretnie? Pokaż kod.


RE: Jak dodac kod php z formularzem newsów - neneth - 04-05-2011

(04-05-2011, 15:22)Pedro84 napisał(a): Z czym masz problem konkretnie? Pokaż kod.

Tabela newsy
Kod:
CREATE TABLE `newsy` (
  `id` smallint(6) NOT NULL auto_increment,
  `dodano` datetime NOT NULL default '0000-00-00 00:00:00',
  `autor` varchar(255) NOT NULL default '',
  `tresc` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM COMMENT='Tabela z newsami' AUTO_INCREMENT=1 ;

Tabela komentarze
Kod:
CREATE TABLE `komentarze` (
  `lp` smallint(6) NOT NULL auto_increment,
  `id` smallint(6) NOT NULL default '0',
  `dodano` datetime NOT NULL default '0000-00-00 00:00:00',
  `autor` varchar(255) NOT NULL default '',
  `tresc` text NOT NULL,
  PRIMARY KEY  (`lp`)
) TYPE=MyISAM COMMENT='Komentarze' AUTO_INCREMENT=1 ;

db_connect.php
Kod:
<?
$db=mysql_connect('serwer', 'uzytkownik', 'haslo');
mysql_select_db('nazwa_bazy', $db);    
?>


dodaj.php
Kod:
<html>
<head>
  <title>Dodajemy newsa</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body>
<?
// lacze sie z baza danych
require('db_connect.php');
// spradzam czy wyslano formularz
if($_POST)
{
  // sprawdzam czy wypelniono wymagane pola
  if((trim($_POST['autor'])) && (trim($_POST['tekst'])))
  {
    // dodaje newsa do bazy
    if(mysql_query("INSERT INTO newsy VALUES('', NOW(),
                    '".trim(htmlspecialchars($_POST['autor']))."',
                    '".trim(htmlspecialchars($_POST['tekst']))."')"))
      echo 'Dodałem news o ID:'.mysql_insert_id();
    else echo 'Nie mogłem dodać newsa';
  }
  else echo 'Nie podałeś autora lub treści newsa';
}
?>
  <hr>
  <form name="news" method="post" action="dodaj.php">
    Treść newsa:<br>
    <textarea name="tekst" rows="5" cols="40"></textarea><br>
    Autor:<br>
    <input type="text" name="autor"><br>
    <input type="reset" value="wyczyść"> <input type="submit" value="wyslij">
  </form>
</body>
</html>
[/cpde]

i kod odpowiedzialny za wyświetlanie newsów i komentarzy (chyba powinien nazywać się news.php

[code]
// lacze sie z baza
require('db_connect.php');
// jesli wybrano jakis konkretny news
if(intval($_GET['newsid']))
{
  // powrot do wszystkich newsow (nazwa news.php jest oczywiscie dla przykladu)
  echo '<p><a href="news.php">Najnowsze newsy</a></p>';

  // pobieram newsa
  $sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM newsy WHERE id='".intval($_GET['newsid'])."'";
  $query=mysql_query($sql);
  if($result=mysql_fetch_assoc($query))
  {
    // zawartosc newsa
    echo '<p>'.nl2br($result['tresc']).'</p>';
    // autor
    echo '<p><i>'.$result['autor'].' ('.$result['utworzono'].')</i></p>';
    // oddzielam od komentarzy
    echo '<hr>Komentarze:<br>';

    // dopisuje komentarz do bazy
    if($_POST)
    {
      if((trim($_POST['autor'])) && (trim($_POST['tekst'])))
      {
        if(mysql_query("INSERT INTO komentarze VALUES('', '".intval($_GET['newsid'])."',
                        NOW(), '".trim(htmlspecialchars($_POST['autor']))."', '".trim(htmlspecialchars($_POST['tekst']))."')"))
          echo 'Dodałem komentarz';
        else echo 'Nie mogłem dodać komentarza';
      }
      else echo 'Nie dopisałem komentarza - podaj swoje imię i wpisz jakiś komentarz!';
      echo '<br>';
    }

    // pobieram komentarze do newsa od najstarszego do najnowszego
    $sql="SELECT DATE_FORMAT(dodano, '%e-%m-%Y %H:%i') AS utworzono, autor, tresc FROM komentarze WHERE id='".intval($_GET['newsid'])."'";
    $query=mysql_query($sql);
    while($result=mysql_fetch_assoc($query))
    {
      print('<p>'.nl2br($result['tresc']).' ('.$result['autor'].'/'.$result['utworzono'].')</p>');
    }

    // formularz do dodawania komentarza
    ?>
    <hr>
    <form name="komentarz" method="post" action="news.php?newsid=<? echo intval($_GET['newsid']); ?>">
       Dodaj komentarz:<br>
       <textarea name="tekst" rows="5" cols="40"></textarea><br>
       Autor:<br>
       <input type="text" name="autor"><br>
       <input type="reset" value="wyczyść"> <input type="submit" value="wyslij">
    </form>
    <?
  }
}
// wszystkie newsy
else
{
  // pobieram newsy w kolejnosci od najnowszego do najstarszego
  // przy pomocy zlaczenia z drugiej tabeli wyciagam ilosc komentarzy dla każdego newsa
  $sql="SELECT newsy.id, DATE_FORMAT(newsy.dodano, '%e-%m-%Y %H:%i') AS utworzono,
        newsy.autor, newsy.tresc, COUNT(lp) AS il_kom
        FROM newsy
        LEFT JOIN komentarze ON (komentarze.id=newsy.id)
        GROUP BY newsy.id ORDER BY newsy.dodano DESC";
  $query=mysql_query($sql);
  while($result=mysql_fetch_assoc($query))
  {
    // zawartosc newsa
    echo '<p>'.nl2br($result['tresc']).'</p>';
    // autor
    echo '<p><i>'.$result['autor'].' ('.$result['utworzono'].')</i></p>';
    // ilosc komentarzy i link do nich
    echo '<p><a href="news.php?newsid='.$result['id'].'">Komentarze: ('.$result['il_kom'].')</a></p>';
    // oddzielam od pozostalych
    echo '<hr>';
  }
}

Nie wiem, czemu nie chce mi się wyświetlić w divie. Jak go includować w pliku index.php , żeby się wyświetlił? Proszę o pomoc. Z góry dziękuję.


RE: Jak dodac kod php z formularzem newsów - Pedro84 - 04-05-2011

Dodaj w miejscu gdzie chcesz wyświetlać newsy include('news.php') albo po prostu ten kod (dołączając wcześniej plik db_connect.php).


RE: Jak dodac kod php z formularzem newsów - neneth - 04-05-2011

(04-05-2011, 15:43)Pedro84 napisał(a): Dodaj w miejscu gdzie chcesz wyświetlać newsy include('news.php') albo po prostu ten kod (dołączając wcześniej plik db_connect.php).

Dziękuję bardzo za pomoc.


RE: Jak dodac kod php z formularzem newsów - neneth - 04-05-2011

(04-05-2011, 16:17)neneth napisał(a):
(04-05-2011, 15:43)Pedro84 napisał(a): Dodaj w miejscu gdzie chcesz wyświetlać newsy include('news.php') albo po prostu ten kod (dołączając wcześniej plik db_connect.php).

Dziękuję bardzo za pomoc.

Mam jeszcze pytanie w związku z tym formularzem, jaki kod należy dopisać i gdzie, aby zabezpieczyć formularz hasłem administracyjnym, żeby nikt nie dodawał aktualności oprócz admina. Będę wdzięczny za pomoc w tej kwestii.


RE: Jak dodac kod php z formularzem newsów - hieroshima - 04-05-2011

możesz zrobić logowanie na sesji i wtedy przed startem skryptu sprawdzać czy sesja istnieje


RE: Jak dodac kod php z formularzem newsów - geforce - 04-05-2011

(04-05-2011, 20:59)neneth napisał(a):
(04-05-2011, 16:17)neneth napisał(a):
(04-05-2011, 15:43)Pedro84 napisał(a): Dodaj w miejscu gdzie chcesz wyświetlać newsy include('news.php') albo po prostu ten kod (dołączając wcześniej plik db_connect.php).

Dziękuję bardzo za pomoc.

Mam jeszcze pytanie w związku z tym formularzem, jaki kod należy dopisać i gdzie, aby zabezpieczyć formularz hasłem administracyjnym, żeby nikt nie dodawał aktualności oprócz admina. Będę wdzięczny za pomoc w tej kwestii.

Możesz również spróbować zabezpieczyć plik/folder za pomocą htaccess.