Ik heb een mysql database 'users' waarin alle alle gebruikers opgeslagen worden. Gebruikers toevoegen en deleten is geen probleem. Gebruikers wijzigen lukt niet.

Ik vertrek vanuit de pagina 'gebruikersbeheren.php' waarop alle gebruikers weergegeven worden. Via de link <a href="gebruikerswijzigen.php?id='.$res->gebruikersnaam.'"> kom ik dan terecht op 'gebruikerswijzigen.php' Alle gegevens van de desbetreffende gebruiker(vnaam,anaam,naam,pass,admin) verschijnen in de textarea's maar wanneer ik iets wijzig wordt dit niet aangepast in mijn database.

Dit is mijn pagina gebruikerswijzigen.php

<?
session_start();
require("connection.inc.php");
$query = mysql_query("SELECT id, vnaam, anaam, admin, naam, pass FROM users WHERE naam='".$_GET['id']."'");
if($res = mysql_fetch_object($query))
{
if($_SESSION['admin']==1 || $_SESSION['id']==$res->u_id)
{
if($_POST['edit']==1)
{
mysql_query("UPDATE users SET vnaam='".addslashes(strip_tags($_POST['voornaam']))."', anaam='".addslashes(strip_tags($_POST['achternaam']))."' , gebruikersnaam='".addslashes(strip_tags($_POST['gebruikersnaam']))."' , pass='".addslashes(strip_tags($_POST['paswoord']))."', admin='".addslashes(strip_tags($_POST['admin']))."' WHERE naam='".$_GET['id']."'");
header("Location: gebruikersbeheren.php");
}
echo '<html>
<head>
<meta http-equiv="Content-Language" content="nl-be">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Onlijnmagazijn.net Control Panel</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="styles/styles.css">
</head>
<body>
<p>&nbsp;</p>
<div id="container">
<div id="header"><img src="images/headercontrolpannel.jpg"></div>
<div id="navigatie"><ul><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="berichten.php">&nbsp&nbsp;Nieuwsberichten&nbsp;&nbsp;</a></li><li><a href="agenda.php">&nbsp;&nbsp;Agenda&nbsp;&nbsp;</a></li><li><a href=""><a href="">&nbsp&nbsp;Fotoalbum&nbsp;&nbsp;</a></li><li><a href="gebruikersbeheren.php">&nbsp;&nbsp;Gebruikers&nbsp;&nbsp;</a></li><li><a href="">&nbsp;&nbsp;Bestanden uploaden&nbsp;&nbsp;</a></li></ul></div>
<div id="logout">&nbsp;&nbsp;&nbsp;&nbsp;<a href="logout.php">Afmelden</a></div>
<div id="spacernavigatie">&nbsp;</div>
<div id="content"><br><div id="titel">Gebruiker wijzigen</div>

<form action="gebruikerswijzigen.php?id='.$_GET['id'].'" method="POST">
<input type="hidden" name="edit" value="1">

<table border="0" cellspacing="0" cellpadding="0" id="table1">
<tr><td width="110px">voornaam</td><td><textarea name="voornaam" cols="20" rows="1">'.stripslashes($res->vnaam).'</textarea></td></tr>
<tr><td width="110px">achterernaam</td><td><textarea name="achternaam" cols="20" rows="1">'.stripslashes($res->anaam).'</textarea></td></tr>
<tr><td width="110px">e-mailadres</td><td><textarea name="gebruikersnaam" cols="20" rows="1">'.stripslashes($res->naam).'</textarea></td></tr>
<tr><td width="110px">wachtwoord</td><td><textarea name="paswoord" cols="20" rows="1">'.stripslashes($res->pass).'</textarea></td></tr>
<tr><td width="110px">admin</td><td><textarea name="admin" cols="20" rows="1">'.stripslashes($res->admin).'</textarea></td></tr>
<tr><td width="110px"><input type="submit" value="Wijzig"></td></tr>
<tr><td width="110px">&nbsp;</td></tr>
</table>
</form>
</body>
</html>';
}
else echo "U bent niet gemachtigd om deze pagina te bekijken";
}
else echo 'Ongeldig ID-nummer';
?>

Ik ben vertrokken van een andere php pagina "berichtenwijzigen.php" die perfect werkt. Ziet iemand een fout?
prpbeer hett eens zo:

  <?php

mysql_query("UPDATE `users` SET `vnaam`='".addslashes(strip_tags($_POST['voornaam']))."', `anaam`='".addslashes(strip_tags($_POST['achternaam']))."' , `gebruikersnaam`='".addslashes(strip_tags($_POST['gebruikersnaam']))."' , `pass`='".addslashes(strip_tags($_POST['paswoord']))."', `admin`='".addslashes(strip_tags($_POST['admin']))."' WHERE `naam`='".$_GET['id']."'");  
  ?>

     


ik heb hier > ` < toegevoegd aan de database kolomnamen. probeer het maar eens ,misschien helpt het.
@Anne: Dat is een fout advies. Nooit backtics in je query doen.

@Kristof: Bouw eerst een een fatsoenlijke foutafhandeling in voor de query's.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Edit: En waarom gebruik je overal een <textarea> en geen <input>?
@SanThe: Owkay, bij mij werkt het meestal wel. maargoed nu weet ik dus ook dat ik het nooit meer moet gebruiken;)
Het werkt wel, maar het is er niet voor bedoeld ;)
anne schreef op 16.08.2008 11:17
@SanThe: Owkay, bij mij werkt het meestal wel. maargoed nu weet ik dus ook dat ik het nooit meer moet gebruiken;)

Als het zonder backtics niet werkt dan gebruik je verkeerde tabel/veldnamen.
Eigenlijk heb ik hetzelfde probleem, maar ik denk dat het een logische fout is want de gegevens die je wil wijzigen bestaan al in een var en die var ( zoals die was) wordt ook gebruikt voor het updaten.

Maar helaas weet ik de oplossing ook nog niet..
SanThe schreef op 16.08.2008 11:04
@Anne: Dat is een fout advies. Nooit backtics in je query doen.

@Kristof: Bouw eerst een een fatsoenlijke foutafhandeling in voor de query's.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Edit: En waarom gebruik je overal een <textarea> en geen <input>?


Wanneer ik input gebruik verschijnt de text uit mijn database naast de velden. Dus niet erin.
Zal het misschien komen doordat mijn wachtwoorden gecodeerd weergegeven worden? vb test word weergegeven als 098f6bcd4621d373cade4e832627b4f6

Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.

Bij <input> gebruik je de value="..........." om de waarde neer te zetten.
Daarvan ben ik op de hoogte maar als ik vb <input size="20" value="voornaam">'.stripslashes($res->vnaam).'</input> neem, dan verschijnt in het input veld voornaam en naast het veld de voornaam uit de database.

Reageren