ďťż
Podstrony
|
telcocafeWitamTworzę 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> </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> </td><td> </td></tr>"; for ($i=0;$i<$wierszy;$i++) { $wiersz = mysql_fetch_array($wynik); echo "<tr>"; echo "<td>".$wiersz["id"]." </td>"; echo "<td>".$wiersz["data"]." </td>"; echo "<td>".$wiersz["tytul"]." </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\"><<< poprzednia</a> - ";} else {$pop = "<font color=gray><<< poprzednia </font> - ";} 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> "; } else {$pasek .= "$pomocniczy</b></font> ";} } $dalej = $a+1; if ($a<$l_odp_podz-1) {$nas="- <a href=\"".$skrypt."a=$dalej\">następna >>> </a>";} else { $nas = "- <font color=gray>następna >>> </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. |
|||
Sitedesign by AltusUmbrae. |