Toon posts:

[MySQL] Login systeem geeft error

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil dus een login systeem maken met mysql om mijn adminpagina te beveiligen :).
Ik ben totaal nieuw met MySql, en wil het graag daarmee doen, daarom vraag ik niet om andere mogenlijkheden. ;).

Het probleem:
Hij geeft geen sqyl error o.i.d, maar hij zegt error, (ingestelde tekst bij fout wachtwoord).
Terwijl ik via PhpMyAdmin de goede gegevens heb ingevoerd, het wachtwoord is dus goed :x.

Dit is mijn database structuur:
Klik enzo


Dit me script(s):
------------------
actie.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

$host = "localhost"; //Hier host 
$user = "sharpindustries"; //Hier user van db 
$pass = "------"; //Hier pass van db 
$db   = "sharpindustries"; //Hier db naam 
//Mysql connectie 
$con = mysql_connect($host, $user, $pass) or die ("Error met database");
mysql_select_db($db, $con);
$user = mysql_escape_string($_POST['user']);
$pass = mysql_escape_string($_POST['pass']);
$res = mysql_query("SELECT * FROM login WHERE user = '".$user."' AND pass = '".$pass."'");
if(mysql_num_rows($res) == 0) {
echo 'error';
}else{
echo 'ingelogd';
}
?>



login.html
HTML:
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
<head>
<title></title>
</head>
<form method="post" action="actie.php">
<body bgcolor="#000000" text="#9F9FF9">
<center>
<br><br><br><br>
<fieldset  style="width: 20%">
<font face="Arial" size="1">
&nbsp;&nbsp;
</font>
<font size="2" face="Arial"><b>Login</b></font><font face="Arial" size="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font>
<table>
  <tr>
    <td align="left"><font size="2" face="Arial">Username:</font> </td>
    <td align="center"><font size="2" face="Arial"><input type="text" size="9" /> </font> </td>
  </tr>
  <tr>
    <td align="left"><font size="2" face="Arial">
Wachtwoord:</font> </td>
    <td align="center"><font face="Arial" size="1"><input type="password" size="9" />
</font>
 </td>
  </tr>
</table>
<table width="42">
  <tr>
    <td width="4"> </td>
    <td width="29"><font face="Arial" size="1">
<input type="submit" value="Login" />
</font>
 </td>
  </tr>
</table>
</form>
</fieldset>
</center>

[ Voor 0% gewijzigd door RobIII op 27-11-2006 21:50 . Reden: code=php, code=html van gemaakt. Syntax highlighting FTW \O/ ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 27 november 2006 @ 21:47:
Hij geeft geen sqyl error o.i.d, maar hij zegt error, (ingestelde tekst bij fout wachtwoord).
En welke fout geeft hij dan? Of moeten we dat maar raden?
Verder stikt je HTML van de <font> tags, je zou kunnen overwegen dat via CSS op te lossen ;) Wel zo mooi ;)
Verder zie ik je de <form> tag al buiten je <body> gebruiken :X
...en mix je XHTML met HTML notatie :X
...en sluit je tags in een andere volgorde dan je ze opent (form, fieldset bijv.) :X
...en ik mis name attributen op je textvelden ;)

Ik heb je HTML eens even "vlug" opgeruimd:
HTML:
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
<head>
<title></title>
    <style>
        body {
            background-color: #000000;
            color           : #9F9FF9;
            text-align      : center;
            font-family     : arial;
        }
    </style>
</head>
<body>
<form method="post" action="actie.php">
    <fieldset  style="width: 20%">
        <b>Login</b>
        <table>
            <tr>
                <td>Username:</td>
                <td align="center"><input name="user" type="text" size="9"></td>
            </tr>
            <tr>
                <td>Wachtwoord:</td>
                <td align="center"><input name="pass" type="password" size="9"></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="Login"></td>
            </tr>
        </table>
    </fieldset>
</form>

Het kan nog netter, maar geef toe: met 1 minuut werk is je code zo veel leesbaarder en pik je fouten er veel sneller uit.

[ Voor 79% gewijzigd door RobIII op 27-11-2006 22:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Error, de tekst die ik heb ingesteld als het een fout password/user is. Dat zeg ik toch?

Hij geeft geen sqyl error o.i.d, maar hij zegt error, (ingestelde tekst bij fout wachtwoord).
RobIII schreef op maandag 27 november 2006 @ 21:51:
Verder stikt je HTML van de <font> tags, je zou kunnen overwegen dat via CSS op te lossen ;) Wel zo mooi ;)
Ik weet het, maar ben geen ster in css enzo. Maar dat is nu even niet van belang.

[ Voor 43% gewijzigd door Verwijderd op 27-11-2006 21:54 ]


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

zet eens mysql_error() neer ipv echo "error".
dan krijg je te zien welke mysql error er gegeven wordt.

Iemand een Tina2 in de aanbieding?


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobIII schreef op maandag 27 november 2006 @ 21:51:
[...]

En welke fout geeft hij dan? Of moeten we dat maar raden?
Verder stikt je HTML van de <font> tags, je zou kunnen overwegen dat via CSS op te lossen ;) Wel zo mooi ;)
Als ik de code zo lees, dan krijg je dus na inloggen de 'foutmelding' error... ;)

TS geeft ook aan, dat als hij deze gegevens invult in PHPMyAdmin, dat hij dan wél results terug krijgt.

Toch wil ik de TS op het hart drukken om (bij een foutmelding) mysql_error() te gebruiken, hierdoor krijg je precies te zien wát je precies fout doet... :)

Dus niet or die ("Error met database"); maar or die(mysql_error()); (ook al is dit imo geen nette afhandeling hiervan, het is in ieder geval beter dan nu ;))
Verwijderd schreef op maandag 27 november 2006 @ 21:53:
Ik weet het, maar ben geen ster in css enzo. Maar dat is nu even niet van belang.
Wij hebben zelf ook CSS moeten leren, ook al doet het er nu misschien even niet toe, toch is het wel belangrijk om CSS te gaan gebruiken. Het kan je op den duur enorm veel dataverkeer schelen, en je kan je markup beter onderscheiden van je opmaak... :)

[ Voor 21% gewijzigd door CH4OS op 27-11-2006 21:57 ]


Verwijderd

Topicstarter
Thnx, GJ-tje, dat hebben al meerdere gezecht over dat die(mysql_error());. Toch snap ik het niet, want hij geeft geen error van php zelf. :S Als ik ipv 'error' namenlijk 'blabla' invul, krijg ik dat als error tekst.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 27 november 2006 @ 21:58:
Thnx, GJ-tje, dat hebben al meerdere gezecht over dat die(mysql_error());. Toch snap ik het niet, want hij geeft geen error van php zelf. :S Als ik ipv 'error' namenlijk 'blabla' invul, krijg ik dat als error tekst.
"die()" (zie exit()) geeft de foutmelding die jij 't geeft. Als jij daar 'blabla' aan mee geeft krijg je idd "blabla" als error. Daarom moet je ook mysql_error() gebruiken ;)

[ Voor 10% gewijzigd door RobIII op 27-11-2006 22:04 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • [micro]
  • Registratie: Mei 2002
  • Laatst online: 14-01 09:00
Als je in je formulier velden zou maken met de naam user en pass, dan zou het kunnen dat de waardes van de velden in de database terug gevonden worden.

Verwijderd

Topicstarter
micromeers schreef op maandag 27 november 2006 @ 22:03:
Als je in je formulier velden zou maken met de naam user en pass, dan zou het kunnen dat de waardes van de velden in de database terug gevonden worden.
Wat wordt dan de uiteindelijke code? :)

Sorry, ben net begonnen met php. ;)

  • [micro]
  • Registratie: Mei 2002
  • Laatst online: 14-01 09:00
De oplossing staat in de 2de post van deze thread.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 27 november 2006 @ 22:10:
[...]

Wat wordt dan de uiteindelijke code? :)

Sorry, ben net begonnen met php. ;)
Die heb ik in mijn eerste post gepost :X
Kom op, een beetje moeite doen kan geen kwaad. Je mist gewoon de "name" attributen op je tekstvelden. That's all.

Ik wil je graag even wijzen op de Programming Beleid Quickstart waarin staat waar je topic in PRG aan dient te voldoen (waaronder o.a. wat meer eigen inzet). Lees die eens goed door a.u.b. ;)

[ Voor 29% gewijzigd door RobIII op 27-11-2006 22:13 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:35

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op maandag 27 november 2006 @ 22:10:
[...]

Wat wordt dan de uiteindelijke code? :)

Sorry, ben net begonnen met php. ;)
Dat geeft niet. Dat je om kant en klare code lijkt te vraag wel. RobIII zegt je duidelijk wat er mis is en geeft zelfs in code de oplossing. Dus kijk daar nog eens erg goed naar.

offtopic:
* Creepy mept RobIII. Ik dacht dat je met een kleine wat trager was :/ :Y)

[ Voor 9% gewijzigd door Creepy op 27-11-2006 22:15 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 19:23

MueR

Admin Devschuur® & Discord

is niet lief

offtopic:
Dat is ie ook Creepy, jij bent alleen nog trager dan hij is met handicap, als ik het zo mag noemen

Anyone who gets in between me and my morning coffee should be insecure.


  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Verwijderd schreef op maandag 27 november 2006 @ 22:10:
[...]

Wat wordt dan de uiteindelijke code? :)

Sorry, ben net begonnen met php. ;)
PHP:
1
2
3
4
5
if(mysql_num_rows($res) == 0) {
mysql_error();
}else{
echo 'ingelogd';
}

Iemand een Tina2 in de aanbieding?

Pagina: 1