ik heb met hulp van iemand heb ik een php feedback gemaakt maar elke keer na de eerste post (met rating) maakt hij een nieuwe lege post met andere woorden dat betekend als iemand als eerst een 10 geeft dat dan het gem. een 5 is omdat hij een nieuwe automatisch aanmaakt met de rating 0 weet iemand waar ik de fout in zou gegaan zijn. zo ziet het eruit na de eerst post:
<?php
include 'config.php'; // Hier staat $dataFile in
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// Formulier verwerken
if(!file_exists($dataFile)) {
// Bestand aanmaken
$input = '<?xml version="1.0"?>'.PHP_EOL.'<entries>'.PHP_EOL.'</entries>';
file_put_contents($dataFile, $input);
// Ophalen
$xmlStr = file_get_contents($dataFile);
$xml = new SimpleXMLElement($xmlStr);
// Toevoegen
$entry = $xml->addChild('entry');
$entry->addChild('ip', $_SERVER['REMOTE_ADDR']);
$entry->addChild('published', date('Y-m-d H:i:s'));
// Nu de rating en feedback
// Eerst de input valideren
if(isset($_POST['rating']) && ctype_digit($_POST['rating'])) {
// Nogmaals de input valideren
if(!empty($_POST['feedback']) && !empty($_POST['naam'])) {
$entry->addChild('naam', $_POST['naam']);
$entry->addChild('rating', $_POST['rating']);
$entry->addChild('feedback', $_POST['feedback']);
// Wegschrijven
if(file_put_contents($dataFile, $xml->asXML())) {
echo 'Bedankt voor uw feedback.';
} else {
echo 'Error: Er is wat fout gegaan bij het toevoegen van de feedback.';
}
} else {
echo 'Sorry, maar u behoort enige feedback te geven.';
}
} else {
echo 'Sorry, maar de data die verwerkt moest worden is corrupt.';
}
} else {
// Kijken of gebruiker al gestemd heeft
$xmlStr = file_get_contents($dataFile);
$xml = new SimpleXMLElement($xmlStr);
$exists = 0;
// Door de entries lopen en kijken of er een match is
foreach($xml->entry as $entry) {
if($entry->ip == $_SERVER['REMOTE_ADDR'] && $entry->userAgent == $_SERVER['HTTP_USER_AGENT']) {
$exists = 0;
} else {
$exists = 0;
}
}
if($exists) {
// Er is een match; al gestemd
echo 'U heeft al feedback gegeven.';
} else {
// Er is geen match; nog niet gestemd, dus toevoegen maar
$entry = $xml->addChild('entry');
$entry->addChild('ip', $_SERVER['REMOTE_ADDR']);
$entry->addChild('published', date('Y-m-d H:i:s'));
// Nu de rating en feedback
// Eerst de input valideren
if(isset($_POST['rating']) && ctype_digit($_POST['rating'])) {
// Nogmaals de input valideren
if(!empty($_POST['feedback'])) {
$entry->addChild('naam', $_POST['naam']);
$entry->addChild('rating', $_POST['rating']);
$entry->addChild('feedback', $_POST['feedback']);
// Wegschrijven
if(file_put_contents($dataFile, $xml->asXML())) {
echo 'Bedankt voor uw feedback.';
} else {
echo 'Error: Er is wat fout gegaan bij het toevoegen van de feedback.';
}
} else {
echo 'Sorry, maar u behoort enige feedback te geven.';
}
} else {
echo 'Sorry, maar de data die verwerkt moest worden is corrupt.';
}
}
}
} else {
// Formulier weergeven
?>
dat is de code, daar moet de fout ergens tussen staan