Avatar billede tanzaweb Nybegynder
22. april 2005 - 14:23 Der er 7 kommentarer og
1 løsning

problem med login

hej jeg har et problem med et login hvor jeg kan logge ind lige meget om jeg skriver noget eller ikke.

har brugt den på en anden side uden problemer. er der nogen der kan se fra koden om der skulle være noget problem?


//Tilføj slashes til brugernavn
if (isset($_POST['user'])) {
$_POST['user'] = addslashes($_POST['user']);


$result_ses = mysql_query("SELECT count(user_id) FROM user WHERE password='$_POST[pass]' AND username='$_POST[user]'") or die("Kunne ikke query bruger databasen.");
$num = mysql_result($result_ses, 0);
}
if(!isset($num)) {

//Hvis querien ikke retunered noget
//så vis login formularen
include_once ("head.php");
include_once ("top_index.php");
  echo "<h3>Login</h3>
<form action='$_SERVER[PHP_SELF]' method='post'>
Username: <input type='text' name='user'><br />
Password: <input type='password' name='pass'><br />
<br />
<input type='submit' value='Login'>
</form>";

}
else{

//Start  login session
session_start();

//Vi har allerede tilføjet slashes og ordnet passwordet
$_SESSION['user'] = $_POST['user'];
$_SESSION['pass'] = $_POST['pass'];

//alt under dene linje vil blive vist
//til brugeren som er blevet autoriseret
//her kan bruges både tekst og redirect.

include_once ("../cfig.php");
$result_user = mysql_query("SELECT * FROM user WHERE username='$_POST[user]'") or die("Kunne ikke query bruger databasen.");
$num_2 = mysql_fetch_array($result_user);

include_once ("head.php");
include_once ("top_index.php");
echo "<h2>Velkommen du er nu logget ind.</h2>";
include_once ("ymlinks.php");

echo "<br />Gå til din Administrations side for at styre dine muligheder<br />
        <a href='index.php?id=" . $num_2['user_id'] . "'>Styr din side</a>";


}

her er tabellen

user:

user_id  int(10)  UNSIGNED    auto_increment 
username  varchar(100)
password  varchar(13)
first_name  varchar(20)

så er der lidt mere plads til adresse osv. i tabellen
Avatar billede intenz Novice
22. april 2005 - 14:43 #1
Er du sikker på $num ikke har en værdi?

prøv evt:
if(!isset($num) && $num != "") {

Bare et bud
Avatar billede intenz Novice
22. april 2005 - 14:44 #2
Eller prøv at
print "$num";

og se om den får tildelt en værdi
Avatar billede tanzaweb Nybegynder
22. april 2005 - 14:56 #3
den indeholder 0, men den skulle jo egentlig være tom ikke, hvorfor gør den så lige det? hmm
Avatar billede tanzaweb Nybegynder
22. april 2005 - 15:01 #4
denne laver fejl if(!isset($num) && $num != "") {
og siger header already sent, og at den mangler forskellige variabler
Avatar billede intenz Novice
22. april 2005 - 15:04 #5
Mon ikke den fejl ligger i:
include_once ("head.php");
include_once ("top_index.php");

Husk der ikke må laves noget output til browseren inden headers bliver sendt. Det gælder også hvis der f.eks. ligger en tom linje over <?
Avatar billede intenz Novice
22. april 2005 - 15:06 #6
Hov

if(!isset($num) && $num != "") {
er også en fejl.

Der skal stå:
if(!isset($num) || $num == "0") {
Avatar billede intenz Novice
22. april 2005 - 15:08 #7
Hvis den altid vil vise 0 hvis de ikke kan logge ind kan du selvfølgelig også fjerne !isset($num)
Avatar billede tanzaweb Nybegynder
22. april 2005 - 15:14 #8
takker for hjælpen tror egentlig jeg har haft problemmet med noget ligende på en anden måde så dog ikke fejlen her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester