Gå til innhold

[LØST] Hva er galt med denne innloggingen?


Anbefalte innlegg

Har laget en innlogging som fungerer knirkefritt på både hotserv.dk og home.no.net, men en kamerat får den ikke til å fungere på sin server. Han (og jeg) bare suser rett inn med én gang uten å måtte logge inn når det ligger på hans server.

<?php
   session_start();

   // INNTILLINGER //
   //////////////////
   require_once('config.php');


   // SIKKERHETSSJEKK 1 //
   ///////////////////////
   if ($_POST['user'] == $config['user'] AND $_POST['pass'] == $config['pass']) {

       // Sett brukernavn og passord i $_SESSION
       $_SESSION['user'] = $_POST['user'];
       $_SESSION['pass'] = $_POST['pass'];

   } elseif ($_SESSION['user'] != $config['user'] OR $_SESSION['pass'] != $config['pass']) {

       // Inkluder innloggingsformen
       include('innlogging.php');
   }
   
   
   // SIKKERHETSSJEKK 2 //
   ///////////////////////
   if ($_SESSION['user'] == $config['user'] AND $_SESSION['pass'] == $config['pass']) {

       // SKRIVER UT HOVEDSKRIPTET

   }
?>

Endret av endrebjorsvik
Lenke til kommentar
Videoannonse
Annonse

Leser litt om variabler på php.net og kommer over dette:

Warning

In PHP 4.2.0 and later, the default value for the PHP directive register_globals is off. This is a major change in PHP. Having register_globals off affects the set of predefined variables available in the global scope. For example, to get DOCUMENT_ROOT you'll use $_SERVER['DOCUMENT_ROOT'] instead of $DOCUMENT_ROOT, or $_GET['id'] from the URL http://www.example.com/test.php?id=3 instead of $id, or $_ENV['HOME'] instead of $HOME.

 

For related information on this change, read the configuration entry for register_globals, the security chapter on Using Register Globals, as well as the PHP 4.1.0 and 4.2.0 Release Announcements.

 

Using the available PHP Reserved Predefined Variables, like the superglobal arrays, is preferred.

Kanskje han har register_globals slått på. :hmm:

Lenke til kommentar
  • 2 uker senere...
One thing to note in comparison with ==

 

When we make a comparison with == php automaticly converts strings to integers when either side of the comparison is an integer, f.e.:

<?

$value = 0;

if($value == "submit") {

  echo "Let's submit";

}

?>

Above would be succesful, since "submit" is converted to an integer (eq 0) and the equation is would return true; (that's why (1 == "1submit") would also return true)

 

That's why we should use strcmp or === (checks type also), for string comparisons.

 

So my conclusion is that when comparing string, you'd better not make use of == (use strmp or === instead). For integer comparisons the == equation can be usefull, since our values will always be casted to an integer (1 == "1" returns true).

Lenke til kommentar
Dere snakker mye om hvordan slå av register globals, det vil ikke forandre noen ting. Vet ikke hva som er galt nei desverre.

6991142[/snapback]

Hææ?

Når register_globals er slått av så fungerer det. Når register_globals er slått på så fungerer det ikke. Såvisst forandrer register_globals det da.

Register_globals slåes av i php.ini.

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...