volgens mij klopt er nu echt helemaal niks meer van...
als het niet teveel gevraagd is, zou iemand misschien even de hele code willen controleren en e.v.t verbeteren? (en dan de hele nieuwe code posten in plaats van een gedeelte...). ik vind het namelijk een beetje moeilijk worden :S
Link gekopieerd
Wat moet er ingevuld worden bij uid, want dat heb ik bij de controle/validatie beschouwt als integer en niet als tekst.
<?php
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
if ( $_SERVER['REQUEST_METHOD'] == 'POST'
&& isset($_POST['uid']) && trim($_POST['uid']) != ''
&& isset($_POST['gereageerd'] && trim($_POST['gereageerd']) != '') {
$sql = "UPDATE contacts
SET gereageerd = '".mysql_real_escape_string($_POST['gereageerd'])."'
WHERE id = ".mysql_real_escape_string($_POST['uid']);
if (!$result = mysql_query($sql)) {
echo mysql_error().'<br />'.$sql;
}
}
else {
echo 'er is wat fout foutgegaan bij het posten van het form';
}
Link gekopieerd
j
je moeder
25-06-2010 21:06
gewijzigd op 25-06-2010 21:08
iemand vult in het formulier de aanmeldings-id in, (dit wordt gepost als uid) en dan moet het uiteindelijk worden gepost als id in de database...
en de pagina is nog steeds blank... volgens mij is het makkelijker om gewoon een nieuwe code te maken in plaats van de hele tijd fixen...
Link gekopieerd
Mag ik vragen waar dit voor is? Ik vind het niet erg om te helpen maar ik ben er niet om iemand zijn rotzooi op te ruimen.
Je gooit in elk geval een hele hoop dingen door elkaar en doet dingen dubbel die maar enkel hoeven.
Link gekopieerd
het is voor het organiseren van een feest, alle mensen die meedoen vullen op een andere pagina iets in, (wordt dan in de database opgeslagen, werkt allemaal perfect), en dat is deze pagina om de gegevens te bekijken en om in te vullen of er al is gereageerd op de aanmelding door een van de organisatoren.
Link gekopieerd
als je wil kan ik ook even laten zien hoe de database tabel eruit ziet?
Link gekopieerd
-
- Mark -
25-06-2010 21:28
gewijzigd op 25-06-2010 21:28
Onder voorbehoud en op eigen risico.
Er zitten Engelse stukken tussen omdat die uit mijn eigen snippet bibliotheek komen.
Ik snap alleen je logica niet echt maar dat kan aan mij liggen :p
<?php
/*--------------------------------------------------------------------------------------------------------------------------
(§) Settings | MySQL database connection info.
--------------------------------------------------------------------------------------------------------------------------*/
#| Database info.
$db_config = array(
'host' => 'localhost',
'user' => 'root',
'password' => '',
'database' => 'voorbeeld'
);
/*--------------------------------------------------------------------------------------------------------------------------
(§) MySQLi | Database connection.
--------------------------------------------------------------------------------------------------------------------------*/
#| Connect to database.
$mysqli = new mysqli($db_config['host'], $db_config['user'], $db_config['password'], $db_config['database']);
/*--------------------------------------------------------------------------------------------------------------------------
(§) Defaults.
--------------------------------------------------------------------------------------------------------------------------*/
#| Set " $error_log " array voor het opslaan van alle fouten.
$error_log = array();
#| Set " $output_message " voor het opslaan van het eind resultaat.
$output_message = '';
/*--------------------------------------------------------------------------------------------------------------------------
(§) Hier doe je iets updaten.
--------------------------------------------------------------------------------------------------------------------------*/
#| Controleren of er een aanvraag is.
if($_SERVER['REQUEST_METHOD'] == 'POST'){
#| $_POST['uid'] controleren.
if(!isset($_POST['uid']) or !ctype_digit($_POST['uid'])){
$error_log[] = 'Error! Ongeldig ID.';
}
#| $_POST['gereageerd'] controleren.
if(!isset($_POST['gereageerd']) or empty($_POST['gereageerd'])){
$error_log[] = 'Error! Ongeldig antwoord.';
}
#| Controleren of er zich geen fouten hebben voorgedaan.
if(empty($error_log)){
#| Set SQL statement.
$sql = "UPDATE
contacts
SET
gereageerd = '".$mysqli->real_escape_string($_POST['gereageerd'])."'
WHERE
id = ".$mysqli->real_escape_string($_POST['uid'])."
";
#| Execute the SQL statement.
if(!$result = $mysqli->query($sql)){
/*---- INFO: An error has occurred in your SQL statement. ----*/
trigger_error('Error! '.$mysqli->error);
}
else{
/*---- INFO: The SQL statement has been succesfully executed. ----*/
#| Check the amount of records that have been updated.
if($mysqli->affected_rows > 0){
/*---- INFO: Update successful. ----*/
$output_message = 'Update gelukt.';
}
else{
/*---- INFO: Update failed. ----*/
$error_log[] = 'Error! Er is iets fout gegaan / ID bestaat niet.';
}
}
}
}
?>
<html>
<head>
<title>BBQ aanmeldingen</title>
</head>
<body>
<center><b>BBQ aanmeldingen</b></center><br>
<?php
/*--------------------------------------------------------------------------------------------------------------------------
(§) Resultaat en Error log weergeven.
--------------------------------------------------------------------------------------------------------------------------*/
#| Output message weergeven.
if(!empty($output_message)){ echo '<p>'.$output_message.'</p>'; }
#| Error log weergeven.
if(!empty($error_log)){
echo '<p>'.implode('<br />', $error_log).'</p>';
}
/*--------------------------------------------------------------------------------------------------------------------------
(§) Aanmeldingen weergeven.
--------------------------------------------------------------------------------------------------------------------------*/
#| Set SQL statement.
$sql = "SELECT
*
FROM
contacts
LIMIT
0,30
";
#| Execute the SQL statement.
if(!$result = $mysqli->query($sql)){
/*---- INFO: An error has occurred in your SQL statement. ----*/
trigger_error('Error! '.$mysqli->error);
}
else{
/*---- INFO: The SQL statement has been succesfully executed. ----*/
#| Check if one or more results have been found.
if($result->num_rows > 0){
/*---- INFO: One or more results have been found. ----*/
#| Loop through all results.
while($row = $result->fetch_assoc()){
echo "<b>Aanmelding nummer:</b> ".htmlentities($row['id']). ", <b>Naam:</b> ".htmlentities($row['name'])
.", <b>Email:</b> ".htmlentities($row['email']).", <b>huisnummer</b> ".htmlentities($row['huisnr'])
.", <b>Opmerkingen:</b> ".htmlentities($row['comment'])." <b>geactiveerd:</b> ".htmlentities($row['gereageerd'])."<br/> <br/>";
}
}
else{
/*---- INFO: Could not find any results. ----*/
echo 'Geen aanmeldingen gevonden.';
}
}
?>
<center><b>activeren:</b></center><br> <br>
<form action="view.php" method="post">
aanmeldings nummer: <input type="text" name="uid" /><br>
geactiveerd? (ja/nee): <input type="text" name="gereageerd" /><br>
<input type="submit" />
</form>
</body>
</html>
Link gekopieerd
heel erg bedankt!
en het engels maakt niet uit, vertaal wel ff :D
en als je wil kan ik de logica wel uitleggen?
Link gekopieerd
Dan wil ik toch nogmaals duidelijk maken dat het valideren/controleren met empty() totaal zinloos is:
http://wiki.phpfreakz.nl/Empty
<?php
if($mysqli->affected_rows > 0){
/*---- INFO: Update successful. ----*/
$output_message = 'Update gelukt.';
}
else{
/*---- INFO: Update failed. ----*/
$error_log[] = 'Error! Er is iets fout gegaan / ID bestaat niet.';
}
?>
is ook voorliegen affected rows geeft 0 terug als er geen gegevens gewijzigd worden, het zegt niets over het feit dat er wat fout is gegaan.
Link gekopieerd
Over empty heb je gelijk bij de controle op $output_message en $_POST['geantwoord']
Hoe bedoel je voorliegen? Er word van tevoren gecontroleerd of er iets is fout gegaan met de query.
Link gekopieerd