Probleem met script: wachtwoord vergeten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob

Rob

05/01/2006 07:56:00
Quote Anchor link
Yow mensen ik ben bezig met een script te ontwikkelen voor clans maar ik zit nu met een probleem wara ik niet uit weet te komen.

Het probleem zit in het script dat een e-mailtje stuurt met de gebruikers gegevens als iemand in e2en form z'n e-mail adres achterlaat. naja alles werkt maar zovlug je een e-mail adres in voert dan krijg je de melding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''members' WHERE 'email' = "[email protected]" FROM 'members' WHERE 'email'' at line 1

De php versie is te zien op:
www.teams.suxus.org/tools/login/php.php

Dit is het gemaakte script:

wachtwoord.php:
<form method="POST" action="option/wachtwoord_verzenden.php">
<p>

Your E-mail:
<input type="text" name="emailadres" size="30">

<br>
<input type="submit" name="submit" value="Send!">
</p>
</form>

option/wachtwoord_verzenden.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// voor de foutmelden: "headers already send" te verkomen xD
session_start();
// controleren of er iets is ingevult.
if ($_POST['emailadres'] == ""){
die ('Je hebt geen e-mail adres ingevoerd');
}
else{
//MySQL-selectiequery definiëren:
require ('../config.php');
$sql = "SELECT 'gebruikersnaam', 'wachtwoord' FROM 'members' WHERE 'email' = \"" . $_POST['emailadres'] ."\" ";
$sql .= "FROM 'members' ";
$sql .= "WHERE 'email' = \"" . $_POST['emailadres'] ."\" ";
$query = mysql_query ("$sql") or die (mysql_error());
$result = $query;
 

//tekst van het e-mailadres baseren op het queryresultaat:
if (mysql_num_rows($result) == 0) {
$bericht = "Helaas konden uw gebruikersnaam en wachtwoord voor het door u ingevulde e-mail adres (" . $_POST['emailadres'] . ") niet worden gevonden. <br> Als u toch een acount heeft neem dan svp contact op met de website-crew <br><br>met vriendelijke groeten, <br>Website-crew " . $script_url;
}
else{
$bericht = "Hierbij ontvangt u uw acount gegevens u uw inlog gegevens. \r\n\r\n";
while ($record = mysql_fetch_array($result, MYSQL_ASSOC)){
$bericht .= "<br><br>Username: " . $record['gebruikersnaam'] . "\r\n";
$bericht .= "<br>Password: " . $record['wachtwoord'] . "\r\n";
$bericht .= "<br> <br>met vriendelijke groet, <br>Website-crew " . $script_url;
}

//resultaat vrijgeven en databaseverbinding sluiten
mysql_free_result($result);
mysql_close ($host,$user,$pass);
//het versturen van de e-mail:
mail("$emailadres", "Your New Password", "$bericht", "From: [email protected]");
// Bericht geven dat er een email is verzonden en na 5 secondes weer terug naar index.php:
header("Refresh: 5; URL=../index.php");
echo ("Er is een e-mail gestuurd met de gebruikers gegevens naar het E-mail adres:" . $_POST['emailadres']); // dit word 5 seconden lang getoond en dan wordt de persoon doorverbonden xD ^^  
}
}
  
?>





Deze fout is nieuw voor me en ik doe zoiezo nog niet zolang met php scripten. weet iemand van jullie hier een oplossing voor. plaats dan maar een reply of mail het me maar -> insecure_06 [at] hotmail [dot] com
Gewijzigd op 05/01/2006 07:59:00 door Rob
 
PHP hulp

PHP hulp

04/05/2024 16:09:00
 
Willem vp

Willem vp

05/01/2006 09:06:00
Quote Anchor link
Kijk eens naar dit stukje code:

$sql = "SELECT 'gebruikersnaam', 'wachtwoord' FROM 'members' WHERE 'email' = \"" . $_POST['emailadres'] ."\" ";
$sql .= "FROM 'members' ";
$sql .= "WHERE 'email' = \"" . $_POST['emailadres'] ."\"

Hier zijn minstens 2 dingen mee mis:

1) De veldnamen staan tussen quotes. Haal de quotes weg voor een beter resultaat. Je bent waarschijnlijk in de war geweest met backticks (`). Die kun je hier wel gebruiken, maar dat is niet echt nodig.

2) Het FROM/WHERE-gedeelte van de query komt 2x voor. Haal de laatste twee regels weg, en kijk dan eens of je query wel werkt.
 
Rob

Rob

05/01/2006 09:21:00
Quote Anchor link
oeps die 2e fout dat is dom had toen alles achtermekaar gezet maar omdat neit werkte wilde ik het terug zetten heb ik niet alles goed terug gezet oeps! :o

haha oeps idd verkeerd tekentje -_- ff proberen of het nu wel werkt xD
 
Rob

Rob

05/01/2006 09:34:00
Quote Anchor link
Merci het werkt nu alleen nu nog Headers allready send error nog beetje netjes weg werken xD
 
Niels Beckers

Niels Beckers

05/01/2006 09:34:00
Quote Anchor link
het is ook net zo veilig om de $_POST rechtstreeks in de database te stoppen.
Gewijzigd op 05/01/2006 09:37:00 door Niels Beckers
 
Rob

Rob

05/01/2006 10:12:00
Quote Anchor link
niels:
het is ook net zo veilig om de $_POST rechtstreeks in de database te stoppen.


ik stop hem niet in database xD

persoon typed mail adres in form het script gaat dan kijken of er een e-mail adres overeenkomt met het ingetypde mail adres. dan als er een overeenkomt wordt dara mailtje heen gestuurd met acount gegevens als niet word naar het ingevoerde mail adres een mail gestuurd met daarin een melding dat er geen overeenkomsten is tussen het doorhem ingevulde adres en een adres in de database.

naja het script werkt nu 100% xD was vergeten dat headers als zeg maar eerste komen dus jah lag nog beetje te kloten met de melding headers already send maarjah daarna had ik het door.
Gewijzigd op 05/01/2006 10:13:00 door Rob
 
Niels Beckers

Niels Beckers

05/01/2006 10:14:00
Quote Anchor link
zo'n dnge bedoel ik:
zo ziet een stukje van mijn loginpagina er uit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$nickname
     = htmlentities($_POST['nickname']);
  $nickname        = mysql_real_escape_string($nickname);
  $nickname        = trim($nickname);

  $wachtwoord    = htmlentities($_POST['password']);
  $wachtwoord    = mysql_real_escape_string($wachtwoord);
  $wachtwoord    = trim($wachtwoord);
  $wachtwoord   = md5($wachtwoord);
  
  $query        = "SELECT * FROM members WHERE UserNickname= '".$nickname."' AND UserWachtwoord='".$wachtwoord."' AND UserActief <> 0";
  $result       = mysql_query ($query) or trigger_error (mysql_error ());
  $line         = mysql_fetch_object($result);
  $geactiveerd  = $line->UserActief;
?>
 
Rob

Rob

05/01/2006 10:41:00
Quote Anchor link
niels:
zo'n dnge bedoel ik:
zo ziet een stukje van mijn loginpagina er uit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$nickname
     = htmlentities($_POST['nickname']);
  $nickname        = mysql_real_escape_string($nickname);
  $nickname        = trim($nickname);

  $wachtwoord    = htmlentities($_POST['password']);
  $wachtwoord    = mysql_real_escape_string($wachtwoord);
  $wachtwoord    = trim($wachtwoord);
  $wachtwoord   = md5($wachtwoord);
  
  $query        = "SELECT * FROM members WHERE UserNickname= '".$nickname."' AND UserWachtwoord='".$wachtwoord."' AND UserActief <> 0";
  $result       = mysql_query ($query) or trigger_error (mysql_error ());
  $line         = mysql_fetch_object($result);
  $geactiveerd  = $line->UserActief;
?>


toch ben ik me 1 ding af aan het vragen je hebt in je database dus alle wachtwoorden met md5 maar hoe heb jij dan je 'wachtwoord vergeten' systeem dan lopen want ik wil eigenlijk ook md5 gaan gebruiken maar heb geen idee hoe ik dan nog het goede wachtwoord eruit krijg ipv de md5 code.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.