Avatar billede michaeltryl Seniormester
25. juni 2006 - 18:12 Der er 9 kommentarer og
1 løsning

kan script holde op med at virke

jeg har denne side
http://hemmelig.magiske-michael.dk/login/login.php

men er der en som kan komme med et bud på hvad der er galt i menuen i toppen.
Avatar billede ztorezupermand Nybegynder
25. juni 2006 - 18:20 #1
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/www/hemmelig.magiske-michael.dk/login/login.php:13) in /home/www/hemmelig.magiske-michael.dk/login/top.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/hemmelig.magiske-michael.dk/login/login.php:13) in /home/www/hemmelig.magiske-michael.dk/login/top.php on line 2
Avatar billede r.hegaard Nybegynder
25. juni 2006 - 18:23 #2
Det ser ud til, at du har ændret noget, så der bliver sendt noget HTML inden du sender dine headers. Hvordan ser din kode ud?
Avatar billede michaeltryl Seniormester
25. juni 2006 - 18:58 #3
min kode er herunder, men skal jeg ikke have <head> delen før det andet, ellers bliver siden ikke valideret på w3

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<title></title>
<meta name="description" content="">
<META name="keywords" content="">
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META NAME="Revisit-after" CONTENT="30">
<META name="Robots" content="all">
<meta http-equiv="pragma" content="no-cache">
<link rel="stylesheet" href="http://www.magiske-michael.dk/styles/generelt-style.css" type="text/css">
<link rel="stylesheet" href="http://www.magiske-michael.dk/styles/link-style.css" type="text/css">
<link rel="stylesheet" href="http://www.magiske-michael.dk/styles/tabel-style.css" type="text/css">
<link rel="stylesheet" href="http://www.magiske-michael.dk/styles/tekst-style.css" type="text/css">
</head>

<body>

<table class="hoved">
    <tr>
        <td>

<table class="top">
    <tr>
        <td>
<?php
ob_start();
//include the header.php file
require("top.php");
?>
</td>
    </tr>
</table>

        <table class="menu">
            <tr>
                <td>
        <a href="http://validator.w3.org/check?uri=referer"><img
        src="http://www.w3.org/Icons/valid-html401"
        alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>

                </td>
            </tr>
</table>
        <table class="indhold">
            <tr>
                <td>
    <?               
echo "<br><br><br><br>";
//Write the login form out
echo "<h2>Her kan du logge ind på de hemmelige sider.<br>Er du ikke medlem kan du blive det ved at klikke på tilmeld øverst på siden.</h2><br>
<form method='post' action='login.php?action=check'>
<table><tr><td>
<h3>Brugernavn</h3></td>
<td><h3><input type=text name=Uname></h3></td>
</tr><tr>
<td><h3>Password:</h3></td><td><h3><input type=password name=Pword></h3></td>
</tr></table>
<input type=submit value=Login><h3><br>
<a href=forgotpassword.php>Glemt password</a></h3>
</form><br>
<a href=http://www.magiske-michael.dk>Tilbage til magiske-michael.dk</ a>";
//check the input
if($_GET['action'] == 'check')
{
//find the user
$result = mysql_query("SELECT * FROM loginphp WHERE Uname='{$_POST['Uname']}'") or die(mysql_error());
$row = mysql_fetch_array( $result ); //set $row to result
  if($row['Uname'] == "")
  {
      echo error();
  }
  else
  {
      //$enc = md5($_POST['Pword']);
      $enc = $_POST['Pword'];
      if($row['Pword'] == $enc)
      {
          $_SESSION['Uname'] = $_POST['Uname'];
          $_SESSION['lp'] = 'pl';
      header("Location: main.php");
          exit;
      }
      else
      {
        echo error();
      }
  }
}
if($_GET['action'] == 'registered')
{
echo "<b>Du er nu tilmeldt</b>";
}
function error()
{
echo "<b>Brugernavn/passwor er ikke korekt</b>";
}
?>                </td>
            </tr>
        </table>
        <table class="menu">
            <tr>
                <td>
                </td>
            </tr>
        </table>
</td>
    </tr>
</table>


</body>

</html>
Avatar billede erikjacobsen Ekspert
25. juni 2006 - 19:20 #4
En side som reelt kun indeholder en
    header("Location: main.php");
    exit;
har ingen bruge for HTML, og skal som sådan jo ikke valideres. Flyt derfor tjekket for om der skal sendes videre til en anden side helt op i toppen, før din DOCTYPE.
Avatar billede michaeltryl Seniormester
25. juni 2006 - 19:33 #5
okay  det prøver jeg, men denne

<?php
ob_start();
//include the header.php file
require("top.php");
?>

sørger for at siden er beskyttet men er samtidig top menuen, så flytter jeg den op før doctype kommer menuen til at stå før doctypen.
Avatar billede erikjacobsen Ekspert
25. juni 2006 - 19:45 #6
Ja, det er jo så ikke den løsning, som jeg vil anbefale ;)
Avatar billede michaeltryl Seniormester
25. juni 2006 - 19:54 #7
nej men det er et script som jeg har downloadet, da jeg ikke selv kender så meget til det, så det er lidt svært at lave om på det tjek.
Fejlen forsvinder også hvis jeg flytter det op før doctypen, så måske jeg bare skulle indsætte doctypen samt <head> delen i filen top.php og så have det på den måde, så kommer alle mine sider som er beskyttet godt nok til at have samme titel samt søgeord, men det må jeg så leve med, med mindre du har en bedre løsning.
Avatar billede erikjacobsen Ekspert
25. juni 2006 - 22:38 #8
Jeg siger, at du kan flytte den kode, der tjekker for et eller andet, og måske laver en redirect, helt op i toppen. Og det mener jeg stadig. Du er velkommen til at gøre hvad-som-helst andet du vil, men så er det ikke mig du skal spørge. Altså, i grove træk:

<?
  if (...) {
      ...
      header("Location: ...");
      exit();
  }
?>
<!DOCTYPE...>
....
Avatar billede michaeltryl Seniormester
25. juni 2006 - 23:11 #9
okay jeg tror måske jeg har fundet noget som er der hen af.
der er en fil som kun har dette indhold

<?php
ob_start();
//include the header
require("top.php");
//check if the session Uname is in use
if($_SESSION['Uname'] == '' || $_SESSION['lp'] == '')
{
header("Location: http://hemmelig.magiske-michael.dk/login/login.php");
exit;
}


hvis nu jeg flytter
//check if the session Uname is in use
if($_SESSION['Uname'] == '' || $_SESSION['lp'] == '')
{
header("Location: http://hemmelig.magiske-michael.dk/login/login.php");
exit;
}

over i en fil for sig selv og laver redirect til den i toppen.

altså laver en fil check.php
<?
//check if the session Uname is in use
if($_SESSION['Uname'] == '' || $_SESSION['lp'] == '')
{
header("Location: http://hemmelig.magiske-michael.dk/login/login.php");
exit;
}
?>

ville det måske kunne fungere??
Avatar billede michaeltryl Seniormester
21. august 2006 - 21:49 #10
jeg lukker
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