Als ik me profiel wil wijzigen worden ge gegevens niet in het database gezet terwij dat wel moet gebeuren.

code:
<?
###################
### STEL DIT IN ###
###################
$pad = "avatar";
###################

if($_GET[verwijderavatar] != ""){
$query = mysql_query("SELECT avatar FROM leden WHERE id = '" . $_COOKIE[memberid] . "' AND gebruikersnaam='" . $_COOKIE[gebruikersnaam] . "' AND wachtwoord='" . $_COOKIE[hash] . "' AND activatie='1'");
$av = mysql_fetch_array($query);
@unlink($pad."/".$av[avatar]);
mysql_query("UPDATE leden SET avatar='Geen' WHERE id = '" . $_GET[verwijderavatar] . "' AND gebruikersnaam = '" . $_COOKIE[gebruikersnaam] . "' AND wachtwoord='" . $_COOKIE[hash] . "' AND activatie='1'");
echo "U huidige avanter is met succes verwijderd u kunt nu een nieuwe uploaden.";
}
else {

if($_SERVER['REQUEST_METHOD'] == 'POST'){
$query = mysql_query("SELECT * FROM leden WHERE id = '" . $_COOKIE[memberid] . "' AND gebruikersnaam='" . $_COOKIE[gebruikersnaam] . "' AND wachtwoord='" . $_COOKIE[hash] . "' AND activatie='1'");
$check = mysql_fetch_array($query);

if($_POST[email] == ""){
echo "Je hebt geen emailadres ingevuld, dit is wel nodig. Vul aub een geldig emailadres in want daar wordt je nieuwe activatiecode heen gestuurd.<BR><BR><a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
else {
mysql_query("UPDATE leden SET fansite='" . $_POST[fansite] . "','meubel='" . $_POST[meubel] . "','habbo='" . $_POST[habbo] . "','room='" . $_POST[room] . "','staff='" . $_POST[staff] . "','woonplaats='" . $_POST[woonplaats] . "','hobbys='" . $_POST[hobbys] . "',homepage='" . $_POST[homepage] . "', naam='" . $_POST[naam] . "', ondertitel='" . $_POST[ondertitel] . "' WHERE id = '" . $_COOKIE[memberid] . "' AND gebruikersnaam = '" . $_COOKIE[gebruikersnaam] . "' AND wachtwoord='" . $_COOKIE[hash] . "' AND activatie='1'");
echo "Je profiel is succesvol gewijzigd. Mocht je ergens problemen mee hebben probeer dan eerst opnieuw in te loggen of neem contact op met de webmaster.";
}
}
else {
$query = mysql_query("SELECT * FROM leden WHERE id = '" . $_COOKIE[memberid] . "' AND gebruikersnaam='" . $_COOKIE[gebruikersnaam] . "' AND wachtwoord='" . $_COOKIE[hash] . "' AND activatie='1'");
while($object = mysql_fetch_object($query)){
echo "<form method=\"post\" ENCTYPE=\"multipart/form-data\">
<B>Wijzig gegevens:</b><br><br>
Hieronder kun je je kleine profiel wijzigen, alle informatie die u hier invult kom in het kleine profiel te staan. Hou er wel rekening mee
dat dit zichtbaar is voor iedereen die u profiel bezoekt.<br><br>
<b>Gebruikersnaam:</b><br>
$object->gebruikersnaam<br>
<b>Email:</b><br>
$object->email<input type=\"text\" name=\"email\" maxlength=\"50\" value=\"$object->email\" style=\"visibility: hidden\"><br>
<b>Ip adres:</b><br>
$object->ip<br>
<b>Voor naam:</b><br>
<input type=\"text\" name=\"naam\" size=\"30\" maxlength=\"50\" value=\"$object->naam\"><br>
<b>Woonplaats:</b><br>
<input type=\"text\" name=\"woonplaats\" size=\"30\" maxlength=\"50\" value=\"$object->woonplaats\"><br>
<b>Homepage:</b><br>
<input type=\"text\" name=\"homepage\" size=\"30\" maxlength=\"50\" value=\"$object->homepage\"><br>
<b>Hobby's:</b><br>
<input type=\"text\" name=\"hobbys\" size=\"30\" maxlength=\"50\" value=\"$object->hobbys\"><br>
<b>Favoriete habbostaff:</b><br>
<input type=\"text\" name=\"staff\" size=\"30\" maxlength=\"50\" value=\"$object->staff\"><br>
<b>Favoriete kamer:</b><br>
<input type=\"text\" name=\"room\" size=\"30\" maxlength=\"50\" value=\"$object->room\"><br>
<b>Favoriete habbo:</b><br>
<input type=\"text\" name=\"habbo\" size=\"30\" maxlength=\"50\" value=\"$object->habbo\"><br>
<b>Favoriete meubel:</b><br>
<input type=\"text\" name=\"meubel\" size=\"30\" maxlength=\"50\" value=\"$object->meubel\"><br>
<b>Favoriete fansite:</b><br>
<input type=\"text\" name=\"fansite\" size=\"30\" maxlength=\"50\" value=\"$object->fansite\"><br>
<input type=\"submit\" value=\"Opslaan\" name=\"submit\">
</form>";

}
}
}
ob_end_flush();
?>
Jij neemt aan dat iedere query wel zal lukken. Dat is leuk en aardig, maar in de praktijk blijkt dat iedere query juist zal MISlukken. En omdat jij dat niet controleert, heb je een probleem...

Zet achter de functie mysql_query() in elk geval even 'or die(mysql_error())'

Dus:
<?php
$result = mysql_query("hier de query") or die(mysql_error());
?>
Verder zijn jouw queries niet leesbaar, schrijf die eens uit over meerdere regels.

Tip: Kijk eens naar de functie mysql_real_escape_string(). Jouw script is zo lek als een mandje, iedere gek dan dit met 2 vingers in de neus hacken.

Edit: Zie dit topic waarin een voorbeeld staat van netjes scripten. Het zal niet perfect zijn, maar voor een beginner is het uiterst bruikbaar. Doe er je voordeel mee.
or die() is evil. Gebruik een goede error afhandling class.
@Eris: Uiteraard heb je volkomen gelijk! Daar is geen discussie over mogelijk.

Helaas ben ik bang dat de TS geen idee heeft wat een class is en hoe hij deze zou moeten gebruiken. Dan is een begin met 'or die()' nog niet zo slecht, dan leer je ook waarom die() uiteindelijk niet zo handig is.

Reageren