Gå til innhold

Nytt passord-skript


Anbefalte innlegg

Jeg har skrevet et skript som kan gi brukere et nytt passord dersom det er glemt.

Men jeg får ikke til det der med if.

Kan noen hjelpe meg, og si hva som er feil?

 

<?php



function makeRandomPassword() {

    $salt = "abchefghjkmnpqrstuvwxyz0123456789";

    srand((double)microtime()*1000000);

        $i = 0;

        while ($i <= 7) {

                        $num = rand() % 33;

                        $tmp = substr($salt, $num, 1);

                        $pass = $pass . $tmp;

                        $i++;

        }

        return $pass;

}
$random_password = makeRandomPassword();
$cryptpassword = crypt($random_password);
//logger på database
$connection = mysql_connect(HOST, USER, PASSWORD) or die("Umulig å
få kontakt med database");
//Velger database
mysql_select_db(DB);
//Sender setningen mot database som skal hente ut infoen
$setning = mysql_query("SELECT * FROM brukere WHERE epost='$_POST[epost]'") or die("En feil oppstod: ".mysql_error());
$numberrows = mysql_num_rows($setning);
if $numberrows == 0
{
while($sql = mysql_fetch_array($setning))
{
mail(
"$sql[epost]", "Nytt passord",
"Du får denne e-posten fordi du har bedt om et nytt passord hos LoCost Virtual Airline.
Dersom dette ikke er tilfellet, ber vi deg se bort fra denne e-posten, og slette den umiddelbart.

--

Ditt nye passord hos LoCost Virtual Airline er $random_password.
Før du kan ta dette i bruk, må du aktivere det ved å klikke på denne lenken:

http://www.locostva.com/medlemsomrade/aktiverpassord.php?brukerid=$sql[brukerid]&kode=$cryptpassword

Dersom du ikke kan klikke direkte på lenken, kan du kopiere den over i adresselinjen i din nettleser.
Passordet kan IKKE brukes før dette er gjort.

Når du har aktivert passordet, kan du logge inn som normalt med ditt nye passord.
Vi anbefaler imidlertid at du skifter passordet ditt umiddelbart etter at du har logget inn.

Med vennlig hilsen,
LoCost Virtual Airline",
 "From: [email protected]" );

echo("Ditt nye passord er nå sendt til deg pr. e-post. Det må aktiveres før du kan ta det i bruk.");
}}
else
{
print("Ingen brukere står oppført med oppgitt e-postadresse.");
}
?>

Lenke til kommentar
Videoannonse
Annonse

function make_password()
           {
 $pass = "";
 $chars = array(
 	"1","2","3","4","5","6","7","8","9","0",
 	"a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
 	"k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
 	"u","U","v","V","w","W","x","X","y","Y","z","Z");

 $count = count($chars) - 1;

 srand((double)microtime()*1000000);

 for($i = 0; $i < 8; $i++)
 {
 	$pass .= $chars[rand(0, $count)];
 }

 return($pass);
}

 

Et fint passord script. :yes:

Lenke til kommentar

Takk!

Nå virker det!

Men jeg (kremt :blush:) trenger litt hjelp med enda et passordskript jeg har skrevet. Dette er et endre-passordskript.

Problemet er at det ikke virker. Jeg har prøvd å fikse det så godt jeg klarer, men det bare forblir feil.

 

<?
if($_POST['passord1'] == $_POST['passord2'])
{
$hostname = "HOST";
$user = "USER";
$password = "PASSWORD";
$db = "DB";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database");
@mysql_select_db($db);
$cryptgpassord = crypt($_POST['gpassord']);
$sjekk_passord = @mysql_query("SELECT passord FROM brukere WHERE passord='$cryptgpassord'") or die("En feil oppstod: ".mysql_error());

if(@mysql_num_rows($sjekk_passord) == 1)
{
$cryptpassord = crypt($_POST['passord1']);
$legger_inn_info = @mysql_query("UPDATE brukere (passord) VALUES ('$cryptpassord') WHERE brukernavn='$_SESSION[brukernavn]'");

if(@mysql_affected_rows($legger_inn_info) == 1)
{
print("Passordet er endret");
}
else
{
print("Det skjedde en feil. Gå tilbake, og prøv igjen.");
}
else
{
print("Ditt gamle passord stemmer ikke med det du oppga. Gå tilbake og prøv på nytt.");
}}
else
{
print("De to passordene du oppga stemmer ikke med hverandre. Gå tilbake og prøv på nytt.");
}}
?>

Lenke til kommentar

Endret litt på sakene. Er litt svidd i hodet etter 2-3 timer med romananalyse på engelsk, men _tror_ det skal funke nå:

<?
if($_POST['passord1'] == $_POST['passord2'])
{
$hostname = "HOST";
$user = "USER";
$password = "PASSWORD";
$db = "DB";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database");
@mysql_select_db($db);
$cryptgpassord = crypt($_POST['gpassord']);
$sjekk_passord = @mysql_query("SELECT passord FROM brukere WHERE passord='$cryptgpassord'") or die("En feil oppstod: ".mysql_error());

if(@mysql_num_rows($sjekk_passord) == 1) {
 $cryptpassord = crypt($_POST['passord1']);
 $legger_inn_info = @mysql_query("UPDATE brukere (passord) VALUES ('$cryptpassord') WHERE brukernavn='$_SESSION[brukernavn]'");
 if(@mysql_affected_rows($legger_inn_info) == 1)	{
 print("Passordet er endret");
 }
 else {
 print("Det skjedde en feil. Gå tilbake, og prøv igjen.");
 }
}
else
{
print("Ditt gamle passord stemmer ikke med det du oppga. Gå tilbake og prøv på nytt.");
}}
else
{
print("De to passordene du oppga stemmer ikke med hverandre. Gå tilbake og prøv på nytt.");
}
?>

Endret av Loomy
Lenke til kommentar

Jeg får det ikke til å fungere.

Jeg tror jeg har forenklet det litt nå.

Kan noen ta en titt på dette i stedet?

(Føler meg rimelig dum)

 

<?
if($_POST['passord1'] == $_POST['passord2'])
{
$hostname = "HOST";
$user = "USER";
$password = "PW";
$db = "DB";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database");
@mysql_select_db($db);
$sjekk="SELECT * FROM brukere WHERE brukernavn='$_SESSION[brukernavn]'";
while($sql = @mysql_fetch_array($sjekk))
{
$cryptgpassord = crypt($_POST['gpassord']);
if($sql[passord] = $cryptgpassord) {
$cryptpassord = crypt($_POST['passord1']);
$update="UPDATE brukere (passord) VALUES ('$cryptpassord') WHERE brukernavn='$_SESSION[brukernavn]'";
$result= mysql_query($update, $connection) or die
("Could not execute query : $query." . mysql_error());
print("Passordet er endret");
}
else
{
print("Ditt gamle passord stemmer ikke med det du oppga. Gå tilbake og prøv på nytt.");
}}
else
{
print("De to passordene du oppga stemmer ikke med hverandre. Gå tilbake og prøv på nytt.");
}
?>

Lenke til kommentar
<?

if($_POST['passord1'] == $_POST['passord2'])

{

$hostname = "HOST";

$user = "USER";

$password = "PW";

$db = "DB";

$connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database");

@mysql_select_db($db);

$sjekk="SELECT * FROM brukere WHERE brukernavn='$_SESSION[brukernavn]'";

while($sql = @mysql_fetch_array($sjekk))

{

$cryptgpassord = crypt($_POST['gpassord']);

if($sql[passord] = $cryptgpassord) {

$cryptpassord = crypt($_POST['passord1']);

$update="UPDATE brukere (passord) VALUES ('$cryptpassord') WHERE brukernavn='$_SESSION[brukernavn]'";

$result= mysql_query($update, $connection) or die

("Could not execute query : $query." . mysql_error());

print("Passordet er endret");

}

else

{

print("Ditt gamle passord stemmer ikke med det du oppga. Gå tilbake og prøv på nytt.");

}}

else

{

print("De to passordene du oppga stemmer ikke med hverandre. Gå tilbake og prøv på nytt.");

}

?>

 

Tror ihvertfall du må ha

if($sql["passord"] = $cryptgpassord) {

eller

if($sql['passord'] = $cryptgpassord) {

istedenfor

if($sql[passord] = $cryptgpassord) {

men hva er feilmeldinga du får a?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...