Gå til innhold

Hvorfor blir jeg ikke logget inn med dette scripte


Anbefalte innlegg

Skrevet

Hei!

 

Fikk hjelp på Norsk Webforum en gang (http://norskwebforum.no/viewtopic.php?t=32...ht=login+script) og til slutt fikk jeg scriptet til å fungere takket være denne posten i den tråden, men nå som jeg fant igjen tråden (kopierte koden med en liten endring), men jeg blir ikke logget inn.

 

 

Koden (over doctype):

if (isset($_POST['Submit'])) {

// Connect to server and select databse.
mysql_connect("localhost", "uname", "pword"); 
mysql_select_db("database");

// username and password sent from signup form 
$myusername = mysql_real_escape_string($_POST['username']); 
$mypassword = mysql_real_escape_string(md5($_POST['password'])); 

$sql="SELECT * FROM users WHERE username = '$myusername' and password = '$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
$_SESSION['user_logged_in'] = TRUE;
$_SESSION['isername'] = mysql_result($result,0,"username");
$_SESSION['id'] = mysql_result($result,0,"id");
header('location: index.php');
}
else {
header('location: index.php');
}
}

 

Og så her er koden som sjekker om man er logget inn:

<?php
if (!$_SESSION['user_logged_in']) {
include 'login.php';
}
else {
include 'content.php';
}
?>

 

 

Noen som vet hvorfor jeg ikke blir logga inn? Driver å lager et administrasjonspanel...hvis det hjalp dere noe lol

 

 

Btw:

Det jeg forandra på var de her: $_POST['mypassword'] til $_POST['password'] og så det samme på username...siden feltene i skjemaet het password og username og ikke myusername & mypassword

Videoannonse
Annonse
Skrevet

hockey500

Jepp, jeg har session_start(); over den koden der

 

 

MrNeeon

For å bedre sikkerheten mener du? Kanskje ikke så dumt det...skal legge det på når jeg har løst mysteriet med hvorfor jeg ikke blir logget inn.

Skrevet

Ikke det at jeg har peil i PHP, men kanksje du har skrevet feil et sted?

 

$_SESSION['isername'] = mysql_result($result,0,"username");

 

isername skulle kanksje vært username?

Skrevet (endret)

Sorry, men det hjalp ikke, men får at jeg skal få sånn "Velkommen tilbake, " . $_SESSION['username']; så måtte den rettes opp i uansett, men takk uansett.

 

Ingen som vet hva som er feil?

Endret av Anders-Moen
Skrevet

Hadde jo vært kjekt med litt feilmeldinger for å sjekke hvor ting feiler.

 

Du kunne jo prøvd noe sånt

$result=mysql_query($sql) or die( "ERROR: " . mysql_error() );

for å se om problemet ligger i databasespørringen.

 

Og du kan prøve dette

else {

header('location: index.php');

print "COUNT: " . $count;

}

for å se om det er i if/else-setningen din det feiler.

 

Jeg ser heller ingen problemer i koden, derfor jeg foreslår feilsøking.

 

// mgns

Skrevet

Prøvde det her

$result=mysql_query($sql) or die("ERROR: " . mysql_error());

men ingen feilmeldinger å se. (Ja, jeg tok bort header'ene sånn at meldingene ikke skulle gå bort før man så dem)

Skrevet (endret)

Da virker det for meg som om feilen er at

if( $count == 1 )

aldri slår til. Prøv å se hva som ligger i databasen og kanskje prøve å skrive query'en til skjerm så du hva databasen blir spurt om.

 

Altså før

$result=mysql_query($sql);

så tar du en

print "QUERY: " . $query;

 

EDIT: Prøv også å kjøre denne spørringen direkte mot databasen for å se hva den returnerer.

 

// mgns

Endret av mgns
Skrevet

PHP

<?php

 

if (isset($_POST['submit'])) {

 

 

// Connect

$c mysql_connect('localhost''uname''pword');

mysql_select_db('database'$c);

 

 

$username mysql_real_escape_string($_POST['username']);

$password mysql_real_escape_string($_POST['password']));

 

$hash md5($password);

 

$query mysql_query("SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$hash'");

$row mysql_fetch_object($query);

 

 

if(mysql_num_rows($query) > 0) {

$_SESSION['user_logged_in'] = TRUE;

$_SESSION['username'] = $row->username;

$_SESSION['id'] = $row->id;

 

header('Location: index.php');

exit();

}

else {

die('Feil brukernavn/passord');

}

}

else {

 // Show login form

}

?>

 

 

Sjekkingen av om man er logget inn, kan du lage slik:

 

PHP

<?php

if(!$_SESSION['user_logged_in']) {

die('Du er ikke logget inn din taper');

}

?>

Gratulerer, du er logget inn :)

Skrevet

PHP
<?php

$username mysql_real_escape_string($_POST['username']);

$password mysql_real_escape_string($_POST['password']));

 

$hash md5($password);

?>

 

Du treng ikkje å escape passordet før du hasher det. Hashen vil aldri innehald 'farlege' teikn utansett og dermed er det bare sløsing av server kraft ;)

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...