Mysql injectie werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

09/06/2011 12:22:03
Quote Anchor link
Beste mensen,

Ik heb in mijn login.php bestand de mysql injectie code gezet. Maar krijg de volgende foutmeldingen:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'vhostswww'@'192.168.1.1' (using password: NO) in /www/zzl.org/f/a/n/fansky/htdocs/login.php on line 10

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /www/zzl.org/f/a/n/fansky/htdocs/login.php on line 10

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'vhostswww'@'192.168.1.1' (using password: NO) in /www/zzl.org/f/a/n/fansky/htdocs/login.php on line 11

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /www/zzl.org/f/a/n/fansky/htdocs/login.php on line 11

Zou iemand mij hier misschien mee kunnen helpen?

Alvast bedankt! Graag alleen hulp over de mysql injectie code, waarom dat niet werkt en zo :$.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
 
if ($username&&password)
{


$connect=mysql_connect("localhost", "root", "") or die("Could not connect.");
mysql_select_db("name database") or die("Couldn't find db");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrows = mysql_num_rows($query);

if ($numrows!=0)
    {

        while ($row = mysql_fetch_assoc($query))  
        {

             $dbusername = $row['username'];  
             $dbpassword = $row['password'];        
        }

            
        // check to see if they match
        if ($username==$dbusername&&sha1(md5($password)==$dbpassword))  
        {

         header("location:homee.php");
         $_SESSION ['username']=$username;    
         exit;
        }

        else
            
            echo("Incorrect password!");
               include("index.php");
               exit;        
    }
    
else
    echo("that user doesn't exist");  
    include("index.php");
    exit;
    

}
    
else
   echo("Please enter username and password ");
   include("index.php");
   exit;

?>
 
PHP hulp

PHP hulp

16/05/2021 11:32:23
 
- Ariën -
Beheerder

- Ariën -

09/06/2011 12:22:29
Quote Anchor link
Plaats je connectie eens gewoon bovenaan, en klopt die inlog wel?
Databasenamen kunnen geen spatie bevatten:
"name database"
Gewijzigd op 09/06/2011 12:25:28 door - Ariën -
 

09/06/2011 12:25:07
Quote Anchor link
- Aar - op 09/06/2011 12:22:29:
Plaats je connectie eens gewoon bovenaan, en klopt die inlog wel?


Alles werkt gewoon, behalve die mysql injectie code!
 
- Ariën -
Beheerder

- Ariën -

09/06/2011 12:25:53
Quote Anchor link
Als je nou gewoon eens doet wat ik zeg :-)
 
Dennis meijer

dennis meijer

09/06/2011 12:26:01
Quote Anchor link
Er staat dat je geen wachtwoord hebt gebruikt in die error. Wat betekent dat je niet geconnect bent aan de database. Dus wat Aar zegt. Bovenaan meteen de connectie leggen met je database zodat je niet van zulke foutmeldingen krijgt.
 

09/06/2011 12:26:45
Quote Anchor link
- Aar - op 09/06/2011 12:25:53:
Als je nou gewoon eens doet wat ik zeg :-)


Ik heb de connectie bovenaan gezet, krijg geen error meer. Maar kan nog wel inlogen met die '1' = '1' code. Dus het werkt nog niet echt.

Edit: Na dit werkt de code wel, krijg alleen de foutmelding: User doesn't exist. Dat moet natuurlijk de melding zijn dat het wachtwoord niet juist is.
Gewijzigd op 09/06/2011 12:30:25 door
 
Dennis meijer

dennis meijer

09/06/2011 12:29:58
Quote Anchor link
op regel 13 moet je zowieso nog even een $ voor password zetten.
 
- Ariën -
Beheerder

- Ariën -

09/06/2011 12:30:28
Quote Anchor link
Haal die stripslashes eens weg, die heb je nergens voor nodig.

Gebruik liever zo een constructie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = mysql_query("SELECT * FROM users WHERE username='".mysql_real_escape_string($_POST['username']."'");


Even nog een opmerking:
Zorg voor goede foutafhandeling op je $query. Het is eigenlijk in mijn ogen logischer om deze $result te noemen.
 

09/06/2011 13:16:20
Quote Anchor link
- Aar - op 09/06/2011 12:22:29:
en klopt die inlog wel?


Ik ben er net achtergekomen dat de inlog niet helemaal klopt, ga er nu naar kijken.
 



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.