login vil ikke send mig til den rigtige side

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
teddybear
Begynder
Indlæg:15
Tilmeldt:12. feb 2012, 21:03
login vil ikke send mig til den rigtige side

Indlæg af teddybear » 12. mar 2012, 18:26

Hej :-)

jeg har et lille problem med når jeg logger på min hjemme side,
jeg skiver mit brugernavn og password og så skulle den sende mig til members.php
men den stopper ved login.php og viser en blank side??
men når jeg har skrevet brugernavn og password og den viser mig den blanke side og så jeg skriver i url http://www.domene.dk/members.php så er jeg inde på siden som logget ind??
den vil bare ikke sende mig vidre selvom at jeg er logget ind? det forstår jeg bare ikk? heh
håber at i kan hjælpe mig :(

-------------------------------------------------------------------------------------------------------------------
koden til login.php

<?php
session_start();

mysql_connect("host","brugernavn","password");
mysql_select_db("database");

$bruger = $_POST["brugernavn"];
$pass = $_POST["password"];
$error = "";

$userQuery = mysql_query("SELECT id,brugernavn,password FROM brugere WHERE brugernavn='$bruger'");

if(mysql_num_rows($userQuery) != 1)
{
$error .= "Brugeren eksisterer ikke.<br>";
}
else
{
$userArray = mysql_fetch_array($userQuery);

if($userArray["password"] != SHA1($pass))
{
$error .= "Password og brugernavn passer ikke sammen.<br>";
}
}
if($error != "")
{
echo $error . "<a href=\"javascript:history.back(-1);\">Tilbage</a>";
}
else
{
$_SESSION["logged_in"] = 1;
$_SESSION["user_id"] = $userArray["id"];
header("Location: members.php");
}
?>
-------------------------------------------------------------------------------------------------------------------

koden til members.php

<?php
session_start();

if($_SESSION["logged_in"] == 1)
{
$userQuery = mysql_query("SELECT * FROM brugere WHERE id='$_SESSION[user_id]'");
$userArray = mysql_fetch_array($userQuery);

echo "Hej " . $userArray["brugernavn"] . "!
<br>
og velkommen til denne beskyttede side.";
}
else
{
echo "Du skal være logget ind for at se denne side.";
}
?>
-------------------------------------------------------------------------------------------------------------------

Mvh Teddy

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: login vil ikke send mig til den rigtige side

Indlæg af PatricksGamerTag » 12. mar 2012, 18:53

Hej! :)

Vil tro du har en form et eller andet sted? Vil tror det er den der er galt med :)

teddybear
Begynder
Indlæg:15
Tilmeldt:12. feb 2012, 21:03

Re: login vil ikke send mig til den rigtige side

Indlæg af teddybear » 12. mar 2012, 19:03

det eneste form jeg har er:

------------------------------------------------------------------------------------------------------
kode til index.php
<form action="login.php" method="post">
brugernavn: <input type="text" name="brugernavn"> <br>
password: <input type="password" name="password"> <br>
<input type="submit" value="login">
</form>
------------------------------------------------------------------------------------------------------

er det denne du mener?

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: login vil ikke send mig til den rigtige side

Indlæg af PatricksGamerTag » 12. mar 2012, 19:10

Kode: Vælg alt

<form action="login.php" method="post">
brugernavn: <input type="text" name="brugernavn"> <br>
password: <input type="password" name="password"> <br>
<input type="submit" value="login">
</form>
Tag den og skift den ud med den her:

Kode: Vælg alt

<form action="members.php" method="post">
brugernavn: <input type="text" name="brugernavn"> <br>
password: <input type="password" name="password"> <br>
<input type="submit" value="login">
</form>
:)

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: login vil ikke send mig til den rigtige side

Indlæg af webudvikleren » 12. mar 2012, 19:23

PatricksGamerTag har ret hvis du vil ramme dit login script. Du bør, for god ordens skyld, flytte dit login-script til din login side i stedet for din menber.php og holde det adskilt på denne måde. Hvis jeg var dig ville jeg rydde" lidt op i din kode samtidig. Du har meget unødvendig kode som derfor kan reduceres en smule. Her er et eksempel:

Kode: Vælg alt

<?php
// login.php
mysql_connect("host","brugernavn","password");
mysql_select_db("database");


if(isset($_POST['login'])) {
  $bruger = $_POST["brugernavn"];
  $pass = sha1($_POST["password"]);

  $q= mysql_query("SELECT id FROM brugere WHERE brugernavn='$bruger' AND password = '$pass'") or die('Fejl i koden: '.mysql_error());

  if(mysql_num_rows($q) != 1) {
      $error = "Brugeren eksisterer ikke. Pr&oslash;v igen.";
  } else {
     session_start();
     $_SESSION["logged_in"] = 1;
     $_SESSION["user_id"] = $userArray["id"];
     header("Location: members.php");
      }
  }
}

?>
<html>
</html>
<body> 
<!-- Flyt din error til et sted på din loginside som du selv bestemmer -->
if($error) echo $error;
?>
<form action="login.php" method="post">
brugernavn: <input type="text" name="brugernavn"> <br>
password: <input type="password" name="password"> <br>
<input type="submit" value="login">
</form>
<?php
// og husk at lukke forbindelsen til din database igen :)
mysql_close();
Når du har styr på den basale del, vil jeg da også helt bestemt mene du er klar til Objekt Orienteret PHP (OOP).

God fornøjelse. :)

teddybear
Begynder
Indlæg:15
Tilmeldt:12. feb 2012, 21:03

Re: login vil ikke send mig til den rigtige side

Indlæg af teddybear » 13. mar 2012, 03:35

1000 tak skal i have for hjælpen.
:D
det virker perfekt :D

Besvar