Gå til innhold

brukernavn og passord [hjelp]


Anbefalte innlegg

Hehe, ikke uttestet, og mange måneder siden sist gang jeg rørte PHP, så ikke stol på dette, men du kan jo teste det.

<html>
   <head>
       <title>Administrasjon</title>
       <meta name="Author" content="Project [N] ReSource" />
   </head>
   <body>
      <form action="" method="post" name="logginn">
           <b>Brukernavn:</b><br />
           <input type="text" name="brukernavn" /><br />
           <b>Passord:</b><br />
           <input type="password" name="passord" /><br />
           <input type="submit" name="submit" value="Send meg videre ->" />
      </form>
   </body>
<?php
if (isset($_POST['submit'])){
// Legger daten postet fra skjemaet inn i variablene

   $brukernavn = $_POST['brukernavn'];
   $passord = $_POST['passord'];

// Kjører en "Vis sant" spørring; vis det brukeren har postet i "brukernavn"-inputen er sant OG at det brukeren har postet i "passord"-inputen er sant, setter sesjon til sann. Bruker sendes så videre til det valgte autoriserte scriptet...

   if (($brukernavn == "dittbrukernavn") AND ($passord == "dittpassord")){
       $_SESSION['autorisert'] = true;
       header("Location: dittuploadsscript.php");
       }

// Vis _IKKE_ brukeren har tastet rett i begge feltene får han feilmld.

   else {
       $_SESSION['autorisert'] = false;
       echo "Du tastet noe feil. Vennligst gå tilbake og prøv på nytt";
   }
}
?> 

Det du gjør nå er å legge denne koden øverst i alle scriptene som bare brukere som har skrevet rett brukernavn og passord får tilgang til:

<?php
   if($_SESSION['autorisert'] != true){
       die("<h2>Ingen adgang</h2>Du har ikke rettigheter til å være her, vennligst logg inn!");
   }
?>

 

OBS: Ikke testet:P

Endret av lilminime
Lenke til kommentar
Videoannonse
Annonse

nå begynner det å ligne noe ;)

men når jeg skriver inn passordet og brukernavnet så kommer jeg ikke til upload2.htm..

 

får denne meldingen

Warning: Cannot modify header information - headers already sent by (output started at /home/2/e/effortfilm/www/test2/upload.php:12) in /home/2/e/effortfilm/www/test2/upload.php on line 26

Lenke til kommentar

Klikk for å se/fjerne innholdet nedenfor
PHP

<?php

ob_start(); 

session_start?>

<html>

 <head>

 <title>Administrasjon</title>

 <meta name="Author" content="Project [N] ReSource" />

 </head>

 <body>

<form action="" method="post" name="logginn">

 <b>Brukernavn:</b><br />

 <input type="text" name="brukernavn" /><br />

 <b>Passord:</b><br />

 <input type="password" name="passord" /><br />

 <input type="submit" name="submit" value="Send meg videre ->" />

</form>

 </body>

<?php

if (isset($_POST['submit'])){

// Legger daten postet fra skjemaet inn i variablene

 

 $brukernavn $_POST['brukernavn'];

 $passord $_POST['passord'];

 

// Kjører en "Vis sant" spørring; vis det brukeren har postet i "brukernavn"-inputen er sant OG at det brukeren har postet i "passord"-inputen er sant, setter sesjon til sann. Bruker sendes så videre til det valgte autoriserte scriptet...

 

 if (($brukernavn == "dittbrukernavn") AND ($passord == "dittpassord")){

 $_SESSION['autorisert'] = true;

 ob_end_clean();

 header("Location: dittuploadsscript.php");

 }

 

// Vis _IKKE_ brukeren har tastet rett i begge feltene får han feilmld.

 

 else {

 $_SESSION['autorisert'] = false;

 echo "Du tastet noe feil. Vennligst gå tilbake og prøv på nytt";

 }

}

?> 

 

 

La til session_start og en output buffer i starten. Før headeren blir sent tømmer eg bufferen. Dette burde fikse problemene dine :)

 

Klikk for å se/fjerne innholdet nedenfor
PHP

<?php

 if($_SESSION['autorisert'] != true){

 die("<h2>Ingen adgang</h2>Du har ikke rettigheter til å være her, vennligst logg inn!");

 }

?>

 

La og til session start her.

Endret av Shadows0
Lenke til kommentar
  • 1 måned senere...

login og sånt funker men kommer ikke til siden..

får denne meldingen..

 

Warning: Cannot modify header information - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 49

Lenke til kommentar
login og sånt funker men kommer ikke til siden..

får denne meldingen..

 

Warning: Cannot modify header information - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 49

8439410[/snapback]

 

 

kan jeg se hele scriptet og hva som er på linje 49?

Lenke til kommentar
<?php
ob_start(); 
session_start?>
<html>
  <head>
      <title>Administration</title>
      <meta name="Christopehr Bøe" content="Steezy Snowskating" />
  </head>
  <body>
     <form action="" method="post" name="logginn">
          <b class="style1">Username:</b><br />
          <input type="text" name="brukernavn" /><br />
          <b class="style1">Password:</b><br />
          <input type="password" name="passord" /><br />
          <input type="submit" name="submit" value="logg in" />
     </form>
</body>
<?php
if (isset($_POST['submit'])){
// Legger daten postet fra skjemaet inn i variablene

  $brukernavn = $_POST['brukernavn'];
  $passord = $_POST['passord'];

// Kjører en "Vis sant" spørring; vis det brukeren har postet i "brukernavn"-inputen er sant OG at det brukeren har postet i "passord"-inputen er sant, setter sesjon til sann. Bruker sendes så videre til det valgte autoriserte scriptet...

  if (($brukernavn == "test") AND ($passord == "test")){
      $_SESSION['autorisert'] = true;
      ob_end_clean();
      header("Location: controllpanel.php");
      }

// Vis _IKKE_ brukeren har tastet rett i begge feltene får han feilmld.

  else {
      $_SESSION['autorisert'] = false;
      echo "nice try!";
  }
}
?> 

Lenke til kommentar

nå kommer dette

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

over logg inn formen og når jeg logger inn så kommer denne

 

 

Warning: Cannot modify header information - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 49

Lenke til kommentar
nå kommer dette

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

over logg inn formen og når jeg logger inn så kommer denne

 

 

Warning: Cannot modify header information - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 49

8440929[/snapback]

 

her kom det opp masse feilmeldinger da jeg gjorde om..

what do i do?

Lenke til kommentar

du kan ikke la det være tekst før headerene

 

<?php

kode;

?>

htmltekst

<?php

header(); #funker ikke her pga htmltekst

?>

 

<?php
ob_start();
session_start();

if (isset($_POST['submit'])){
// Legger daten postet fra skjemaet inn i variablene

 $brukernavn = $_POST['brukernavn'];
 $passord = $_POST['passord'];

// Kjører en "Vis sant" spørring; vis det brukeren har postet i "brukernavn"-inputen er sant OG at det brukeren har postet i "passord"-inputen er sant, setter sesjon til sann. Bruker sendes så videre til det valgte autoriserte scriptet...

 if (($brukernavn == "test") AND ($passord == "test")){
     $_SESSION['autorisert'] = true;
     ob_end_clean();
     header("Location: controllpanel.php");
     }

// Vis _IKKE_ brukeren har tastet rett i begge feltene får han feilmld.

 else {
     $_SESSION['autorisert'] = false;
     echo "nice try!";
 }
} else {
 echo <<< EOF
<html>
 <head>
     <title>Administration</title>
     <meta name="Christopehr Bøe" content="Steezy Snowskating" />
 </head>
 <body>
    <form action="" method="post" name="logginn">
         <b class="style1">Username:</b><br />
         <input type="text" name="brukernavn" /><br />
         <b class="style1">Password:</b><br />
         <input type="password" name="passord" /><br />
         <input type="submit" name="submit" value="logg in" />
    </form>
</body>
EOF;
}

?>

Lenke til kommentar

nå kommer dette

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/2/e/effortfilm/www/steezy/admin.php:6) in /home/2/e/effortfilm/www/steezy/admin.php on line 22

 

EDIT: gjorde om koden min til dette

 

<html>
<head>
<title>Logg inn</title>
</head>
<body>
   
<?php
ob_start();
session_start();

if (isset($_POST['submit'])){
// Legger daten postet fra skjemaet inn i variablene

$brukernavn = $_POST['brukernavn'];
$passord = $_POST['passord'];

// Kjører en "Vis sant" spørring; vis det brukeren har postet i "brukernavn"-inputen er sant OG at det brukeren har postet i "passord"-inputen er sant, setter sesjon til sann. Bruker sendes så videre til det valgte autoriserte scriptet...

if (($brukernavn == "test") AND ($passord == "test")){
   $_SESSION['autorisert'] = true;
   ob_end_clean();
   header("Location: controllpanel.php");
   }

// Vis _IKKE_ brukeren har tastet rett i begge feltene får han feilmld.

else {
   $_SESSION['autorisert'] = false;
   echo "nice try!";
}
} else {
echo <<< EOF
<html>
<head>
   <title>Administration</title>
   <meta name="Christopehr Bøe" content="Steezy Snowskating" />
</head>
<body>
  <form action="" method="post" name="logginn">
       <b class="style1">Username:</b><br />
       <input type="text" name="brukernavn" /><br />
       <b class="style1">Password:</b><br />
       <input type="password" name="passord" /><br />
       <input type="submit" name="submit" value="logg in" />
  </form>
</body>
EOF;
}

?>
</body>

 

men nå kommer disse meldingene opp

 

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/2/e/effortfilm/www/steezy/admin.php:8) in /home/2/e/effortfilm/www/steezy/admin.php on line 10

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/2/e/effortfilm/www/steezy/admin.php:8) in /home/2/e/effortfilm/www/steezy/admin.php on line 10

Endret av effortfilm
Lenke til kommentar

php kode blir tolket av serveren og skriver ut resultatet.

 

resultat = det som blir sendt til clienten. (altså bokstavelig talt det du ser hvis du klikker vis kildekode når du ser på siden)

 

alt som ikke er innenfor <?php og ?> blir sendt direkte som resultat ut fra der det befinner seg i koden.

 

skal man bruker header() funksjonen kan man ikke skrive ut noe resultat før header() blir brukt, for http protokollen tar i mot headere før html (resultat). derav navnet header.

 

din modifikasjon av koden jeg postet gjør nettopp dette. skriver ut:

 

<html>

<head>

<title>Logg inn</title>

</head>

<body>

 

før header() funksjonen uansett.

 

derfor får du error.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...