<?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.
ow sheize
die was gewoon
$sql = "SELECT titel, bericht FROM posts WHERE postid = '$postid'";

Jep, en eigenlijk is die variabele $postid dus overbodig aangezien je in de query net zo goed $_GET['id'] kunt gebruiken.

Nu alleen nog even een controle inbouwen die checkt of $_GET['id'] wel numeriek is. Dit om SQL injectie te voorkomen.
Alleen nu update hij nog niet
ligt dat aan


$titel =  mysql_real_escape_string($_POST['titel']); 
   
$bericht = htmlspecialchars($_POST["bericht"]);


      
                                            
$sql = mysql_query("UPDATE posts SET '$titel', '$bericht' WHERE postid='$postid
SET kolomnaam = 'waarde', anderekolom = 'anderewaarde' .....
Je UPDATE-query klopt gewoon niet. Je moet de kolmnamen wel gebruiken.
Offtopic: wat doet htmlspecialchars() in dit stukje script? Deze functie gebruik je bij weergave in een browser, niet bij opslag van data in een database.

Ontopic: Waar heb jij SQL geleerd? Daar klopt weinig van, zie de foutmelding die je krijgt wanneer je deze ook opvraagd. mysql_error() doet wonderen.

Tip: Leer eens de basis van SQL, dat is onmisbaar.
pgFrank schreef op 23.10.2007 15:00
Offtopic: wat doet htmlspecialchars() in dit stukje script? Deze functie gebruik je bij weergave in een browser, niet bij opslag van data in een database.

Ontopic: Waar heb jij SQL geleerd? Daar klopt weinig van, zie de foutmelding die je krijgt wanneer je deze ook opvraagd. mysql_error() doet wonderen.

Tip: Leer eens de basis van SQL, dat is onmisbaar.


die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen


$sql = mysql_query("UPDATE posts SET titel= '$titel', bericht = '$bericht' WHERE postid='$postid'");

doet het:)
die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
Dat gaat nog een hele klus worden, het is namelijk gewoon fout. Data in de database heeft namelijk niets met html te maken, de functie htmlspecialchars() kun je dus niet nodig hebben. Jouw database is tenslotte geen browser...
pgFrank schreef op 23.10.2007 15:04
die htmlspecials chars staat daar voor een andere reden, ik zal die straks uitleggen
Dat gaat nog een hele klus worden, het is namelijk gewoon fout. Data in de database heeft namelijk niets met html te maken, de functie htmlspecialchars() kun je dus niet nodig hebben. Jouw database is tenslotte geen browser...


dus in jouw ogen

$bericht = mysql_real_escape_string($_POST['bericht']);

kan ik beter deze gebruiken

Reageren