Avatar billede znopie Nybegynder
13. december 2007 - 17:25 Der er 2 kommentarer og
1 løsning

Login brugernavn skal matche præcis

Hej alle,

Hvordan kan jeg få min MySQL til at registrere om det brugernavn matcher præcis med den som står i databasen?

Jeg har ingen idé om det lige nu. Jeg vil bruge det som en lille ekstra sikring, så det hele skal være udfyldt præcis.

(Har ikke sikret min database endnu, men dette er stadig et test script)

<?php /* START */

mysql_connect("Localhost", "root", "") OR DIE( mysql_error() );
mysql_select_db("homepage") OR DIE( mysql_error() );

if ($_POST['login']) {
  $GET_LOGIN = mysql_query("SELECT * FROM administrators WHERE user_name = '".$_POST['username']."'");
  $SHOW_LOGIN = mysql_fetch_array($GET_LOGIN);
    echo $SHOW_LOGIN['id'] ."<br>";
    echo $SHOW_LOGIN['user_name'] ."<br>";
    echo $SHOW_LOGIN['user_password'] ."<br>";
    exit();
  } else {

  echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
    <table cellspacing=\"0\" cellpadding=\"0\">
      <tr><td>Bruger:</td><td><input type=\"text\" name=\"username\" value=\"\"></td></tr>
      <tr><td>Kodeord</td><td><input type=\"password\" name=\"userpass\" value=\"\"></td></tr>
      <tr><td></td><td align=\"right\"><input type=\"submit\" name=\"login\" value=\"Log Ind\"></td></tr>
    </table>
  </form>";

}

/* END */ ?>
Avatar billede znopie Nybegynder
13. december 2007 - 18:07 #1
Altså hvis der i databasen står brugernavn: aBcDEF

Så skal den bruger man indtaster være aBcDEF og ikke abcdef
Avatar billede j4k0b Nybegynder
13. december 2007 - 22:45 #2
Jeg har ikke selv brugt mysql i langt tid, men jeg mindes ikke at mysql er case-sensitive, dvs. det er ligegyldigt om du søger efter brugernavn eller BRUGERNAVN.

Ellers må du sikre dig, at når du indsætter (opretter) brugere, kun at have brugernavnet gemt i store/små bogstaver. Så kan du sammenligne f.eks. strtolower($_POST['username']) med indholdet af din database.
Avatar billede znopie Nybegynder
22. december 2007 - 21:13 #3
Har fundet ud af det. Ved at benytte utf8_bin i sin database, så kan man sikre sig bedre :)

CREATE TABLE `jj_users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(255) character set utf8 collate utf8_bin NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester