Hoe zorg je dat PHP bewerkt ipv toevoegd
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 ):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
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";
}
?>
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";
}
?>
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?
Gewijzigd op 27/08/2004 14:50:00 door dutchcamel
ja dat ook al goed opgelet dutchcamel
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...
Voorbeeld:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$query = mysql_query("UPDATE gebruikers
SET kolom1 = '".$var1."', kolom2 = '".$var2."'
WHERE kolomX = '".$varX."'
")
?>
$query = mysql_query("UPDATE gebruikers
SET kolom1 = '".$var1."', kolom2 = '".$var2."'
WHERE kolomX = '".$varX."'
")
?>
Elwin
[Edit: Typo]
Gewijzigd op 27/08/2004 14:53:00 door Elwin - Fratsloos
Code (php)
1
2
3
2
3
<?
mysql_query("UPDATE login SET wachtwoord '".$_POST['wachtwoord']."' WHERE gebruikersnaam = '".$_POST['gebruikersnaam']."'");
?>
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..
Gewijzigd op 27/08/2004 14:58:00 door dutchcamel
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)
Ehh.. hoe zet ik die emailmelding van dit topic (bij posten aangezet) weer uit??... :$ (hebt al.. in de mails staat een afmeld linkje :P)
Gewijzigd op 27/08/2004 15:17:00 door Jorik