Hallo,
Dit is mijn eerste post hier, dus weet nog niet helemaal hoe het werkt, maar zal het proberen zo goed mogelijk te doen.

Mijn probleempje:
Ik heb een admin scriptje ergens gedownload waar een nieuwe gebruiker toevoegen bij zat (werkt btw. met MySQL), die niuwe gebruiker toevoegen heb ik geprobeerd te wijzigen, alleen nu wijzigt ie de MySQL query niet, maar voegt een 2e toe...

Het door mij bewerkte script (het orginele script kun je vinden op http://berknet.funpic.de/forum/viewtopic.php?t=26 ):
<?php
$pagenaam = "Admin bewerken";
include("safe.php");
?>
<?php
include("../header.php");
?>
<?

include ("../config.php");

if ($_SERVER["QUERY_STRING"] != "aangemeld") {
if ($_POST['voegtoe']) {
if ($_POST['gebruikersnaam'] != "" && $_POST['wachtwoord'] !="") {
if ($_POST['wachtwoord'] == $_POST['wachtwoord2']) {

$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
$md5_pass = md5($_POST[wachtwoord]);
mysql_query("INSERT INTO login (gebruikersnaam, wachtwoord) VALUES ('$_POST[gebruikersnaam]','$md5_pass')") or die (mysql_error());
header("Location: $_SERVER[PHP_SELF]?aangemeld");


} else {
echo "<font color='red'>Het wachtwoord en controlewachtwoord komen niet overeen.</font>";
}
} else {
echo "<font color='red'>Je bent vergeten een veld in te vullen!</font>";
}
}

echo "<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">\n";
echo "<table>\n";
echo " <tr>\n";
echo " <td><small>Gebruikersnaam:</small></td>\n";
echo " <td><input type=\"text\" name=\"gebruikersnaam\" value=\"$gebruikersnaam\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Herhaal nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord2\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td></td>\n";
echo " <td><input type=\"submit\" name=\"voegtoe\" value=\"Toevoegen\">\n";
echo " </tr>\n";
echo "</table>\n";
echo "</form\n";

} else {
echo "Vanaf nu kan er ingelogd worden met het aangemaakte profiel.\n";

}
?>
<?php
include("../footer.php");
?>

ikzelf denk dat de fout hierin zit:

$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
$md5_pass = md5($_POST[wachtwoord]);
mysql_query("INSERT INTO login (gebruikersnaam, wachtwoord) VALUES ('$_POST[gebruikersnaam]','$md5_pass')") or die (mysql_error());

en dat dat insert door iets moet worden vervangen ofzo..
wat voor fout geeft hij aan en in welke regel?
Als je een nieuwe gebruiker toevoegt moet hij toch ook een nieuwe rij toevoegen in de database?
ja dat ook al goed opgelet dutchcamel
@ paul
geen fout, alleen ik wil dat ie de gebruiker pass wijzigt, en niet nog een gebruiker (met zelfde username) aanmaakt...

Het script werkt wel... alleen werkt deze edit.php nog niet helemaal zoals ik wil.. bovenstaande fout moet eruit...
Je moet gebruik maken van een UPDATE query:

Voorbeeld:
<?php
$query = mysql_query("UPDATE gebruikers
SET kolom1 = '".$var1."', kolom2 = '".$var2."'
WHERE kolomX = '".$varX."'
")
?>

Elwin

[Edit: Typo]
Als je het wachtwoord wil wijzigen moet je dit gebruiken:

<?
mysql_query("UPDATE login SET wachtwoord '".$_POST['wachtwoord']."' WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
?>

Wat die regel doet lijkt me logisch, hij vervangt de waarde van wachtwoord waar de gebruikersnaam $_POST['gebruikersnaam'] is in $_POST['wachtwoord'].

Niet vergeten te controleren of de gebruiker wel zeker ingelogd of ander het huidige wachtwoord voor de zekerheid vragen anders kun je als je iemands gebruikersnaam weet eenvoudig zijn wachtwoord veranderen..
Het betreft een beveiligd script in een admin gebied, dus voor als admin wachtwoord vergeten is, kan andere admin dat updaten..
voor de user heb ik de username gewoon vast gezet, en zal ik nog ff de oude wachtwoord proberen op te vragen voordat het wordt voorgezet (ben niet zo goed inPHP.. du s moet nog fftjes proberen)
Thanx het is gelukt, het werkt nu!!..

Ehh.. hoe zet ik die emailmelding van dit topic (bij posten aangezet) weer uit??... :$ (hebt al.. in de mails staat een afmeld linkje :P)

Reageren