Ik heb een nieuws systeem gevonden en deze aangepast en een paneel er in gebouwd zodat admins ook nieuws kunnen posten zonder de database in te gaan.
Nu heb ik alle errors weg gehaald behalve een.
Notice: Undefined index: x in /home/admin/domains/***/public_html/nieuws.php on line 75
Mijn code:
PHP
<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
// UBB codes aanmaken
function ubb($string) {
$string = stripslashes($string);
$string = htmlspecialchars($string);
$string = nl2br($string);
$string = preg_replace("#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $string); // [b][/b] -> <b></b>
$string = preg_replace("#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $string); // [b][/b] -> <b></b>
$string = preg_replace("#\[s\](.+?)\[/s\]#is", "<s>\\1</s>", $string); // [b][/b] -> <b></b>
$string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string); // [b][/b] -> <b></b>
return $string;
}
if(isset($_GET['id']))
{
echo '<a href="'.$_SERVER['PHP_SELF'].'">Nieuws overzicht</a>';
// Gegevens ophalen waarbij de id overeenkomt met een id uit de database
$sql = mysql_query("SELECT * FROM updates WHERE id = '".mysql_real_escape_string($_GET['id'])."'");
if (mysql_num_rows($sql) == 0)
{
echo 'Dit nieuws bestaat niet!';
}
else
{
while($data = mysql_fetch_assoc($sql))
{
echo '<h1>'.htmlspecialchars(stripslashes($data['titel'])).'</h1><br>';
echo '<i>'.htmlspecialchars(stripslashes($data['datum'])).'</i><br><br>';
echo nl2br(htmlspecialchars(stripslashes($data['bericht'])));
echo '<hr><b>Reacties op het nieuws \''.htmlspecialchars(stripslashes($data['titel'])).'\'</b><br><br>';
}
$sql = mysql_query("SELECT * FROM updatereacties WHERE ip = '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."' AND updateid = '".mysql_real_escape_string($_GET['id'])."' AND datum >= NOW() - INTERVAL 1 DAY");
if (mysql_num_rows($sql) == 0)
{
// Reactie plaatsen
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (empty($_POST['naam']) || empty($_POST['bericht']))
{
echo '<span style="color:red"><b>Je hebt niet alle velden ingevuld!</b></span><br><br>';
}
else
{
mysql_query("INSERT INTO updatereacties (naam, bericht, updateid, datum, ip) VALUES ('".mysql_real_escape_string($_POST['naam'])."', '".mysql_real_escape_string($_POST['bericht'])."', '".mysql_real_escape_string($_GET['id'])."', NOW(), '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')") or die (mysql_error());
echo '<span style="color:green"><b>Je reactie is succesvol toegevoegd!</b></span><br><br>';
}
}
echo '<form method="post" target="_self">';
echo 'Naam:<br><input type="text" name="naam"><br><br>';
echo 'Bericht:<br><textarea name="bericht" rows="6" cols="37"></textarea><br><br>';
echo '<input type="submit" value="Toevoegen" onclick="this.value=\'Reactie wordt geplaatst...\';"> ';
'</form>';
echo '<br><br>';
} else {
echo 'Je hebt vandaag al een reactie geplaatst bij deze update! Morgen kun je weer een nieuwe plaatsen.<br><br>';
}
$sql = mysql_query("SELECT * FROM updatereacties WHERE updateid = '".mysql_real_escape_string($_GET['id'])."' ORDER BY id DESC") or die (mysql_error());
if (mysql_num_rows($sql) == 0) {
echo 'Dit nieuws heeft nog geen reacties!';
} else {
while($bericht = mysql_fetch_assoc($sql)) {
echo '<b>Naam:</b> '.htmlspecialchars(stripslashes($bericht['naam'])).'<br>';
echo '<b>Datum:</b> '.htmlspecialchars(stripslashes($bericht['datum'])).'<br>';
echo '<b>Bericht:</b><br>'.ubb($bericht['bericht']).'<br><br>';
}
}
}
}
elseif($_GET['x']== "toevoegen" )
{
// Administrator paneel om updates toe te voegen
echo '<a href="index.php?page=nieuws">Nieuws overzicht</a>';
echo '<h1>Nieuws toevoegen</h1>';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (empty($_POST['titel']) || empty($_POST['bericht']))
{
echo '<span style="color:red"><b>Niet alle velden zijn ingevuld!</b></span>';
}
elseif ($_POST['wachtwoord'] != $password)
{
echo '<span style="color:red"><b>Je bent geen administrator, dus kun je geen updates toevoegen!</b></span>';
} else
{
mysql_query("INSERT INTO updates (titel, bericht, datum) VALUES ('".mysql_real_escape_string($_POST['titel'])."', '".mysql_real_escape_string($_POST['bericht'])."', NOW())") or die (mysql_error());
echo '<span style="color:green"><b>Het nieuws is succesvol toegevoegd!</b></span>';
}
}
echo '<form method="post" target="_self">';
echo 'Titel:<br><input type="text" name="titel"><br>';
echo 'Bericht:<br><textarea name="bericht" rows="6" cols="37"></textarea><br>';
echo 'Wachtwoord:<br><input type="password" name="wachtwoord"><br><br>';
echo '<input type="submit" value="Toevoegen" onclick="this.value=\'Nieuws wordt geplaatst...\';"> <input type="reset" value="Wis velden">';
echo '</form>';
} else {
// Updates ophalen en sorteren op id
echo '<h1>Nieuws overzicht</h1>';
$sql = mysql_query("SELECT * FROM updates ORDER BY id DESC");
if (mysql_num_rows($sql) == 0)
{
echo 'Er zijn nog geen updates!<br>';
}
else
{
while($data = mysql_fetch_assoc($sql)) {
echo '<b>'.htmlspecialchars(stripslashes($data['titel'])).'</b><br>';
echo '<i>'.htmlspecialchars(stripslashes($data['datum'])).'</i><br><br>';
echo ubb($data['bericht']).'<br><br>';
$aantal = mysql_query("SELECT * FROM updatereacties WHERE updateid = '" .$data['id']."'");
echo '<u>Dit nieuws heeft <b>'.mysql_num_rows($aantal).'</b> ';
if (mysql_num_rows($aantal) == 1)
{
// Als er maar 1 reactie is, staat er "reactie", bij meerdere reacties staat er "reacties"
echo 'reactie';
}
else
{
echo 'reacties';
}
echo '. <a href="'.$_SERVER['PHP_SELF'].'?id='.$data['id'].'">Klik hier om een reactie toe te voegen.</a></u><hr>';
}
}
}
if ($gebruiker['admin'] == 1)
{
echo '<a href="index.php?page=nieuws&x=toevoegen">Klik hier om iets nieuws te posten.</a>';
echo '<br><b>Gebruik als wachtwoord ****</b>';
}
?>
Toon Meer
Alvast bedankt!