Gå til innhold

Anbefalte innlegg

Her er login.php

Klikk for å se/fjerne innholdet nedenfor
<?php
include_once("sql_connect.php");
SESSION_START();
if(isset($_POST['login_knapp']))
{
 $SQLoppgave = "SELECT nick, brukernavn, passord, level FROM brukere WHERE brukernavn = ".$_POST['brukernavn']." AND passord = ".$_POST['passord']."";
 $resultat = mysql_query($SQLoppgave);
 echo $resultat;
 	if ($result == 1)
 	{
   $rad = mysql_fetch_assoc($SQLoppgave);
   $_SESSION['innlogget'] = true;
   $_SESSION['level'] = $rad['level'];
   $_SESSION['brukernavn'] = $rad['brukernavn'];
   $_SESSION['nick'] = $rad['nick'];
   echo "Du er nå logget inn!<br>";
   echo "Hei, ";
   echo $_SESSION['nick'];
   include ("test.txt");
}
}
?>  	

<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<b>Username:</b><br><input type="text" name="brukernavn"><br>
<b>Password:</b><br><input type="password" name="passord"><br>
<input type="submit" name="login_knapp" value="Login">
</form>

 

I databasen har jeg:

id | nick | brukernavn | level | passord | email

1 | hayer | hayer | 1 | hayer | hayer

 

Hva gjør jeg galt? :hmm:

Lenke til kommentar
Videoannonse
Annonse

 $SQLoppgave = "SELECT nick, brukernavn, passord, level FROM brukere WHERE brukernavn = ".$_POST['brukernavn']." AND passord = ".$_POST['passord']."";

til

 $brukernavn = mysql_real_escape_string( $_POST['brukernavn'] );
$passord = mysql_real_escape_string( $_POST['passord'] );
$SQLoppgave = "SELECT nick, brukernavn, passord, level FROM brukere WHERE brukernavn = {$brukernavn} AND passord = {$passord}";

ALDRI kjør brukerinput rett inn i en spørring uten å fjerne ting som ikke skal være der.

Lenke til kommentar

Man bør vel ha noen ' rundt brukernavn og passord for å indikere tekst

$SQLoppgave = "SELECT nick, brukernavn, passord, level FROM brukere WHERE brukernavn = '{$brukernavn}' AND passord = '{$passord}'";

//alternativt kan man bruke sprintf(), syntes det kan gi litt bedre kontroll,
// i alle fall med tall (%d)
$SQLoppgave = sprintf("SELECT nick, brukernavn, passord, level FROM brukere WHERE brukernavn = '%s' AND passord = '%s'",$brukernavn,$passord);

Lenke til kommentar

bruker

$sql="SELECT level, brukernavn, passord, email FROM brukere WHERE brukernavn='$myusername' and passord='$mypassword'"; 

:)

 

men får ikke til sessions :s

Her er login scriptet:

<?php
include_once("sql_connect.php");
session_start();

$myusername=$_POST['brukernavn']; 
$mypassword=$_POST['passord']; 

$sql="SELECT level, brukernavn, passord, email FROM brukere WHERE brukernavn='$myusername' and passord='$mypassword'";
$resultat = mysql_query($sql);

$count = mysql_num_rows($resultat);

if($count==1){
$_SESSION['innlogget'] = true;
$_SESSION['level'] = $rad['level'];
$_SESSION['brukernavn'] = $rad['brukernavn'];
$_SESSION['nick'] = $rad['nick'];
$_SESSION['email'] = $rad['email'];
header("Location: .././index.php");
}
else {
echo "<font size=6>ERROR:</font><br><b>Wrong Username or Password</b>";
}
?>

!ps!

hvis ikke " header("location .././index.php"); " funker så husk, jeg har også prøvd " header("location index.php"); mens index.php var i samme mappe..

 

å her er index.php

<?php
echo $_SESSION['nick'];
?>

Hva er det jeg gjør feil?

Lenke til kommentar

if($count==1){
$_SESSION['innlogget'] = true;
$_SESSION['level'] = $rad['level'];
$_SESSION['brukernavn'] = $rad['brukernavn'];
$_SESSION['nick'] = $rad['nick'];
$_SESSION['email'] = $rad['email'];
header("Location: .././index.php");
}

 

Du mangler en $rad = mysql_fetch_array($resultat), tror jeg - før du begynner å legge til sessionvariabler. Du forteller aldri hva $rad er.

Endret av CruellaDeVille
Lenke til kommentar

Utifra den koden der, så vet både jeg og Cruella at du manger en fetch_array.

 

Og du brydde deg fremdeles ikke om å sikre input fra bruker.

 

<?php

session_start(); // Må stå først. Kan ikke være så mye som et linjeskift før

?>

Tullball, det må stå før all output. Tviler på at sql_connect.php gir noe input, isåfall bør det ligge i en die();.

Endret av M4rTiN
Lenke til kommentar
CODE

<?php
include_once("sql_connect.php");
session_start();

$myusername=$_POST['brukernavn'];
$mypassword=$_POST['passord'];

$sql="SELECT level, brukernavn, passord, email FROM brukere WHERE brukernavn='$myusername' and passord='$mypassword'";
$resultat = mysql_query($sql);

$count = mysql_num_rows($resultat);

if($count==1){

$rad = mysql_fetch_array($resultat); //Prøv med å legge til denne

$_SESSION['innlogget'] = true;
$_SESSION['level'] = $rad['level'];
$_SESSION['brukernavn'] = $rad['brukernavn'];
$_SESSION['nick'] = $rad['nick'];
$_SESSION['email'] = $rad['email'];
header("Location: .././index.php");
}
else {
echo "<font size=6>ERROR:</font><br><b>Wrong Username or Password</b>";
}
?>
Lenke til kommentar

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å
×
×
  • Opprett ny...