<?php

include ("admin/db.php");









$sql = "SELECT * FROM `posts` ORDER by postid DESC";

$query = mysql_query( $sql )
or die( mysql_error() );

// Controleren of er resultaten zijn:
if( mysql_num_rows( $query ) == 0 ){ echo "De tabel is leeg.";
}else
{
// While maken
while(
$uitvoer = mysql_fetch_assoc( $query ) )
{
$jaar = substr($uitvoer['datum'], 0 , 4); //deze klopt wel
$maand = substr($uitvoer['datum'], 5 , 2); //de 5 twijfel ik moet of 5 of 6 zijn
$dag = substr($uitvoer['datum'], 8 , 2); //ook twijfel moet 7,8 of 9 zijn...
$tijd= substr($uitvoer['datum'], 11);

echo


'postid: ' . $uitvoer['postid']
. '<br/>'
. 'auteur: ' . $uitvoer['auteur']
. '<br/>'
. 'titel: ' . $uitvoer['titel']
. '<br/>'
. 'datum: '
. $dag, '-', $maand, '-', $jaar, ' op ', $tijd
. '<br/>'
. 'bericht: ' . htmlspecialchars_decode($uitvoer['bericht'])
. '<br/><br/>' ;
}
if($_SESSION['id'])
{
echo "<p><a href=\"bericht.php\">wijzig bericht</p>";

}
}
?>

De code hierboven is een gedeelte van me script.
De bedoeling is wanneer je ben ingelogd de posts volledig ziet weergegeven en dat je ook de link ziet van wijzig bericht ziet per post

De gebruiker die niet is ingelogd moet de volledig post zien, maar niet edit link.

Hoe doe ik dit precies
want ik weet dat je na een echo geen if statement kan plaats vinden.
Nu werkt het wel...alleen onderin de pagina staat nu alleen "wijzig bericht" ik wil als ik inlog dat ik het per post zie.
Ja.
GaMer13 schreef op 18.10.2007 13:25
Ja.

hij doet het...
jullie zijn best goed;)

elke link is nu wel hetzelfde maar dat moet ik nog ff fixen
jerry schreef op 18.10.2007 13:26
[quote='GaMer13 schreef op 18.10.2007 13:25']Ja.

hij doet het...
jullie zijn best goed;)
[/quote]Nee, waarom zo overbodig veel regels code? Zo is het stukken netter:
<?php
while($uitvoer = mysql_fetch_assoc($query))
{
echo 'postid: ' . $uitvoer['postid'] . '<br/>';
echo 'auteur: ' . $uitvoer['auteur'] . '<br/>';
echo 'titel: ' . $uitvoer['titel'] . '<br/>';
echo 'datum: ' . $dag, '-', $maand, '-', $jaar, ' op ', $tijd . '<br/>';
echo 'bericht: ' . htmlspecialchars_decode($uitvoer['bericht']) . '<br/><br/>';

if(isset($_SESSION['id']))
{
echo '<p><a href="bericht.php">wijzig bericht</a></p>';
}
}
?>

ps. Controleren of een variabele bestaat doe je met isset()
pps. Het gebruik van htmlspecialchars_decode() doet met vermoeden dat je htmlspecialchars() gebruikt bij het wegschrijven van data naar de database. Doe dit liever niet en gebruik enkel mysql_real_escape_string().
bedankt, ik had al de code korter gemaakt, want het was denet een beetje dubbelop, maar alleen real_escape_string wist ik niet
Ik gebruik dat bijmijn registratie formulier wel, maar
bij mijn berichtenveld, heb ik de specialchars gebruikt en aangepast, zodat ik zeg maar alleen html url of tekst kan invoeren in dat veld.
Dat kan natuurlijk korter.
<?php
echo 'postid: ' . $uitvoer['postid']
. '<br/>'
. 'auteur: ' . $uitvoer['auteur']
. '<br/>'
. 'titel: ' . $uitvoer['titel']
. '<br/>'
. 'datum: '
. $dag, '-', $maand, '-', $jaar, ' op ', $tijd
. '<br/>'
. 'bericht: ' . htmlspecialchars_decode($uitvoer['bericht'])
. '<br/><br/>';
if(isset($_SESSION['id']))
{
echo '<p><a href="bericht.php">wijzig bericht</p>';
}
?>
En om een notice te voorkomen heb ik isset() toegevoegd.
@Santhe, blanche had hem al kort gemaakt ;)
Peter schreef op 18.10.2007 13:46
@Santhe, blanche had hem al kort gemaakt ;)

Ik zag het, maar ik ben nu eenmaal niet zo snel.

Edit: Topic stond ook al weer even open en ik had de verdere posts nog niet gezien.
Beter 2 keer een goed antwoord dan geen goed antwoord.

<?php
echo (isset($_SESSION['id'])) ? '<p><a href="bericht.php">wijzig bericht</a></p>' : '';
?>

Reageren