Gå til innhold

Nyhetsystem og forbedringer


Anbefalte innlegg

Har laget et basic nyhetsystem til meg selv og det funker som det skal.

Det er laget i php og mysql. Men det er litt tungvint når jeg skal poste siden jeg driver og tester med f.eks id 1. Ossen kan jeg gjøre sånn at alle idene kommer etterværandre men adskilt på en måte?

Også når jeg poster må jeg f.eks bruke <br> får å få ny linje ossen kan jeg få det automatsik?

Her er kodene:

Formen til og poste:

<form action="post.php" method="POST">
<table width="245">
<tr>
<td>Titel:</td>
</tr>
<tr>
<td>
<input type="text" name="titel" value=""></td>
</tr>
<tr>
<td>Dit navn:</td>
</tr>
<tr>
<td>
<input type="text" name="navn" value="Av: "></td>
</tr>
<tr>
<td width="100">Dato</td>
</tr>
<tr>
<td><input name="dato" type="text" id="date" value="Den: <?php echo date('d.m.Y - H:i'); ?>"></td>
</tr>
<tr>
<td>Text:</td>
</tr>
</table>
<textarea name="melding" rows="7" cols="38"></textarea><br>
<input type="submit" name="submit" value="Post!">
<input type="reset" name="reset" value="Visk ut!">
</form>

Setter inn det som er i formelen:

<?php
include("config.php");

$titel = $_POST['titel'];
$navn = $_POST['navn'];
$dato = $_POST['dato'];  
$melding = $_POST['melding'];

//mysql_query("INSERT INTO nyhet (title, navn, dato, nyhet) VALUES ($titel, $navn, $dato, $melding);
mysql_query("INSERT INTO nyhet SET title='$titel', navn='$navn', dato='$dato', nyhet='$melding'");
?>

Poster nyheten:

<?php

include("config.php");

$query  = "SELECT title,navn,dato,nyhet FROM nyhet WHERE id=2";

$title = mysql_query($query);
$navn = mysql_query($query);
$dato = mysql_query($query);
$nyhet = mysql_query($query);

while($t = mysql_fetch_assoc($title))
while($na = mysql_fetch_assoc($navn))
while($d = mysql_fetch_assoc($dato))
while($n = mysql_fetch_assoc($nyhet))

echo "
<b>{$t['title']}</b><br><br>
{$n['nyhet']}<br>
{$na['navn']} {$d['dato']}
";

?>

Takk på forhånd for hjelp!

Endret av dannyboy_1992_
Lenke til kommentar
Videoannonse
Annonse

Noe sånt blir det:

PHP
<?php

 

include("config.php");

 

$query "SELECT title,navn,dato,nyhet FROM nyhet WHERE id=2";

mysql_query($query);

 

$screen '';

 

while ($fetch mysql_fetch_object($query)) {

$screen .= '<h3>' $fetch->title '</h3>';

// Lager automatisk <br />

$screen .= nl2br($fetch->nyhet);

$screen .= '<p>Av ' $fetch->navn ', dato: ' $fetch->dato '</p>';

}

 

echo $screen;

 

?>

 

Har ikke testa om det funker, men post hvis det er noe galt.

Endret av nevoscript
Lenke til kommentar
Gjest Slettet+142

Altså. Det nyhetsskriptet der er jo maks sårbart. Du sikrer jo ikke inputs før du setter de inn i sql :no:

Og må si at jeg ikke skjønner hvordan du har klart å hente ut nyheten med den koden du har der :hmm:

 

Her har jeg prøvd å forbedre bittelitt:

--

Setter inn det som er i formelen:

<?php
include("config.php");

$titel = mysql_real_escape_string($_POST['titel']);
$navn = mysql_real_escape_string($_POST['navn']);
$dato = mysql_real_escape_string($_POST['dato']);  
$melding = mysql_real_escape_string($_POST['melding']); // mysql_real_escape_string er tingen for sikring :)

//mysql_query("INSERT INTO nyhet (title, navn, dato, nyhet) VALUES ($titel, $navn, $dato, $melding);
mysql_query("INSERT INTO nyhet SET title='$titel', navn='$navn', dato='$dato', nyhet='$melding'");
?>

 

Poster nyheten:

<?php

include("config.php");

$sql  = "SELECT title,navn,dato,nyhet FROM nyhet WHERE id=2";

$query = mysql_query($sql);

while($r = mysql_fetch_assoc($query)){
echo "<b>{$t['title']}</b><br><br>\n";
echo nl2br($n['nyhet']). "<br>\n"; // nl2br() legger til <br> hvor den finner \n
echo "{$na['navn']} {$d['dato']}\n";
}

?>

 

Hvis database-tabellen din ikke inkrementerer(øker) id-en for hver gang du legger til en nyhet, kan du fikse dette ved å redigere id-feltet i phpMyAdmin og markere feltet som Primary Key, og gi den spesifikken AUTO_INCREMENT :)

 

--

Nå ser jeg at nevoscript har postet, men jeg poster allikevel :p

Lenke til kommentar
Gjest Slettet+142

feilen med nevoscript sitt script er at han glemte å tilordne queryen til en variabel.

 

Rett mysql_query($query); til $query = mysql_query($query); :)

Lenke til kommentar

Oisann...

PHP
<?php

 

include("config.php");

 

$sql "SELECT title,navn,dato,nyhet FROM nyhet WHERE id=2";

$query mysql_query($sql);

 

$screen '';

 

while ($fetch mysql_fetch_object($query)) {

$screen .= '<h3>' $fetch->title '</h3>';

// Lager automatisk <br />

$screen .= nl2br($fetch->nyhet);

$screen .= '<p>Av ' $fetch->navn ', dato: ' $fetch->dato '</p>';

}

 

echo $screen;

 

?>

 

Beklager

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å
×
×
  • Opprett ny...