W Webslave Medlem sedan maj 2002 647 inlägg Trådstart 12 juli 2002 13:03 #1 Hej... detta ämne måste ha tjatats ihjäl här på wF antagligen men jag hittade ingen tråd som hjälpte mig så jag gör en ny.
Jag försöker att fixa en login function på min sida och spara informationen i en session. Jag ska även "validera" användarnamn och lösenord från en mysql-tabell som heter "users".
Jag kör allt på en och samma sida (dvs index.php). Jag kommer inte någonstans så jag undrar om någon kan hjälpa till.
MvH
/Webslave
A Andiee Medlem sedan mars 2000 167 inlägg Vad har du kommit fram till?
W Webslave Medlem sedan maj 2002 647 inlägg Lova att inte skratta nu... jag är färsk med php... programmerat sedan mars/april ungefär
Inddex sidan börjar så här:
<?
session_start();
?>
Och en massa html grejs sedan detta:
<?
if(!empty($username)){
?>
<span class="text1">Du är inloggad som:<br>
<b><?=$username?></b>
</span><br>
<a href="?page=logout" class="link1">Logga ut</a>
<?
}else{
?>
<span class="bold1">Du är inte inloggad!</span><br>
<a href="?page=login" class="link1">Logga in</a>
<?}
?>
login sidan (index.php?page=login) ser ut så här:
<?
global $username,$password;
if(isset($username) and isset($password)){
CheckLogin();
}else{
LoggaIn();
}
function CheckLogin(){
global $username,$password;
$connect = mysql_connect("localhost", "","")
or die ("Kunde inte ansluta");
$databas = mysql_select_db("mindatabas");
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = mysql_query("$sql");
if(!($rad=mysql_fetch_array($result))){
echo "<span class='rubrik1'>Felaktiga uppgifter!</span><br>";
echo "<a href='?page=login' class='link1'>Försök igen</a>";
session_unset();
session_destroy();
mysql_close($connect);
}else{
global $username,$password;
$connect = mysql_connect("localhost", "","")
or die ("Kunde inte ansluta");
$databas = mysql_select_db("mindatabas");
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = mysql_query("$sql");
$rad = mysql_fetch_array($result);
session_register("$username");
session_register("$password");
?>
<img src="images/main/loggedin1.gif" width="266" height="49"> <br>
<table width="425" border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="3" align="left" valign="top" width="35"><img src="images/main/logosmall01.gif" width="33" height="31"></td>
<td height="20" valign="top" width="150"><span class="text1"> Välkommen <b><?=$rad['username']?></b></span></td>
</tr>
<tr>
<td height="20" valign="top" width="150"> <a href="?page=minasidor" class="link1">Mina sidor</a></td>
</tr>
</table>
<?
}
mysql_close($connect);
}
function LoggaIn(){
?>
<img src="images/main/login1.gif" width="266" height="49"> <br>
<form action="?page=login" method="post">
<table width="425" border="0" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="4" align="left" valign="top" width="35"><img src="images/main/logosmall01.gif" width="33" height="31"></td>
<td height="20" valign="top" width="150" align="right"><span class="bold1"> Användarnamn: </span>
</td>
<td width="240">
<input type="text" name="username" class="form1"></td></tr>
<tr>
<td height="20" valign="top" width="150" align="right"><span class="bold1"> Lösenord: </span></td>
<td width="240">
<input type="password" name="password" class="form1"></td>
</tr>
<tr>
<td height="20" valign="bottom" width="150"> </td>
<td height="20" valign="bottom" width="240">
<input type="image" value="submit" name="validate" src="images/main/buttonskicka1.gif">
</td>
</tr>
</table>
</form>
<?
}
?>
*pinsamt*
Frågan borde nog vara... vad är INTE fel med denna kod... lol
L LAMP Medlem sedan mars 2002 777 inlägg Har inte med felet att göra, men sätt dina sessions till "register" med funktionen session_register(). Har läst att man alltid bör sätta den som "register". Kommer dock ej ihåg anledningen.
session_start();
$name = "LAMP";
session_register("name");
Läs mer här:
http://www.php.net/manual/en/function.session-register.php
T ThACRoW Medlem sedan dec. 2001 314 inlägg Det har han ju gjort, men det ska se ut så här istället:
session_register("username");
session_register("password");
Dvs. utan dollar-tecknet framför.
L LAMP Medlem sedan mars 2002 777 inlägg Ooops, missade de 2 raderna
W Webslave Medlem sedan maj 2002 647 inlägg Kan ni se något annat fel? I t.ex koden där formulärdatan ska hanteras för när jag ska "logga in" så anropas inte funktionen CheckLogin() när jag "submittar"... vet icke varför ???