Avatar billede Juniorplayer57 Nybegynder
22. september 2014 - 17:32 Der er 6 kommentarer

Hjælp med login script - Søger gerne et hurtigt svar! :)

Hej Eksperten! ;)

Jeg står i den situation at jeg har lavet en hjemmeside lokalt som skal bruges som produkt til en senere fremlæggelse.
Hjemmesiden inden holder både login, adressekartotek, besked center og arrangementer.
Mit problem ligger så i at mit login script (Siden, tilslut.php) pludselig er stoppet med at virke 100%. Det i virker i den forstand at jeg bliver logget ind på index.php, med brugernavn "root" og intet kodeord, men den bliver ved med at melde forkert brugernavn/password når den skal godkendes på siden check.php, hvorefter den så skal sende en videre til siden, forside.php

Hvis man så ellers prøver at hoppe fra check.php når den har meldt fejl og videre til forside.php er der ingen problemer, men logger man så ellers ud igen på en af de andre sider, så logger den en ud så de andre sider ikke kan tilgås.

Nogen der kan hjælpe mig med hvad der skulle skabe problemet? :)
(Koderne til de forskellige sider er listet nedenfor.)

index.php

<?php
session_start();
$_SESSION['loggedin'] = true;
?>
<html>
<style type="text/css">@import url(css.css);</style>
<script>
function msg()
{
alert("Kontakt din administrator på Nicolaj-Aaroe@live.dk!");
}
</script>
<center><br><br><br><br>
<title>Familielogin:: LOGIN</title>
<font size="200" color="navy"><b>Familieside</b></font><br>
<i>Velkommen til familielogin<br>
Log venligst ind!</i>

<form action="check.php" method="post" name="login">
B: <input type="text" value="username" name="username"/><br>
K: <input type="password" value="password" name="password"/><br>
<input type="submit" name="login" value="Log ind"/></form>
<input type="button" name="glemt" value="Glemt Login" onclick="msg()"/>
</form>
</div>
</html>



Check.php

<?php
$_SESSION['errors']=0;
$_SESSION['loggedin'] = true;
include("config.php");
?>
<?php

if(isset($_POST['login']));
{
$username=$_POST['username'];
$password=$_POST['password'];

$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1)    {
$_SESSION['username'] = $_POST['username'];
header('Location: forside.php');
} else {
echo "<font color='red'><b><center><br><br><br><br>Forkert brugernavn eller password</b></font>";
} }
?>
<html>
<center><br><br><br><br>
<style type="text/css">@import url(css.css);</style>
<class id="body">
<script>
function goBack()
  {
  window.history.go(-1)
  }
</script>

<body>
<br><br><button onclick="goBack()">Gå tilbage og prøv igen</button>
</body>
</html>


Forside

<?php
session_start();
$_SESSION['loggedin'] = true;
if(isset($_SESSION['username'])) {
include('tilslut.php');
?>
<style type="text/css">@import url(css.css);</style>
<meta http-equiv="Content-Type" content="text/html;charset="UTF-8">
<table style="width:100%">
  <tr>
    <td width="50%"><font size="5" color="navy"><b><center>Familie Arrangementer<br><br></b></font></td>
    <td width="50%" align=right><font size="5" color="navy"><center><b>Meddelsescenter<br><br></b></font></td>
  </tr>
  <tr>
    <td><?php

$famarr = mysql_query("SELECT * FROM famarr ORDER by id DESC");

echo "<table width='100%' border='1' align='left' cellpadding='0' cellspacing='1' bgcolor='#FFFFFF'>
<tr>
<th>Navn</th>
<th>Sted</th>
<th>Dato</th>
</tr>";

while($row = mysql_fetch_array($famarr)) {
echo "<tr>";
  echo "<td>" . $row['navn'] . "</td>";
    echo "<td>" . $row['sted'] . "</td>";
      echo "<td>" . $row['dato'] . "</td>";
  echo "</tr>";
}

echo "</table>";

//mysql_close($con);
?></td>
    <td><?php
$result = mysql_query("SELECT * FROM beskeder ORDER by dato DESC");
while($row = mysql_fetch_array($result)) {
echo "<table width='100%' border='0' align='right' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
<tr>
<td><table width='100%' border='0' cellpadding='3' cellspacing='1' bgcolor='#FFFFFF'>
<tr>
<td>Dato</td>
<td>:</td>
<td>" . $row['dato'] . "</td>
</tr>
<tr>
<td width='50'>Navn</td>
<td width='14'>:</td>
<td width='357'>" . $row['navn'] . "</td>
</tr>
<td valign='top'>Besked</td>
<td valign='top'>:</td>
<td style='word-break:break-all;'>" . $row['besked'] . "</td>
</tr>
</table><br></td>
</tr>
</table>";

  echo "";
}

echo "";

?></td>
    <td></td>
  </tr>
<tr>
    <td><center><button onclick=window.location.href='famarr/fam.php'>Tilfoej arrangement</button></td>
    <td><center><button onclick=window.location.href='add/add.php'>Adressekarkotek</button> <button onclick=window.location.href='forum.php'>Skriv en besked</button> <button onclick=window.location.href='logud.php'>Log ud</button></table></td>
</tr>
</table>
<?php
} else {
?>
<center><h2><font color="navy"><br><br><br><br>Du er ikke logget ind, UPS!</font></h2></center>
<?php
}
?>


Tilslut.php

<?php
$_SESSION['userName'] = '';

$host = "localhost";
$user = "root";
$pass = "";
$db = "famarr";

mysql_connect("$host", "$user", "$pass")or die("Kan ikke forbinde til databasen. :(");
mysql_select_db("$db")or die("Kan ikke finde databasen. :(");

error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
Avatar billede olsensweb.dk Ekspert
22. september 2014 - 17:53 #1
prøv at lave en session_start(); i din Check.php,og Tilslut.php du skal starte din session i alle de filer der anvender session, men kun 1 gang pr side, derfor pakkes det ind i en test
og session_start() skal selvføgelig ligges før der sendes noget til skærmen

Check.php
<?php
if (!isset($_SESSION)) {
  session_start(); 
}

$_SESSION['errors']=0;
$_SESSION['loggedin'] = true;
include("config.php");
?>
....
Avatar billede Juniorplayer57 Nybegynder
22. september 2014 - 18:10 #2
Har indsat den kode du skrev i check.php og en session start i tilslut.php

Den melder så ellers denne fejl:

Notice: A session had already been started - ignoring session_start() in C:\wamp\www\config.php on line 2
Avatar billede olsensweb.dk Ekspert
22. september 2014 - 18:35 #3
byt om på rækkefølgen af include config og session[xxxx]
Check.php
<?php
include_once("config.php");
$_SESSION['errors']=0;
$_SESSION['loggedin'] = true;
...


i din config.php pakker du din session_start ind i en test
så toppen af config.php er:
if (!isset($_SESSION)) {
  session_start();
}


nb: du bør pakke alle dine session_start(); ind i en test


et andet råd brug altid _once når du includere/require filer

include: smider en advarsel hvis filen ikke findes, og først fejl når noget fra filen skal bruges.

require: smider en fejl og stopper lige på stedet hvis filen mangler

_once: tester om filen er includeret, og er den det bliver den ikke includeret igen, dermed får du ikke overskrevet evt functioner / variable

http://php.net/manual/en/function.require.php
http://php.net/manual/en/function.include.php
http://php.net/manual/en/function.require-once.php
http://php.net/manual/en/function.include-once.php
Avatar billede Juniorplayer57 Nybegynder
22. september 2014 - 19:23 #4
Har nu gjort som du ellers har beskrevet men står stadigvæk med samme fejl? :)
Avatar billede claes57 Ekspert
22. september 2014 - 20:19 #5
hvorfor ikke bare prøve med brugernavn og password - den kan åbenbart ikke lide et tomt password.
Avatar billede Juniorplayer57 Nybegynder
22. september 2014 - 21:09 #6
Har nu smidt et password på, men det var ikke til nogen hjælp
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

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