[PHP, MySQL] Variabele met Query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik schaam me echt dood om deze vraag te stellen, maar aangezien ik al de hele dag bezig ben naja.. Ik ben bezig met een cookie login systeem, maar na het continu mislukken ben ik overnieuw begonnen, maar dit stomme stukje code werkt al niet :S

Login.html
code:
1
2
3
4
5
6
7
8
<html><head><title></title></head><body>
<form name="inloggen" method="post" action="login.php?login=test">
<input name="user" type="text"><br>
<input name="pass" type="text"><br>
<input type="submit" name="submit" value="Inloggen">
</form>
</body>
</html>

Login.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<? 
if($login == 'test') {
require("connect.php");
if ($username == "" && $pass == "") { echo "U bent uw gebruikersnaam en/of wachtwoord vergeten";
} else {
$query = mysql_query("SELECT * FROM member WHERE member_name = '$user' AND member_pass = '$pass'") or die (mysql_error());
} if (!$query) {
echo "De ingevoerde gebruiker/wachtwoord combinatie is niet juist";
} else {
echo "Login Succesvol";
}
} 
?>

<?
echo $user;
echo $pass;
?>


Het probleem is dat als ik bij allebei de velden iets invul, of alleen de het veld pass hij al login succesvol zegt.

Vul ik maar het veld user in dan krijg ik de eerste echo. MAAR ook de tweede echo. Terwijl hij de tweede echo naar mijn idee pas na de sqlquery moet laten zien.

De user en pass geeft ie goed door . 'member_name' en 'member_pass' heb ik gechecked en dubbel gechecked of de velden wel bestaan in db.

Er is iets met de query maar ik kan er met m'n kop niet bij :S

[ Voor 31% gewijzigd door Verwijderd op 03-04-2004 17:02 ]


Acties:
  • 0 Henk 'm!

  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

je moet natuurlijk wel de waarden die je uit je tabel haalt wel vergelijken met de ingevoerde waardes

hij geeft nu alleen een melding als allebei de velden niet is ingevoerd. van de && moet je dus ff een || maken

Multimonitor is relax :P


Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 20-09 12:29

Snow_King

Konijn is stoer!

De query gaat helemaal niet fout?
Alleen er komt geen resultaat, dat maakt een query nog niet fout.

Overigens zou ik het stukje script zo maken:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
if($login == 'test') {

require("connect.php");

if (empty($username) || empty($password)) { 
    echo "U bent uw gebruikersnaam en/of wachtwoord vergeten";
} else {
    $query = mysql_query("SELECT * FROM member WHERE member_name = '$user' AND member_pass = '$pass'") or die (mysql_error());
    $count = mysql_num_rows($query);
    } if (empty($count)) {
        echo "De ingevoerde gebruiker/wachtwoord combinatie is niet juist";
    } else {
        echo "Login Succesvol";
    }
}
?>

<?
echo $user;
echo $pass;
?> 

[ Voor 10% gewijzigd door Snow_King op 03-04-2004 17:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
geweldig Snow_King! Het werkt nu, die code is iid beter als ik het zo bekijk.

Nu nog 1 klein dingetje:

Als ik een foute combinatie invul of 1 veld leeglaat, of beide dan krijg ik altijd "De ingevoerde gebruiker/wachtwoord combinatie is niet juist". Ik wil deze echo pas als allebei de velden ingevuld zijn.

[ Voor 6% gewijzigd door Verwijderd op 03-04-2004 17:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

En toen ging ik in het formulier het volgende invullen:

gebruikersnaam: ' OR 1=1 OR 1='

Als je dan toch iets aan het beveiligen bent, schrijf dan een beetje stevige code waarin je alles wat van de gebruiker vandaan komt controleert.

[ Voor 6% gewijzigd door Verwijderd op 03-04-2004 17:19 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je hebt helemaal gelijk Cheatah.

Maar aangezien ik een heel simpel forum moet schrijven met 3 lessen php/mysql waar we alleen maar geleerd hebben hoe we via php en sql iets in en uit de database kunnen halen en wijzigen hoeven we geen rekening te houden met de beveiliging.

Ik weet dat er iets bestaat als addslashes, stripslashes en htmlspecialchar. En dat ga ik ook zeker toepassen nadat ik mijn opdracht heb zoals in de specificaties staat beschreven.

Tis trouwens ook een kwestie van tijdnood :P
Pagina: 1