Gå til innhold

Bare en del av dokumentet i include(), Hvordan?


Anbefalte innlegg

Videoannonse
Annonse

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

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 av sprintf
Lenke til kommentar

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 av robgar
Lenke til kommentar

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 av robgar
Lenke til kommentar
$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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...