Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:10 Der er 30 kommentarer og
1 løsning

skift password i mysql database

Jeg har en mysql database hvor man videre en php side skal kunne skifte password med en knap der hedder skift el. noget.

Jeg vil gerne have den så der er 2 felter
1. = password
2. = gentag password

Den skal så skifte password i tabellen password i mysql databasen.

Hvordan får jeg den lige til det.

Jeg mangler kun den knap, men kan ikke lige hitte ud af at lave den, så den fanger databasen, og den så skal skifte i tabellen

Håber der er en der kan hjælpe.
Avatar billede simplus Nybegynder
04. februar 2007 - 20:19 #1
Således:

<form action="" method="POST">
kode: <input type="text" name="pass1">
<br>
gentag: <input type="text" name="pass2">
<br>
<input type="submit" name="skift" value="skift">
</form>


<?php

if (isset($_POST['skift'])) {

    if (isset($_POST['pass1']) && isset($_POST['pass2'])) {
        if ($_POST['pass1'] != $_POST['pass2']) {
            echo "De to passwords var ikke ens!";
        }else{
            $newpass = mysql_real_escape_string($_POST['pass1']);
            mysql_query("UPDATE password SET `password`='$newpass'") or die(mysql_error());
        }
    }else{
        echo "Begge felter skal udfyldes!";
    }

}

?>
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:26 #2
Får denne fejl
Warning: mysql_real_escape_string(): Access denied for user 'mg'@'localhost' (using password: NO) in /www/webadmin/index.php on line 76

Linje 76 = $newpass = mysql_real_escape_string($_POST['pass1']);
Avatar billede simplus Nybegynder
04. februar 2007 - 20:31 #3
Det er fordi du ikke er logget på din MySQL server.
Det troede jeg du var med på :-)

Brug denne istedet:

<?php
mysql_connect('localhost','user','pass');
mysql_select_db('databasenavn');

if (isset($_POST['skift'])) {

    if (isset($_POST['pass1']) && isset($_POST['pass2'])) {
        if ($_POST['pass1'] != $_POST['pass2']) {
            echo "De to passwords var ikke ens!";
        }else{
            $newpass = mysql_real_escape_string($_POST['pass1']);
            mysql_query("UPDATE password SET `password`='$newpass'") or die(mysql_error());
        }
    }else{
        echo "Begge felter skal udfyldes!";
    }

}

?>

du skal så bare lige rette de første 2 linier til dine login oplysninger til MySQL!
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:34 #4
jeg burde være logget ind, da den fint trækker dataerne ud fra tabelen.
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:34 #5
Får samme fejl med de 2 linjer
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:36 #6
Men password tabelen, lægger inde i en database, skal databasen ikke fanges når den vil skifte ???
Avatar billede simplus Nybegynder
04. februar 2007 - 20:36 #7
Hmm, prøv istedet:

$newpass = htmlentities($_POST['pass1']);

det er ikke helt det samme, men måske er det selve funktionen du ikke har adgang til af en eller anden underlig grund.
Avatar billede simplus Nybegynder
04. februar 2007 - 20:38 #8
med hensyn til din kommentar i 20:36:22 så kan jeg sige at det er netop det vi gør her:

mysql_query("UPDATE password SET `password`='$newpass'") or die(mysql_error());

den opdatere feltet password i tabellen password med indholdet af variablen $newpass
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:38 #9
Vilken linje vil du have jeg skal skifte ud til den ???
Avatar billede simplus Nybegynder
04. februar 2007 - 20:39 #10
$newpass = mysql_real_escape_string($_POST['pass1']);
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:40 #11
Bare underligt, for det er root der er logget ind og skal sætte den, og hvor den får 'mg' fra ander jeg ikke
Avatar billede simplus Nybegynder
04. februar 2007 - 20:42 #12
Det ved jeg sørme heller ikke, men det er der fejlen ligger: Du er logget ind forkert eller som den forkerte bruger på MySQL.

Btw. virker det hvis du ændre den sidste ting jeg skrev? Altså linie 76?
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:43 #13
Nu får jeg denne fejl Warning: mysql_real_escape_string(): A link to the server could not be established in /www/webadmin/index.php on line 76
Avatar billede simplus Nybegynder
04. februar 2007 - 20:51 #14
Så er det fordi du har valgt en forkert database, hvad hedder den database som indeholder tabellen passwords?
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:52 #15
customer
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:52 #16
mysql_query("UPDATE customer SET `password`='$newpass'") or die(mysql_error());

Har jeg prøvet
Avatar billede simplus Nybegynder
04. februar 2007 - 20:57 #17
Istedet for at bruge:

mysql_select_db('databasenavn');

så prøv:

mysql_select_db('customer');
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 20:59 #18
Jamen, den er jo connectet til databasen i forvejen, der er ingen grund til den connecter 2 gange i samme php fil.

Den starter med at connecte med include('php/Settings.inc'); hvor den connecter til db osv osv. inde i databsen lægger customer i og customer er der så en rubrik der hedder password.
Avatar billede simplus Nybegynder
04. februar 2007 - 21:05 #19
Hmm, hvis du har en database der hedder customer og en tabel der hedder passwords med et felt der hedder passwords og samtidig en connection der ser således ud:

mysql_connect('xx','xx','xx');
mysql_select_db('customer');

så vil det virke.
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:08 #20
Okay.
1: den connecter til en database der hedder michael
2: i databasen er der en tabel der hedder customer
3: i tabelen customer er der en rubrik der hedder password.

Den connecter til databasen da den allerede trækker dataer ud på skærmen, men skal have gjort så passwordet kan skifte, så kunderne selv kan skifte det.
Avatar billede simplus Nybegynder
04. februar 2007 - 21:15 #21
<?php

if (isset($_POST['skift'])) {

    if (isset($_POST['pass1']) && isset($_POST['pass2'])) {
        if ($_POST['pass1'] != $_POST['pass2']) {
            echo "De to passwords var ikke ens!";
        }else{
            $newpass = mysql_real_escape_string($_POST['pass1']);
            mysql_query("UPDATE customer SET `password`='$newpass'") or die(mysql_error());
        }
    }else{
        echo "Begge felter skal udfyldes!";
    }

}

?>
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:16 #22
har jeg prøvet, så får jeg stadig den fejl
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:21 #23
Jeg får denne fejl : Warning: mysql_real_escape_string(): A link to the server could not be established in /www/webadmin/index.php on line 7
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:21 #24
Warning: mysql_real_escape_string(): A link to the server could not be established in /www/webadmin/index.php on line 76

Linje 76 = $newpass = mysql_real_escape_string($_POST['pass1']);
Avatar billede simplus Nybegynder
04. februar 2007 - 21:23 #25
Så ved jeg desværre ikke helt hvad det kan være.
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:23 #26
Tror det er denne der fejler : mysql_real_escape_string
Avatar billede simplus Nybegynder
04. februar 2007 - 21:27 #27
Prøv at fjerne den og se hvad der sker...
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:30 #28
Så får jeg kun denne fejl : Warning: mysql_query(): Access denied for user 'mg'@'localhost' (using password: NO) in /www/webadmin/index.php on line 75
Avatar billede simplus Nybegynder
04. februar 2007 - 21:33 #29
Hmm, igen tyder det på at du ikke har adgang til MySQL.
Er dit brugernavn mg og du har ikke kode på din MySQL konto?
Avatar billede the-exterminator Nybegynder
04. februar 2007 - 21:34 #30
nope ved ikke hvor den har mg fra, har lige kigget de 4 inc filer igemmen den kalder fra den php fil, og i settins.inc hvor den logger ind, er rigtigt nok, og den kalder osse alt det den skal, den vil bare ikke skifte det password.
Avatar billede the-exterminator Nybegynder
05. februar 2007 - 07:31 #31
er klaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester