ďťż

[PHP] Skrypt artykułów

       

Podstrony


telcocafe

Witam
Tworzę obecnie oskryptowanie na pewien serwis, i potrzebny byłby mi skrypt artykułów w php. Nie są potrzebne jakieś wymyślne opcje, wystarczy dodawanie, usuwanie, edytowanie artykułów, i wyświetlanie ich pojedynczo. Logowanie niezbyt potrzebne, chyba, że byłby jeden login i hasło do panelu. Poza tym przy wyświetlaniu artykułu wyświetlona takze data dodania go i nick oraz e-mail autora.

W związku z tym pytam się:
Czy ktoś z forumowiczów zna taki skrypt, bądź stworzyłby go? W zamian jestem w stanie użyczyć reklamy na dużym serwisie. Sam bym coś takiego stworzył, ale administrator strony życzy sobie, by zacząć pozycjonowanie strony, i muszę oskryptowanie w bardzo szybkim czasie skończyć.

Z góry dziekuję za odpowiedź
Mad Max



Tu masz trochę skryptów.

Z tego co widziałem, to niestety żaden z skryptów z tamtej strony nie pasuje do moich wymagań. Najbliżej był skrypt b-Arts, ale dobijało mnie to, że wszystko robiło się ręcznie.

Zacznijmy od skryptu tworzącego tabelę i skryptu dla administratora. Tabelę możesz utworzyć następującym skryptem:
<? $login = "admin"; $haslo = "haslo"; $sql_host = "localhost"; $sql_user = "user"; $sql_password = "password"; $sql_baza = "baza1"; $sql_tabela = "news"; if ($_SERVER["PHP_AUTH_USER"]<>$login or $_SERVER["PHP_AUTH_PW"]<>$haslo) {  header("WWW-Authenticate: Basic realm=\"autoryzacja\"\n");  header("HTTP/1.0 401 Unauthorized\n");  echo "Złe hasło lub login!";  exit; } $baza = mysql_connect($sql_host, $sql_user, $sql_password); if ($baza) {  $wynik = mysql_select_db($sql_baza);  if ($wynik) { //    $wynik = mysql_query("DROP TABLE $sql_tabela");    $wynik = mysql_query("CREATE TABLE $sql_tabela (      id INT NOT NULL PRIMARY KEY auto_increment,      data DATETIME NOT NULL,      tytul TINYTEXT,      tresc TEXT NOT NULL    )");    if ($wynik) echo "<br />Tabela została utworzona";    else echo "<br />UWAGA: Tabela NIE została utworzona";  } else echo "Nie można połączyć się z bazą";  mysql_close($baza); } else echo "Nie można połączyć się z serwerem MySQL"; ?>
Administracja:
<? $login = "admin"; $haslo = "haslo"; $sql_host = "localhost"; $sql_user = "user"; $sql_password = "password"; $sql_baza = "baza1"; $sql_tabela = "news"; if ($_SERVER["PHP_AUTH_USER"]<>$login or $_SERVER["PHP_AUTH_PW"]<>$haslo) {  header("WWW-Authenticate: Basic realm=\"na hasło\"\n");  header("HTTP/1.0 401 Unauthorized\n");  echo "Złe hasło lub login!";  exit; } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <title>Administracja</title> <style type="text/css"><!-- body, td, p, center { font-family: Arial; font-size: 12px; } --></style> </head><body><center> <? $skrypt = $_SERVER["PHP_SELF"]; // adres skryptu $ac = trim($_REQUEST["ac"]); // podjęta akcja $sz = trim($_REQUEST["sz"]); // ciąg do wyszukiwania $id = trim($_REQUEST["id"]); $data = trim($_REQUEST["data"]); $tytul = trim($_REQUEST["tytul"]); $tresc = trim($_REQUEST["tresc"]); echo <<<KONIEC <table><tr><td><a href="$skrypt?ac=form">nowy news</a></td><td>  <form action="$skrypt" method="post" style="margin:0px;">  <input type="hidden" name="ac" value="szukaj">  <input type="text" name="sz">  <input type="submit" value=" szukaj ">  </form> </td></tr></table> KONIEC; // ======================== POBIERANIE DANYCH DO ZMIANY if ($ac=="zmien" and $id<>"") {  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik) {      $wynik = mysql_query("SELECT * FROM $sql_tabela WHERE id=$id");      if ($wynik) {        $pole = mysql_fetch_array($wynik);        $id = htmlspecialchars($pole["id"], ENT_QUOTES);        $data = htmlspecialchars($pole["data"], ENT_QUOTES);        $tytul = htmlspecialchars($pole["tytul"], ENT_QUOTES);        $tresc = htmlspecialchars($pole["tresc"], ENT_QUOTES);      }    }    mysql_close($baza);  }  $ac="form"; } // ======================== FORMULARZ DODAWANIA/AKTUALIZACJI DANYCH if ($ac=="form") {  if ($data=="") $data = date("Y-m-d H:i:s"); echo <<<KONIEC  <form action="$skrypt" method="post" enctype="multipart/form-data">  <input type="hidden" name="MAX_FILE_SIZE" value="100000">  <input type="hidden" name="ac" value="dodaj">  <input type="hidden" name="id" value="$id">  <table border=0>    <tr><td>data: </td><td><input type="text" name="data"      value="$data" style="width:200px;"></td></tr>    <tr><td>tytuł: </td><td><input type="text" name="tytul"      value="$tytul" style="width:400px;"></td></tr>    <tr><td>treść: </td><td><textarea name="tresc" rows=12 cols=5      style="width:400px;">$tresc</textarea></td></tr>    <tr><td>plik: </td><td><input name="plik" type="file"></td></tr>    <tr><td>&nbsp;</td><td><input type="submit" value=" dodaj "></td></tr>  </table></form> KONIEC; } // ======================== DODANIE/AKTUALIZACJA W BAZIE if ($ac=="dodaj") {  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik && $id=="") {      $wynik = mysql_query("        INSERT INTO $sql_tabela (data, tytul, tresc)        VALUES ('$data','$tytul','$tresc')      ");      if (is_uploaded_file($_FILES["plik"]["tmp_name"])) {        if (eregi("\.jpg$",$_FILES["plik"]["name"] ))          move_uploaded_file($_FILES["plik"]["tmp_name"],          "../img/".mysql_insert_id().".jpg");        if (eregi("\.gif$",$_FILES["plik"]["name"] ))          move_uploaded_file($_FILES["plik"]["tmp_name"],          "../img/".mysql_insert_id().".gif");      }    }    if ($wynik && $id<>"") {      $wynik = mysql_query("        UPDATE $sql_tabela        SET data='$data', tytul='$tytul', tresc='$tresc'        WHERE id=$id;      ");      if (is_uploaded_file($_FILES["plik"]["tmp_name"])) {        if (file_exists("../img/".$id.".jpg"))           @unlink("../img/".$id.".jpg");        if (file_exists("../img/".$id.".gif"))           @unlink("../img/".$id.".gif");        if (eregi("\.jpg$",$_FILES["plik"]["name"] ))          move_uploaded_file($_FILES["plik"]["tmp_name"],          "../img/".$id.".jpg");        if (eregi("\.gif$",$_FILES["plik"]["name"] ))          move_uploaded_file($_FILES["plik"]["tmp_name"],          "../img/".$id.".gif");      }    }    if ($wynik) echo "<br>Rekord został poprawnie dodany/uaktualniony";    else echo "<br>Rekord nie został dodany/uaktualniony: ".mysql_error();    mysql_close($baza);    $ac="szukaj";    $szid=$id;  } } // ======================== USUWANIE DANYCH if ($ac=="kasuj" and $id<>"") {  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik) {      $wynik = mysql_query("DELETE FROM $sql_tabela WHERE id=$id");      if (file_exists("../img/".$id.".jpg"))         @unlink("../img/".$id.".jpg");      if (file_exists("../img/".$id.".gif"))         @unlink("../img/".$id.".gif");    }    if ($wynik) echo "<br>Rekord został poprawnie usunięty";    else echo "<br>UWAGA: Rekord nie został usunięty: ".mysql_error();    mysql_close($baza);  } } // ======================== SZUKANIE DANYCH if ($ac=="szukaj") {  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik) {      if ($sz<>"") {        $wynik = mysql_query("          SELECT * FROM $sql_tabela          WHERE (tytul like '%$sz%' or tresc like '%$sz%')            ORDER BY data DESC        ");      } else if ($szid<>"") {        $wynik = mysql_query("SELECT * FROM $sql_tabela WHERE id=$szid");      } else {        $wynik = mysql_query("SELECT * FROM $sql_tabela                              ORDER BY data DESC LIMIT 50");      }      $wierszy = mysql_num_rows($wynik);      $pol = mysql_num_fields($wynik);    }    mysql_close($baza);    if ($wierszy>0) {      echo "<table border=1 cellpadding=4 cellspacing=0>";      echo "<tr><td><b>id</b></td><td><b>data</b> </td>            <td><b>tytuł</b></td></td>            <td>&nbsp;</td><td>&nbsp;</td></tr>";      for ($i=0;$i<$wierszy;$i++) {        $wiersz = mysql_fetch_array($wynik);        echo "<tr>";        echo "<td>".$wiersz["id"]."&nbsp;</td>";        echo "<td>".$wiersz["data"]."&nbsp;</td>";        echo "<td>".$wiersz["tytul"]."&nbsp;</td>";        echo "<td><a href=\"$skrypt?ac=zmien&id={$wiersz["id"]}\"              >zobacz/zmień</a></td>              <td><a href=\"$skrypt?ac=kasuj&id={$wiersz["id"]}\"              >kasuj</a></td></tr>";      }      echo "</table>";    }  } } ?> </center></body></html>
Skrypt widoczny dla użytkowników:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <title>News</title> <style type="text/css"><!-- body, td, p, center { font-family: Arial; font-size: 12px; } --></style> </head><body> <? $sql_host = "localhost"; $sql_user = "user"; $sql_password = "password"; $sql_baza = "baza1"; $sql_tabela = "news"; $a = htmlspecialchars(stripslashes(trim($_GET["a"])), ENT_QUOTES); $sz = htmlspecialchars(stripslashes(trim($_GET["sz"])), ENT_QUOTES); $id = htmlspecialchars(stripslashes(trim($_GET["id"])), ENT_QUOTES); $l_odp_nastronie=10; $l_odp_napasku=5; $start=$a*$l_odp_nastronie; $skrypt="{$_SERVER["PHP_SELF"]}?sz=$sz&"; function pasek($l_odp,$l_odp_nastronie,$l_odp_napasku,$skrypt,$a) {  $l_odp_podz = intval($l_odp / $l_odp_nastronie);  $l_odp_podz_mod = $l_odp % $l_odp_nastronie;  if ($l_odp_podz_mod>0) $l_odp_podz++;  if ($a<0) $a=0;  if ($a>=$l_odp_podz) $a=$l_odp_podz-1;  $start = $a-1;  if ($a>0) {$pop="<a href=\"".$skrypt."a=$start\">&lt;&lt;&lt;    poprzednia</a> - &nbsp;";}  else {$pop = "<font color=gray>&lt;&lt;&lt; poprzednia </font> - &nbsp;";}  if ($a<$l_odp_napasku) {$koniec = $l_odp_napasku*2+1;}    else {$koniec = $a+$l_odp_napasku+1;}  if ($a<=$koniec-$l_odp_napasku) {$star=$a-$l_odp_napasku;}  if ($a>=$l_odp_podz-$l_odp_napasku) {$star=$l_odp_podz-$l_odp_napasku*2-1;}  if ($koniec>$l_odp_podz) $koniec = $l_odp_podz;  if ($star<0) $star=0;  for ($i=$star; $i<$koniec; $i++) {    if ($i <> $a) { $pasek .= "<a href=\"".$skrypt."a=$i\">";}      else {  $pasek .= "<font color=red><b>"; }    if ($l_odp_podz<>1) {$pomocniczy = $i+1;}    if ($i<>$a) { $pasek .= "$pomocniczy</a> &nbsp;"; }      else {$pasek .= "$pomocniczy</b></font> &nbsp;";}  }  $dalej = $a+1;  if ($a<$l_odp_podz-1)   {$nas="- <a href=\"".$skrypt."a=$dalej\">następna &gt;&gt;&gt; </a>";}    else { $nas = "- <font color=gray>następna &gt;&gt;&gt; </font>";}  if ($pomocniczy>0) {$br= "<br> $pop $pasek $nas"; }  echo "<center> znalezionych: <b>$l_odp</b> na <b>$l_odp_podz</b>    stronach $br</center>"; } if ($id<>"") {  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik) {      $wynik = mysql_query("        SELECT * FROM $sql_tabela WHERE id=$id and data<=NOW();      ");    }    mysql_close($baza);  }  if (mysql_num_rows($wynik)==1) {    $dane = mysql_fetch_array($wynik);    echo "<p align=\"center\"><b>{$dane["tytul"]}</b>< br>{$dane["data"]}</p>";    if (file_exists("img/$id.gif"))      echo "<p><img src=\"img/$id.gif\" align=\"right\" /></p>";    if (file_exists("img/$id.jpg"))      echo "<p><img src=\"img/$id.jpg\" align=\"right\" /></p>";    echo "{$dane["tresc"]}";  } else echo "<p align=\"center\">Brak informacji spełniających         kryteria wyszukiwania.</p>";   } else {  echo '  <form action="index.php" method="get" style="margin:0px;">  <input name="sz" type="text" />  <input type="submit" value=" szukaj " />  </form>  ';  $baza = mysql_connect($sql_host, $sql_user, $sql_password);  if ($baza) {    $wynik = mysql_select_db($sql_baza);    if ($wynik) {      if ($sz<>"") {        $odp = mysql_fetch_array(mysql_query("          SELECT COUNT(*) FROM $sql_tabela          WHERE (tresc LIKE '%$sz%' or tytul LIKE '%$sz%')                 and data<=NOW() "));        $l_odp = $odp[0];        $wynik = mysql_query("          SELECT * FROM $sql_tabela          WHERE (tresc LIKE '%$sz%' or tytul LIKE '%$sz%') and data<=NOW()          ORDER BY data DESC LIMIT $start,$l_odp_nastronie        ");      } else {        $odp = mysql_fetch_array(mysql_query("          SELECT COUNT(*) FROM $sql_tabela WHERE data<=NOW()        "));        $l_odp = $odp[0];        $wynik = mysql_query("          SELECT * FROM $sql_tabela WHERE data<=NOW()          ORDER BY data DESC LIMIT $start,$l_odp_nastronie        ");      }    }    mysql_close($baza);  }  $wierszy = mysql_num_rows($wynik);  for ($i=0;$i<$wierszy;$i++) {    $dane = mysql_fetch_array($wynik);    $data = substr($dane["data"],0,10);    echo "<p>• [$data] -    <a href=\"?id={$dane["id"]}\">{$dane["tytul" ]}</a></p>";  }  if ($l_odp>$l_odp_nastronie) {    pasek($l_odp,$l_odp_nastronie,$l_odp_napasku,$skrypt,$a,"& sz=$sz");  }  if ($l_odp<1) echo "<p align=\"center\">Brak informacji spełniających                     kryteria wyszukiwania.</p>"; } ?> </body></html>
Myślę, że wystarczy :P
Użytkownik pura89 edytował ten post 17 marzec 2006, 14:50


Niestety nie wystarczy :( W panelu elegancko dodaję wszystko, a potem na stronie mam:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/*/public_html/*/artykuly.php on line 70


Niestety nie wystarczy :( W panelu elegancko dodaję wszystko, a potem na stronie mam:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/*/public_html/*/artykuly.php on line 70


Spróbuj dodać jakiś artykuł.

Spróbuj pobawić się apostrofami przy pytaniach. U mnie na przykład jak jest nazwa tabeli to na moim serwie trza `nazwa_tabeli` w pytaniu SQL-a wpisać. Inaczej błędy wyskakują. :D

Hmm... Ciężko powiedzieć... Tyle tych mysql_connectów() dałeś pura, tylko po co tyle?
IMHO może dałeś w warunku łączenie sie z bazą, jeśli jakiś tam warunek jest spełniony, o ile mi się wydaje, ta linijka jest poza warunkiem (warunek nie spełniony - nie ma połączenia)...
if ($id<>"") { $baza = mysql_connect($sql_host, $sql_user, $sql_password); if ($baza) {   $wynik = mysql_select_db($sql_baza);   if ($wynik) {     $wynik = mysql_query("       SELECT * FROM $sql_tabela WHERE id=$id and data<=NOW();     ");   }   mysql_close($baza); } if (mysql_num_rows($wynik)==1) {   $dane = mysql_fetch_array($wynik);

//EDIT: ech, coś źle zauważyłem - warunek z mysql_num_rows() jest w warunku poza mysql_connect()...
Użytkownik Coldpeer edytował ten post 17 marzec 2006, 15:23
Hm, skoro więc z tego systemu nici, to może by ktoś zaproponował jakiś inny system?

Moim zdaniem nie ma żadnego błędu w kodzie. Chodzi o to że nie wiadomo czy zapytanie jest poprawnie wysyłane do bazy. Proponuje sprawdzić to przez PhpMyAdmin.


Witam
Tworzę obecnie oskryptowanie na pewien serwis
tworzysz czy kopiujesz ?:>

@down
dokladnie to samo co twoj :=]
Użytkownik bikstopa edytował ten post 17 marzec 2006, 20:10

tworzysz czy kopiujesz ?:>

Szukałem troche, ale nic konkretnego nie znalazłem :(
Tu masz pare artów:
http://php.webhelp.pl
http://webtutorials....L/strona-1.html
http://php.skryptoteka.pl/ (skrypty i arty)
Może znajdziesz coś dla siebie ;)
Użytkownik n4ever edytował ten post 18 marzec 2006, 11:22
Mad Max: a spróbuj dać:
if (@mysql_num_rows($wynik)==1) {
?


Mad Max: a spróbuj dać:
if (@mysql_num_rows($wynik)==1) {
?


To raczej nic nie da. Mad Max miał sprawdzić czy zapytanie jest wysyłane.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.