We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now

x

Having problom with my checklogin() function with encryption. can somebody help me out with fiksing my function?

Adnan
Adnan asked
on
Medium Priority
217 Views
Last Modified: 2013-12-12
I get session destroy and a message that the username or password i incorect.
elseif($ok != 1){
            session_destroy();
            
            print '<p>Feil Brukernavn eller Passord, vennligst klikk tilbake og prøv igjen.</p><hr>';
            $html = search();
***********************Her is my function************************************
<?php
 function checkLogin(){
       
       
$_mysqlHost["host"] = "localhost";
$_mysqlUsername["username"] = "gonadn";
$_mysqlPassword["password"] = "adn0420";
$_mysqlDatabase["database"] = "wiki";


            if (!($db = mysql_connect('localhost','gonadn','adn0420'))){
                          die("Can't connect to mysql.");    
            }
            else{
                    if (!(mysql_select_db('wiki',$db)))  {
                            die("Can't connect to db.");
                          }
            }
//connet to the database



session_start();
            $ok = 0;                  
            $username = strip_tags(substr($_POST['username'],0,32));
            $password = strip_tags(substr($_POST['password'],0,32));
            
            $cleanpw = crypt(md5($password));
            
            $sql="SELECT * FROM wikiusers WHERE username = " .
                  "'". mysql_real_escape_string($username)."' " .
                  "and password='". mysql_real_escape_string($cleanpw)."'limit 1";
      
            $result = mysql_query($sql);
                        //we have a match!
                        //"username", "password"
                        if(($username == $_POST['username']) && ($password == md5($_POST['password']))) {
                        $_SESSION["username"]=$_POST['username'];
                        $_SESSION["password"]=$_POST['password'];
                        $ok = 1;
            
            }elseif($ok != 1){
            session_destroy();
            
            print '<p>Feil Brukernavn eller Passord, vennligst klikk tilbake og prøv igjen.</p><hr>';
            $html = search();
      }
      else
      {
            $status = '<p>Logget inn</p>';
            print '<p>logget inn</p>';
            // Auf Passwortkorrektheit prüfuen
      }
 
      
                  
            
 }
 


 

 
?>
Comment
Watch Question

Hi,

Did you already try to put the session_start(); as the first line of the complete file. I think I have had the same problem once.

Try that first and let me know where you get the error
Richard DavisSenior Web Developer
CERTIFIED EXPERT

Commented:
First thing I think I feel is my duty to bring to your attention is the fact that you supplied your entire database password and username in your post. This is asking for someone to just walk right into your database and have a field day. You might consider changing your database password now to say the least.

Secondly, by the looks of your code, you are attempting to use the session to track the state of a user's being logged in. Typically, I will just start a session right from the very beginning of the script so that all my session vars are available for me to access. Then, should I need to either kill the session mid script, I can issue the session_destroy() function as such.

You might consider using javascript and PHP together as a way to track your users login state as the session typically (by default at least, unless modified in the ini file) will always use cookies for session management between the client and the server.

~AB
Senior Web Developer
CERTIFIED EXPERT
Commented:
Another recommendation I would like to offer would be the use of a seperate implementation of your database connection rather than inside of the script there. It makes for tighter security.

You can create a script that does all your basic database connectivity in it like you have it there, but then do an include of that seperate script in this file so that your database connection link resource variable is accessible to this file. What I have done was actually wrote my own database class and just include that class, calling the methods of that class locally, but creating the database object in this file while including the database password, server, username and db name in a globals include file. Now, everything is more extensible as well as globally available for use elsewhere.

~AB

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.