Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak dodac kod php z formularzem newsów
#1
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.
Odpowiedz
#2
Z czym masz problem konkretnie? Pokaż kod.
Odpowiedz
#3
(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ę.
Odpowiedz
#4
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).
Odpowiedz
#5
(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.
Odpowiedz
#6
(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.
Odpowiedz
#7
możesz zrobić logowanie na sesji i wtedy przed startem skryptu sprawdzać czy sesja istnieje
Odpowiedz
#8
(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.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Banalny problem z formularzem R_Rafalsky 10 5,631 12-07-2012, 18:20
Ostatni post: Pedro84
  [HTML + CSS] Prezentacja newsów muph19 2 2,610 22-05-2012, 22:49
Ostatni post: muph19
  [PHP] Pytanie: System newsów Sebjekt 6 4,404 17-05-2012, 01:29
Ostatni post: Sebjekt
  Możliwość dodawania newsów Adios 15 8,356 01-05-2012, 21:43
Ostatni post: kornell
  problem z formularzem tenorek 8 4,602 09-02-2012, 18:46
Ostatni post: kornell

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości
Sponsorzy i przyjaciele
SeoHost.pl