ďťż
Podstrony
|
telcocafeWitam.Napisalem wlasnie taki oto kod, poprawione wszytekie bledy, no i niestety zonk :/ newsy sie nie wyswietlaja, blad o braku takiego newsa tez sie nie wyswietla. Newsy mozna wyswietlic, ale tylko podajac "news.php?nr=1", odnosniki do pelnych newsow tez nie dzialaja ;( http://bercow.inwest...e/news.php?nr=3 http://bercow.inwest...mepage/news.php http://bercow.pl <?php mysql_connect ("localhost", "bercow", "tajne") or die ("Nie mozna polaczyc sie z mysql"); mysql_select_db ("bercow_homepage") or die ("nie mozna polaczyc sie z baza bercow"); $wynik = mysql_query ("SELECT * FROM news WHERE ok=1 ". "ORDER BY nr LIMIT 0,4"); if ($_GET['nr']>0) { //wyswietla pojedynczy news $wynik = mysql_query ("SELECT * FROM news WHERE nr=".$_GET['nr']." AND ok=1"); if ($wynik && $rekord = mysql_fetch_assoc ($wynik)) { echo "<h2>".$record['tytul']."</h2><p>".$rekord[ 'tresc']."</p>"; } else { //brak newsa echo "Brak newsa o takim numerze\n"; } echo "<p><a href=\"news.php\">Wszystkie newsy >></a></p>"; }else { echo "<h2>Newsy</h2>"; if ($_GET['fraza']) { echo "<p>Wynik wyszukiwania słowa <b>".$GET['fraza']."</b><br>"; echo "<a href=\"news.php\">Wszystkie newsy >></a></p>"; } $wynik = mysql_query ( "SELECT * FROM news WHERE ok=1 AND ". "((tytul LIKE '%".$_GET['fraza']."%') OR (osoba LIKE '%".$_GET['fraza']."%') OR ". "(tresc LIKE '%".$_GET['fraza']."%') OR (tresc_krotka LIKE '&".$_GET['fraza']."%)) ". "ORDER BY nr DESC;"); while ($wynik && $rekord = mysql_fetch_assoc ($wynik)) { echo "<p><b><a href=\"news.php?nr=".$rekord['nr']."\">".$ rekord['tytul']; echo "</a></b><br>".$rekord['tresc_krotka']."</p> "; echo "<p aligh=right><i>".$rekord['osoba'].", ".$rekord['data']."</i></p>"; } } echo "<hr><form><input type=\"text\' name \"fraza\" value=\"".$_GET['fraza']."\">"; echo "<input type=\"submit\" value=\"Sukaj w newsach\"></form>"; ?> CREATE TABLE `news` ( `nr` int(11) NOT NULL auto_increment, `data` datetime NOT NULL default '0000-00-00 00:00:00', `tytul` text NOT NULL, `tresc_krotka` text NOT NULL, `tresc` text NOT NULL, `osoba` text NOT NULL, `ok` tinytext NOT NULL, PRIMARY KEY (`nr`) ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=4 ; -- -- Dumping data for table `news` -- INSERT INTO `news` VALUES(1, '2008-02-07 00:00:00', '123', '4567', '8900000000', 'admin', '1'); INSERT INTO `news` VALUES(2, '2008-02-08 00:00:00', '1vds', '23vd', '4563242dsfds', '789', '1'); INSERT INTO `news` VALUES(3, '2008-02-17 00:00:00', 'dsf', '32rfew', 'gtfr4vqtvtv', 'ja', '1'); Użytkownik bercow edytował ten post 08 luty 2008, 17:19 Oczywiście zero bezpieczeństwa. Ma się rozumieć, że to jest Ci obojętne. Pozwoliłem sobie poprawić kod pod tym względem. Zobacz czy działa, bo nie mam komputera, by sprawdzić. <?php mysql_connect ("localhost", "bercow", "tajne") or die ("Nie mozna polaczyc sie z mysql"); mysql_select_db ("bercow_homepage") or die ("nie mozna polaczyc sie z baza bercow"); //$wynik = mysql_query ('SELECT * FROM news WHERE ok="1" ORDER BY nr LIMIT 0, 4');//czy to jest do czegoś potrzebne? if (!empty($_GET['nr'])){ $_GET['nr'] = intval($_GET['nr']); if ($_GET['nr']>0) { //wyswietla pojedynczy news $wynik = mysql_query ('SELECT * FROM news WHERE nr='.$_GET['nr'].' AND ok="1"'); if ($wynik && $rekord = mysql_fetch_assoc($wynik)) { echo '<h2>'.$rekord['tytul'].'</h2><p>'.$rekord[ 'tresc'].'</p>'; } else { //brak newsa echo 'Brak newsa o takim numerze'; } echo '<p><a href="news.php">Wszystkie newsy >></a></p>'; } }else { echo '<h2>Newsy</h2>'; if (!empty($_GET['fraza'])) { $_GET['fraza'] = addslashes($_GET['fraza']); echo '<p>Wynik wyszukiwania słowa <b>'.stripslashes($_GET['fraza']).'</b><br>'; echo '<a href="news.php">Wszystkie newsy >></a></p>'; } $wynik = mysql_query ( 'SELECT * FROM news WHERE ok="1" AND ((tytul LIKE "%'.$_GET['fraza'].'%") OR (osoba LIKE "%'.$_GET['fraza'].'%") OR (tresc LIKE "%'.$_GET['fraza'].'%") OR (tresc_krotka LIKE "%'.$_GET['fraza'].'%")) ORDER BY nr DESC'); while ($wynik && $rekord = mysql_fetch_assoc($wynik)) { echo '<p><b><a href="news.php?nr='.$rekord['nr'].'">'.$rekord[ 'tytul'].'</a></b><br>'.$rekord['tresc_krotka'] .'</p>'; echo '<p align="right"><i>'.$rekord['osoba'].', '.$rekord['data'].'</i></p>'; } } echo '<hr><form><input type="text" name="fraza" value="'.$_GET['fraza'].'">'; echo '<input type="submit" value="Szukaj w newsach"></form>'; ?>Straszny chaos! Nic dziwnego, że nie działa. Sprawdziłeś chociaż mysql_error()? Może on coś Ci powie? Użytkownik andrzej_aa edytował ten post 08 luty 2008, 18:57 http://bercow.pl/ Interesuje mnie bezpeczenstwo, ale nie bardzo mam wiedze, na taki temat. Jak bys mogl opisac mniej wiecej. Co do tej linijki, nie wiem co zrobic, aby dodatkowo stworzyc podzial na strony, aby okreslic maksymalna liczbe teskty, ale w linijkach, aby nie powstawaly paski przesuwania, bo brzydko wygladaja :/, dalej dodac auto numerowanie. Dodatkowo linki do pelnej tresci przenoszonae sa na osobna strone, a nie w tabeli news. index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>bercow.pl - home site</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body class="thrColAbsHdr"> <div id="container"> <div id="header"> <h1 align="left"><img src="img/logo.png" width="442" height="91" alt="Logo bercow.pl"/></h1> </div> <div class="styl1" id="sidebar1"> <?php include ('left.php'); ?> <!-- end #sidebar1 --></div> <div id="sidebar2"> <?php include ('right.php'); ?> <!-- end #sidebar2 --></div> <div id="mainContent"> <script type="text/javascript" src="res/flashobject.js"></script> <style type="text/css"> <!-- body { font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; margin: 0; padding: 0; font-size: 10px; background-color: #191919; color: #191919; background: ""; } html, body { height:100%; overflow-y: auto; overflow-x: auto; margin: 0; padding: 0; border: 0; } /* hide from ie on mac \*/ html { height: 100%; overflow: hidden; } #flashcontent { height: 600px; text-align:center; } #news { height: 600px; background-color: #191919; overflow-y: auto; margin: 5; } </style> </head> <div class="styl1" id="news"> <div id="news"> <?php include ('news.php'); ?> </div> <script type="text/javascript"> var fo = new FlashObject("res/viewer.swf", "viewer", "100%", "100%", "6", "#191919", ""); fo.addParam("quality", "best"); fo.write("flashcontent"); </script> </div> <div id="footer"> <p><span class="styl4"> Copyright © by</span> <span class="styl4"> bercow 2008</span></p> </div> </div> </body> </html> Gdzie tu struktura dokumentu HTML? Masz dwa elementy head. Przenosi, bo tak zrobiłeś. Jesteś początkującym, polecam metodę prób i błędów. Aby wyświetlało aktualności tam, gdzie chcesz, zamień adresy z "news.php" na "index.php" w news.php. Co do bezpieczeństwa. Najpierw powinieneś się dokładnie nauczyć HTML-a, później PHP i MySQL i dopiero startować z publiczną stroną. Przynajmniej ja tak zaczynałem :-) |
|||
Sitedesign by AltusUmbrae. |