robgar Skrevet 12. september 2004 Del Skrevet 12. september 2004 Har en Index, der jeg har hentet opp "News.php" , som (du sikkert skjønte) er den filen hvor nyhetene ligger. De er avskilt i tabeller. Men etterhvert ble den siden grådig lang. Jeg lurer på om det går ann å include() bare de 2 første (altså de nyeste) tabellene , fra News.php Lenke til kommentar
Gilbert Skrevet 12. september 2004 Del Skrevet 12. september 2004 sansynligvis. hvordan ser strukturen i news.php ut? Lenke til kommentar
robgar Skrevet 12. september 2004 Forfatter Del Skrevet 12. september 2004 Slik: <style type="text/css"> <!-- @import url("stil.css"); --> </style> <table width="338" height="71" border="1" cellpadding="0" cellspacing="0" bordercolor="#666666" bgcolor="#FFFFFF"> <!--DWLayoutTable--> <tr> <td width="334" height="87" valign="top" bgcolor="#FFFFCC"><p> 11.09.04 14:45 GMT </p> <pre> <a href="news.php"><img src="images/icons/Image11.gif" width="32" height="32" border="0"></a> Made this a clan under <a onClick="getcb()">ClanBase</a></pre></td> </tr> </table> <p> </p> <table width="338" height="71" border="1" cellpadding="0" cellspacing="0" bordercolor="#666666" bgcolor="#FFFFFF"> <!--DWLayoutTable--> <tr> <td width="334" height="87" valign="top" bgcolor="#FFFFCC"><p> 11/09-2004 13:37 GMT</p> <pre> <a href="news.php"><img src="images/icons/Image11.gif" width="32" height="32" border="0"></a> Added a few links to the site. Also added time mode on news (GMT +1) </pre></td> </tr> </table> <p> </p> <table width="338" height="71" border="1" cellpadding="0" cellspacing="0" bordercolor="#666666" bgcolor="#FFFFFF"> <!--DWLayoutTable--> <tr> <td width="334" height="103" valign="top" bgcolor="#FFFFCC"><p>10/09-2004 01:04 GMT</p> <pre> <a href="news.php"><img src="images/icons/Image11.gif" width="32" height="32" border="0"></a> The design is finish (though a easy one), and the site is about to be ready to be launched.</pre></td> </tr> </table> Lenke til kommentar
Loomy Skrevet 12. september 2004 Del Skrevet 12. september 2004 Ooh, tabellsuppe Ontopic: Antar at news.php er en del av ettellerannet ferdigmekket news-script..? I så fall bør det være en innstilling i scriptet hvor du kan velge antall nyheter på hver side. Hvis ikke: bytt script Lenke til kommentar
robgar Skrevet 13. september 2004 Forfatter Del Skrevet 13. september 2004 Ontopic:Antar at news.php er en del av ettellerannet ferdigmekket news-script..? Bruker ikke News script nei. Bare kopierte Tabellen på siden, og forandret på teksten Er interesert i et slikt script, Helst i Php, det er nettop det jeg spurte etter.. Takk for hjelpen uansett! Lenke til kommentar
sprintf Skrevet 15. september 2004 Del Skrevet 15. september 2004 (endret) Du kan jo kjapt proeve noe slikt som en midlertidig loesning: function print_partial_news( $news_file='news.php', $number_of_news=5 ) { if( file_exists( $news_file ) ) { $newstables = file_get_contents( $news_file ); $offset = 0; for( $i=0; $i < $number_of_news; $i++ ) { $end_of_table_pos = strpos( $newstables, '<p> </p>', $offset ); $offset = $end_of_table_pos + 14; } echo( substr( $newstables, 0, $offset ) ); Return true; } Return false; } NB: jeg har ikke testet denne funksjonen, bare tastet den inn, slik at feil kan forekomme. hilsen sprintf Endret 15. september 2004 av sprintf Lenke til kommentar
PT Skrevet 15. september 2004 Del Skrevet 15. september 2004 (endret) Ontopic:Antar at news.php er en del av ettellerannet ferdigmekket news-script..? Er interesert i et slikt script, Helst i Php, det er nettop det jeg spurte etter.. Kan anbefale CuteNews eller CuteNews AJ-fork Vil du ha noe mer avansert, så kan Wordpress eller Textpattern være verdt en titt. Disse bruker PHP og mySQL Endret 15. september 2004 av PT Lenke til kommentar
robgar Skrevet 15. september 2004 Forfatter Del Skrevet 15. september 2004 (endret) Tenkte litt på saken, og kom fram til at mysql er tingen her. noe alla dette: (Er ikke sikker på om det virker. Bare skrev scriptet, og prøvde ikke!) Lage tabell (NB: forutsetter at du har en database!) ny fil (lagetabell.php) <?php mysql_connect('HOST/SERVER', 'bruker', 'passord'); mysql_select_db('databasenavn'); $query = "CREATE TABLE `nyheter` ( `id` INT(150) NOT NULL AUTO_INCREMENT, `overskrift` varchar(255) NOT NULL, `nyhet` TEXT NOT NULL, `dato` varchar(18) NOT NULL, PRIMARY KEY (`id`) );"; mysql_query($query); ?> hente 5 nyeste nyheter ny fil (Index.php) <?php // velg database mysql_connect('HOST', 'bruker', 'passord'); mysql_select_db('database'); // Henter de 5 nyeste nyhetene Sortert etter dato $topp5 = mysql_query("SELECT * FROM nyheter ORDER BY dato DESC LIMIT 0,5"); while($f_topp5 = mysql_fetch_array($topp5)) { $overskrift = $f_topp5["overskrift"]; $nyhet = $f_topp5["nyhet"]; $dato = $f_topp5["dato"]; $id = $f_topp5["id"]; //Lagg tabbelen slik du selv vil ha den her: print('<table width="400" border="1" bordercolor="#666666" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="396" valign="top" bgcolor="#FFFFCC"><blockquote> ' .$overskrift. ' ' .$dato. ' ID: ' .$id. ' </blockquote> <pre>' .$nyhet. '</pre></td> </tr> </table>'); } ?> Ny fil (ny.php) <html> <head><title>Ny</title> </head> <body> <form name="generere" action=ny.php method=POST> <table> <tr> <td colspan="2"> <h1><center>Lag ny nyhet!</center></h1> </td> </tr> <td>Overskrift: </td> <td> <input type=text name=overskrift> </td> </tr> <tr> <td>Nyhet: </td> <td><TEXTAREA name=nyhet></TEXTAREA> </td> </tr> <tr> <td colspan="2"><input type=submit name=submit value=lag ny nyhet> </td> </tr> </table> </form> <?php mysql_connect('localhost', 'tonethos', 'KARBON'); mysql_select_db('tonethos_loginliste'); $overskrift = $_POST['overskrift']; $nyhet = $_POST['nyhet']; $dato = date("d/m-y H:i"); if (isset($overskrift)) { if (isset($nyhet)) { mysql_query("INSERT INTO nyheter (id, overskrift, nyhet, dato) VALUES ('', '$overskrift', '$nyhet', '$dato');"); } } else { print('Skriv inn Overskrift!'); print('Skriv inn en nyhet!'); } ?> </body> </html> EDIT: testet nå, det virker, men bare beta (det vil si at jeg kan gjøre mer ut av det. kort sagt ) Endret 16. september 2004 av robgar Lenke til kommentar
robgar Skrevet 15. september 2004 Forfatter Del Skrevet 15. september 2004 (endret) Kom på at man kan bestemme antall nyheter slik: (ved å legge til på url'en til index.php: index.php?antall=4 -> vil gi 4 nyheter. index.php <?php mysql_connect('HOST', 'bruker', 'passord'); mysql_select_db('database'); $antall_get = $_GET['antall']; if (empty$antall_get)) { $antall=intval($antall_get); } else { $antall = "5"; } $topp5 = 'mysql_query("SELECT * FROM nyheter ORDER BY dato DESC LIMIT 0,(`$antall`)'); while($f_topp5 = mysql_fetch_array($topp5)) { $overskrift = $f_topp5["overskrift"]; $nyhet = $f_topp5["nyhet"]; $dato = $f_topp5["dato"]; print(' <table> <tr> <td> <center> <h1>' .$overskrift. '</h1>' .$dato. '</center> <br> <div align=left>' .$nyhet. ' </div> </tr> </td> </table>'); } ?> Må igjen tilføye at det ikke er testet.. Endret 19. september 2004 av robgar Lenke til kommentar
sprintf Skrevet 16. september 2004 Del Skrevet 16. september 2004 $antall_get = $_GET['antall']; if (isset($antall_get)) $antall=$antall_get; else { $antall = "5"; } Et enkelt og sikrere alternativ er: $antall = 5; if( !empty($_REQUEST['antall'] ) { $antall = intval( $_REQUEST['antall'] ); } Slik unngår man at ondskapsfulle individer legger inn SQL kode ( index.php?antall=SQL-kode ) og får tilgang på databasen din. Lenke til kommentar
robgar Skrevet 19. september 2004 Forfatter Del Skrevet 19. september 2004 (endret) Er det det samme om jeg bruker $_GET istedenfor $_REQUEST ? $antall = 5; if( empty($_GET['antall'] ) { $antall = intval( $_GET['antall'] ); } Og takk for alle svar! Endret 19. september 2004 av robgar Lenke til kommentar
sprintf Skrevet 19. september 2004 Del Skrevet 19. september 2004 Jepp, desom du alltid propagerer 'antall' gjennom URL'en burker du $_GET. Det vilktige å huske på er alltid å validere verdier som hentes gjennom htttp request (post, get, cookies) - spesielt dersom disse verdiene inngår i en SQL transaksjon. I dette tilfellet sikrer du deg mot "SQL injection" gjennom bruk av funksjonen intval(). Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå