Vinnaren i pepparkakshustävlingen!
  • 2
  • 3
2008-09-03, 11:46
  #25
Medlem
Traktes avatar
Och vad händer när du försöker logga in med ett användarnamn och lösenord som finns i den databasen?
Citera
2008-09-03, 11:50
  #26
Medlem
det står att jag har angivit fel användarnamn samt lösenord. precis som om man slår in fel. uppenbarligen finns det ingen giltig koppling?
Citera
2008-09-03, 12:02
  #27
Medlem
Traktes avatar
Eftersom tabellen du kollar mot heter username, varför kör du då $myusername?
Samma sak med password, kanske kan ha med detta att göra, att den kollar efter ett fält i tabellen som heter mypassword och myusername men dessa inte finns?

Testa byta ut mot username och password istället.
Citera
2008-09-03, 12:09
  #28
Medlem
Kod:
<div id="login2">
    
<
form method="post" action="pages/checklogin.php" name="form1">    
<
table>
        <
tr>
    <
td><label for="username">Användarnamn:</label><td><input type="text" name="username" id="username" style="width:110px;" /></td>
    </
tr>
    <
tr>
        <
td><label for="password">Lösenord:</label><td><input type="password" name="password" id="password" style="width:60px;" />
    <
input type="submit" name="login" value="Login" id="submit" /></td>
</
tr><tr><td></td><td><p><a href="pages/registration.php">bli medlem nu</a></p></td>
    </
table>
    </
form>

</
div
Kod:
<?php
ini_set
('display_errors'1);
ini_set('error_reporting'E_ALL E_NOTICE);

mysql_connect('localhost','ilandsnytt_se','***') or die(sql_error());
mysql_select_db('ilandsnytt_se') or die(sql_error());

$username $_POST['username'];
$password $_POST['password'];

$sql "SELECT * FROM `users` WHERE username='$username' and password='$password'";
$result mysql_query($sql) or die(mysql_error());

$count mysql_num_rows($result);

if(
$count==1) {
   
session_register ("username");
   
session_register ("password");
   
header("location:index.php");
   }
   else {
     echo 
"Fel användarnamn eller lösenord";
     }
?>


såhär då eller?

edit: fungerar ej
Citera
2008-09-03, 16:33
  #29
Medlem
Så här har du skrivit:
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];

$sql = "SELECT * FROM `users` WHERE username='$myusername' and password='$mypassword'";

------

Borde man inte skriva raden så här?
$sql = "SELECT * FROM users WHERE username='".$myusername."' and password='".$mypassword."'";

Eller går det numera att konkatenera strängar på det sätt du gjort? Jag vet inte, men det verkar inte rätt.
__________________
Senast redigerad av perotta8 2008-09-03 kl. 16:35.
Citera
2008-09-03, 21:55
  #30
Moderator
Protons avatar
Läste lite i php-manualen om din session_register. Den fungerar bara om register_globals är påslaget, något som inte verkar vara fallet på maskinen där du kör dina script.

Istället för att förlita dej på denna funktion kan du explicit ange session_start() längst upp innan någoon som helst utskrift(inte ens mellanslag) och explicit ange
Kod:
$_SESSION['username'] = $username;
Funkar det bättre då?
Citera
2008-09-04, 12:44
  #31
Medlem
Hej igen, tack för svaren! Beslutade mig om att koda om allting, mha samma guide på youtube. Har fått allting att fungera utmärkt (otroligt nog) dessvärre har jag ett nytt problem med sessionen..

Proton: jag slog just på global på min webserver(one.com)


iallafall så har jag nu detta problem:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php:7) in /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/login.php on line 3

mitt login.php-skript ser ut såhär:
Kod:
<?php
echo "<title>inloggning wowo</title>";
session_start();
include 
"global.php";

if(
$_SESSION['uid']){
     echo 
"Du är redan inloggad!  <a href=logout.php>Logga ut!</a>";
} else {

if(!
$_POST['submit']){
     echo 
"<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
     echo 
"<form method=\"post\" action=\"login.php\">\n";
     echo 
"<tr><td>Användarnamn</td></tr>\n";
         echo 
"<tr><td><input type=\"text\" name=\"username\"></td></tr>\n";
     echo 
"<tr><td>Lösenord</td></tr>\n";
         echo 
"<tr><td><input type=\"password\" name=\"password\"></td></tr>\n";
     echo 
"<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\"></td></tr>\n";
     echo 
"</form></table>\n";
    }else{
        
$user mss($_POST['username']);
        
$pass $_POST['password'];
        
           if(
$user && $pass){
              
$sql "SELECT id FROM `users` WHERE `username`='".$user."'";
              
$res mysql_query($sql) or die(mysql_error());
              if(
mysql_num_rows($res) > 0){
                  
$sql2 "SELECT id FROM `users` WHERE `username`='".$user."' AND `password`='".md5($pass)."'";
                  
$res2 mysql_query($sql2) or die(mysql_error());
                  if(
mysql_num_rows($res2) > 0){
                    
$row mysql_fetch_assoc($res2);
                    
$_SESSION['uid'] = $row['id'];    

                        echo 
"du har lyckats logga in, " $user "<br><br><a href=index.php>Fortsätt till index!</a>";                    
                  }else {
                     echo 
"Användarnamet och/eller lösenordet är inkorrekt.\n";
                  }
              }else {
                  echo 
"Användarnamnet du har skrivit existerar inte\n";
              }
            }else {
                echo 
"Du måste skriva i både användarnamet och lösenordet\n";
            }
    }
    
    
  }

?>


mitt global-skript ser ut såhär:
Kod:
<?php

$con 
mysql_connect("localhost","ilandsnytt_se","*****") or die (mysql_error());
$db mysql_select_db("ilandsnytt_se",$con);

function 
mss($value){
    return 
mysql_real_escape_string(trim(strip_tags($value)));
}


?>


har googlat en del och hittar inget som faktiskt fungerar.. Aningen irriterande.

Registreringen fungerar felfritt nu också + att det faktiskt GÅR att logga in, men dendär warningen är ivägen ändå..

MVH
Citera
2008-09-04, 12:54
  #32
Moderator
Protons avatar
Som jag sa tidigare så kräver session_start() att INGA utskrifter sker innan man anropar den funktionen och vad jag kan se spottar du ut rätt mycket innan du anropar den. Prova således att flytta upp den längst upp så borde det funka bättre.

för kodens läsbarhets skull rekommenderar jag dig även att lägga html-utskrift utanför php, så slipper du dessutom tänka på om du satt dinha fnuttar rätt och sånt.
Kod:
<?php
session_start();
$divid="test";
$content="hej";
?>
<div id="<?php echo $divid;?>">
<p><?php echo $content";?></p>
</div>
<?php
//lite mer php
?>

Frågar du mej är detta betydlig mer läsbart än de escapeade fnuttarna å allt annat jox som krävs annars.

kanske funkar med short_tags med

Kod:
<?php
session_start();
$divid="test";
$content="hej";
?>
<div id="<?=$divid ?>">
<p><?= $content ?></p>
</div>
<?php
//lite mer php
?>
__________________
Senast redigerad av Proton 2008-09-04 kl. 13:00.
Citera
2008-09-04, 13:12
  #33
Medlem
tack! angående html-tilläggen så får jag fixa det sen! Vill så gärna att funktionen ska fungera 100% först.
Nu la några grejer av också.

Nu har jag skrivit det såhär:

index.php
Kod:
<?php session_start();?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
    <link rel="shortcut icon" href="favicon.ico" />
    <title>iLandsnytt.se | av användare, för användare</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="reset.css" rel="stylesheet" />    
<link rel="stylesheet" href="style.css" type="text/css" />
    
</head>
<body>

<?php include 'pages/meny.php'?>


<div id="contentbox">
    <div id="main">

    <h1>Hem - Startsidan</h1>
    <p>
</a>        

Information / Funktioner kommer snart..
<br /><br /><br />
    </p>

</div>

         
        
         <div id="loggainruta">
             <h2>Välkommen !</h2>
                 <h3>För att ta del av alla funktioner samt dela med dig av något, 
                 <a href="pages/registration.php">bli medlem nu</a> eller logga in:</h3>
                    <div id="loginruta2">
               
                     
<?php 
include 'login.php' ?>
                    </div>
                    
                   </div>
        
</div>

  
    
</body>
</html>

login.php:
Kod:
<?php
include 'global.php';


echo 
"<title>inloggning wowo</title>";

if(
$_SESSION['uid']){
     echo 
"Du är redan inloggad!  <a href=logout.php>Logga ut!</a> eller återgå till <a href=index.php>index</a>";
} else {

if(!
$_POST['submit']){
     echo 
"<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
     echo 
"<form method=\"post\" action=\"login.php\">\n";
     echo 
"<tr><td>Användarnamn</td></tr>\n";
         echo 
"<tr><td><input type=\"text\" name=\"username\"></td></tr>\n";
     echo 
"<tr><td>Lösenord</td></tr>\n";
         echo 
"<tr><td><input type=\"password\" name=\"password\"></td></tr>\n";
     echo 
"<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\"></td></tr>\n";
     echo 
"</form></table>\n";
    }else{
        
$user mss($_POST['username']);
        
$pass $_POST['password'];
        
           if(
$user && $pass){
              
$sql "SELECT id FROM `users` WHERE `username`='".$user."'";
              
$res mysql_query($sql) or die(mysql_error());
              if(
mysql_num_rows($res) > 0){
                  
$sql2 "SELECT id FROM `users` WHERE `username`='".$user."' AND `password`='".md5($pass)."'";
                  
$res2 mysql_query($sql2) or die(mysql_error());
                  if(
mysql_num_rows($res2) > 0){
                    
$row mysql_fetch_assoc($res2);
                    
$_SESSION['uid'] = $row['id'];    

                        echo 
"du har lyckats logga in, " $user "<br><br><a href=index.php>Fortsätt till index!</a>";                    
                  }else {
                     echo 
"Användarnamet och/eller lösenordet är inkorrekt.\n";
                  }
              }else {
                  echo 
"Användarnamnet du har skrivit existerar inte\n";
              }
            }else {
                echo 
"Du måste skriva i både användarnamet och lösenordet\n";
            }
    }
    
    
  }

?>


det jag får upp nu är:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php:1) in /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php:1) in /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php on line 1


Samt att inloggningssessionen inte verkas ha någon verkan.... =(
Citera
2008-09-04, 13:14
  #34
Medlem
RiddareRalfs avatar
Citat:
Ursprungligen postat av steklof
tack! angående html-tilläggen så får jag fixa det sen! Vill så gärna att funktionen ska fungera 100% först.
Nu la några grejer av också.

Nu har jag skrivit det såhär:

index.php
Kod:
<?php session_start();?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
    <link rel="shortcut icon" href="favicon.ico" />
    <title>iLandsnytt.se | av användare, för användare</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="reset.css" rel="stylesheet" />    
<link rel="stylesheet" href="style.css" type="text/css" />
    
</head>
<body>

<?php include 'pages/meny.php'?>


<div id="contentbox">
    <div id="main">

    <h1>Hem - Startsidan</h1>
    <p>
</a>        

Information / Funktioner kommer snart..
<br /><br /><br />
    </p>

</div>

         
        
         <div id="loggainruta">
             <h2>Välkommen !</h2>
                 <h3>För att ta del av alla funktioner samt dela med dig av något, 
                 <a href="pages/registration.php">bli medlem nu</a> eller logga in:</h3>
                    <div id="loginruta2">
               
                     
<?php 
include 'login.php' ?>
                    </div>
                    
                   </div>
        
</div>

  
    
</body>
</html>

login.php:
Kod:
<?php
include 'global.php';


echo 
"<title>inloggning wowo</title>";

if(
$_SESSION['uid']){
     echo 
"Du är redan inloggad!  <a href=logout.php>Logga ut!</a> eller återgå till <a href=index.php>index</a>";
} else {

if(!
$_POST['submit']){
     echo 
"<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
     echo 
"<form method=\"post\" action=\"login.php\">\n";
     echo 
"<tr><td>Användarnamn</td></tr>\n";
         echo 
"<tr><td><input type=\"text\" name=\"username\"></td></tr>\n";
     echo 
"<tr><td>Lösenord</td></tr>\n";
         echo 
"<tr><td><input type=\"password\" name=\"password\"></td></tr>\n";
     echo 
"<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\"></td></tr>\n";
     echo 
"</form></table>\n";
    }else{
        
$user mss($_POST['username']);
        
$pass $_POST['password'];
        
           if(
$user && $pass){
              
$sql "SELECT id FROM `users` WHERE `username`='".$user."'";
              
$res mysql_query($sql) or die(mysql_error());
              if(
mysql_num_rows($res) > 0){
                  
$sql2 "SELECT id FROM `users` WHERE `username`='".$user."' AND `password`='".md5($pass)."'";
                  
$res2 mysql_query($sql2) or die(mysql_error());
                  if(
mysql_num_rows($res2) > 0){
                    
$row mysql_fetch_assoc($res2);
                    
$_SESSION['uid'] = $row['id'];    

                        echo 
"du har lyckats logga in, " $user "<br><br><a href=index.php>Fortsätt till index!</a>";                    
                  }else {
                     echo 
"Användarnamet och/eller lösenordet är inkorrekt.\n";
                  }
              }else {
                  echo 
"Användarnamnet du har skrivit existerar inte\n";
              }
            }else {
                echo 
"Du måste skriva i både användarnamet och lösenordet\n";
            }
    }
    
    
  }

?>


det jag får upp nu är:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php:1) in /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php:1) in /customers/ilandsnytt.se/ilandsnytt.se/httpd.www/index.php on line 1


Samt att inloggningssessionen inte verkas ha någon verkan.... =(
Du kan inte skicka session om du redan skrivit något på sidan.
Citera
2008-09-04, 13:15
  #35
Medlem
skrivit något vadå på sidan?

Har ju lagt session_start() i början !!

Tog bort sessionen_start() i index.php, då börja sidan att fungera. antagligen det ni försökte förklara för mig.

Nu fungerar därimot inte sessionen i inloggningsskriptet : /
__________________
Senast redigerad av steklof 2008-09-04 kl. 14:04.
Citera
  • 2
  • 3

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback