webForumDet fria alternativet

Login, igen... =(

17 svar · 638 visningar · startad av inkfish

inkfishMedlem sedan sep. 200251 inlägg
#1

Hallå igen,

Jag håller på med ett inloggningsscript och vad jag än gör funkar inte, vad finns det som kan vara fel, två variabel skickas från en "form" till sidan login.php. MEN Variablerna skickas inte med från FORM:et till login.php, skriver jag print("$user") så ser jag inget, och jag skickas bara hela tiden tillbaka till index.php

login.php:

<?php
$link = mysql_connect("localhost","root","") or die ("Kan inte ansluta till databasen!");
			mysql_select_db("inkfishave", $link);

if (isset($user) && isset($pass)) {
	$query = "SELECT id, username FROM user WHERE username='$user' AND password=PASSWORD('$pass')";
	$res = mysql_query($query) or die ("Kan inte läsa från databasen!");
	$row = mysql_fetch_array($res);

	if (isset($row['id'])) {
   	session_start();
      $uid = $row['id'];
      $uname = $row['username'];
      session_register("uid", "uname");
		 
		Header("Location: admin.php");   
	}
}
else {
	Header("Location: index.php");
}
?>

Form:et:

<form action="login.php" method="post" target="_self">
		<strong>Username</strong><br>
		<input name="user" type="text"><br><br>
		<strong>Password</strong><br>
		<input name="pass" type="password"> __<input name="submit" type="submit" value="..."><br>
		</form>
inkfishMedlem sedan sep. 200251 inlägg
#2

Skriver jag method="GET" på form:et så kommer variablerna med i adressen, men variablerna $user och $pass fungerar ändå inte =/

guckenMedlem sedan sep. 2001287 inlägg
#3
<?php
$link = mysql_connect("localhost","root","") or die ("Kan inte ansluta till databasen!");
            mysql_select_db("inkfishave", $link);
$user = $_POST["user"];
$pass = $_POST["pass"];

if (isset($user) && isset($pass)) {
    $query = "SELECT id, username FROM user WHERE username='$user' AND password=PASSWORD('$pass')";
    $res = mysql_query($query) or die ("Kan inte läsa från databasen!");
    $row = mysql_fetch_array($res);

    if (isset($row['id'])) {
       session_start();
      $uid = $row['id'];
      $uname = $row['username'];
      session_register("uid", "uname");
         
        header("Location: admin.php");   
    }
}
else {
    header("Location: index.php");
}
?>

Jag har just börjat med php men det borde gå. kommer åt post med
$_POST och get med $_GET

inkfishMedlem sedan sep. 200251 inlägg
#4

Tack det fungerade men ändå inte. Nu kom mina gamla vanliga felmedelande tillbaka.

Warning: open(/tmp\sess_81b09fccb1f3c40bb9e985b2c995c468, O_RDWR) failed: No such file or directory (2) in d:\webdesign\webroot\inkfishave\login.php on line 15

Warning: Cannot add header information - headers already sent by (output started at d:\webdesign\webroot\inkfishave\login.php:15) in d:\webdesign\webroot\inkfishave\login.php on line 20

Warning: open(/tmp\sess_81b09fccb1f3c40bb9e985b2c995c468, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Det är ju något med sessions;en men det räcker inte med att jag bara skapar en "tmp" mapp i den mappen login.php ligger i. =( *suck*

guckenMedlem sedan sep. 2001287 inlägg
#5

Har aldrig haft det felet, men tyckte mig läsa att nån annan hadde löst det genom att skapa mappen. ser ut som att /tmp ska ligga i rooten.
kolla i config filen, php.ini

inkfishMedlem sedan sep. 200251 inlägg
#6

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
session.save_path = /tmp

Vad ska man ändra variablen till da? =)))

guckenMedlem sedan sep. 2001287 inlägg
#7

såhär ser min ut

; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
session.save_path = C:\PHP\sessiondata ; argument passed to

inkfishMedlem sedan sep. 200251 inlägg
#8

Nu får jag inga felmedelanden utan skickas till admin.php som ser ut såhär:

<? 
	session_start();
	if (!isset($uid) || !isset($uname)) {
		Header("Location: index.php");
	}
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>

Looking good.<br>
Welcome, <? print "$uname"; ?>

</body>
</html>

Och skickas då direkt tillbaka till index.php, Nu är det sessionerna som inte fungerar, jag har ändrar session.save_path till en katalog och där lägger sig en fil som värkar stämma, med ett ID och mitt användarnamn, men det värkar ändå inte fungera för när jag gör: if (!isset($uid) || !isset($uname)) { ..... Så värkar det ju som om det blir FALSE, för jag blir ju tillbaka skickad.

SimpaMedlem sedan aug. 20002 992 inlägg
#9

Vart har du din sida? Vilket webbhotel?

guckenMedlem sedan sep. 2001287 inlägg
#10

du måste spara session värdet i $uid & $uname
$uname = $SESSION["uname"]; eller vilken session det nu var.

inkfishMedlem sedan sep. 200251 inlägg
#11

jag håller på lokalt nu inget webbhotell.

gucken: räcker inte:
session_start();
$uid = $row['id'];
$uname = $row['username'];
session_register("uid", "uname");

guckenMedlem sedan sep. 2001287 inlägg
#12
<?php
$link = mysql_connect("localhost","root","") or die ("Kan inte ansluta till databasen!");
            mysql_select_db("inkfishave", $link);
$user = $_POST["user"];
$pass = $_POST["pass"];

if (isset($user) && isset($pass)) {
    $query = "SELECT id, username FROM user WHERE username='$user' AND password=PASSWORD('$pass')";
    $res = mysql_query($query) or die ("Kan inte läsa från databasen!");
    $row = mysql_fetch_array($res);

    if (isset($row['id'])) {
       session_start();
      $uid = $row['id'];
      $uname = $row['username'];
      session_register("uid", "uname");

// NYTT 2 RADER
$HTTP_SESSION_VARS["uid"] = $row['id'];
$HTTP_SESSION_VARS["username"] = $row['username'];
        header("Location: admin.php");   
    }
}
else {
    header("Location: index.php");
}
?>

Du hadde aldrig lagt värdet i session så det var förför du vart tillbaka skickad, prova lägg till de 2 nya raderna så skall det fungera.

cefalkMedlem sedan juni 2000278 inlägg
#13

Har du satt din register_globals till on i din php.ini fil?

register_globals = On

inkfishMedlem sedan sep. 200251 inlägg
#14

nej, det har jag inte =) ska jag göra deT?

inkfishMedlem sedan sep. 200251 inlägg
#15

AAAHHH!!
NU FUNKAR DET! ;))) *glad*
var register_globals som var tvunget att vara på :P
Glucken och CeFalk!!! Tackar så hemskt mycket för hjälpen!

cefalkMedlem sedan juni 2000278 inlägg
#16

Vasse go det var så lite så!!

jockelwMedlem sedan sep. 200254 inlägg
#17

Jag har lite problem jag har gjort nästan exakt som inkfich eller va han hette men de funka ändå inte. Den går liksom förbi do_login.php men man får inte stanna på start.php utan den skicka en till sidan som man komma till om man inte ha anget lösen osv.

Ja skickar med hur mina sidor ser ut.

login.php

<form method="POST" action="do_login.php"> 
<table border=0>
<tr>
	<td><b>Användarnamn</b></td>
</tr>
<tr>
	<td>&nbsp;<input type="text" name="user" class=text></td>
</tr>
<tr>
	<td><b>Lösenord</b></td>
</tr>
<tr>
	<td>&nbsp;<input type="password" size=15 name="pass" class=text></td>
</tr>
<tr>
	<td>&nbsp;<input type="submit" name="Logga in!"></td>
</tr>
</table>
</form>

do_login.php

<?PHP

//do_login.php

//	include ("mysql.inc.php"); //Startar MySQL
$link = mysql_connect("localhost","XXX","XXX") or die ("Kan inte ansluta till databasen!");
mysql_select_db("test");
$user = $_POST["user"];
$pass = $_POST["pass"];

if (isset($user) && isset($pass)) {
    $query = "SELECT id, username FROM user WHERE username='$user' AND password=PASSWORD('$pass')";
    $res = mysql_query($query) or die ("Kan inte läsa från databasen!");
    $row = mysql_fetch_array($res);

    if (isset($row['id'])) {
       session_start();
      $uid = $row['id'];
      $uname = $row['username'];
      session_register("uid", "uname");

// NYTT 2 RADER
$HTTP_SESSION_VARS["uid"] = $row['id'];
$HTTP_SESSION_VARS["username"] = $row['username'];
        header("Location: start.php");   
    }
}
else {
    echo("Något blev fel.");
}
?>

start.php

<? 
    session_start();
    if (!isset($uid) || !isset($uname)) {
        header("Location: ../centerindex.php");
    }
?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>

Looking good.<br>
Welcome, <? print "$uname"; ?>

</body>
</html>

Någon kanske kan hjälpa mig. :)

DarrenMedlem sedan dec. 2002789 inlägg
#18

Svarade på din fråga i den nya tråden du startade:

klicka här

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)