endrebjo Skrevet 17. september 2006 Del Skrevet 17. september 2006 (endret) 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 3. oktober 2006 av endrebjorsvik Lenke til kommentar
gozzer Skrevet 18. september 2006 Del Skrevet 18. september 2006 Ser ingen feil ved første øyekast her. Kan jo være noe pes med sessions på serveren hans, selv om det virker litt søkt. Du kan jo debugge litt ved å printe $_SESSION, $_POST og $config. Lenke til kommentar
Gjest Slettet-df17e Skrevet 18. september 2006 Del Skrevet 18. september 2006 Mest sannsynelig noe krøl med sessions, ja! Gjør som gozzer nevner, og debugg litt. Husk også at session_start() må kjøres i toppen av alle filer. Lenke til kommentar
gozzer Skrevet 18. september 2006 Del Skrevet 18. september 2006 Gjør som gozzer nevner (...)6885710[/snapback] Yay, endelig noen som er enige med meg ;-) Lenke til kommentar
Ernie Skrevet 18. september 2006 Del Skrevet 18. september 2006 Husk også at session_start() må kjøres i toppen av alle filer. 6885710[/snapback] Det MÅ ikke være i toppen av alle filer, du må bare ha det før du skal bruke session og før ev. output hvis man ikke bruker output buffering. Lenke til kommentar
endrebjo Skrevet 18. september 2006 Forfatter Del Skrevet 18. september 2006 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å. Lenke til kommentar
gozzer Skrevet 18. september 2006 Del Skrevet 18. september 2006 Det finner du vel fort ut hvis du printer nevnte variabler? Lenke til kommentar
endrebjo Skrevet 18. september 2006 Forfatter Del Skrevet 18. september 2006 Se ut som at det må fikses med følgende .htaccess: php_flag register_globals off Og en ting til. Det ligger en side kalt index.php i en hovedmappe, og så ligger dette skriptet i en undermappe av hovedmappen. Dette skriptet blir inkludert i index.php. Kan .htaccess-filen ligge i undermappen? Lenke til kommentar
Martin A. Skrevet 18. september 2006 Del Skrevet 18. september 2006 Har du sjekket at register_globals faktisk er på? Og om det er på hans server, så bør du absolutt gå inn i php.ini og slå det av der. Lenke til kommentar
endrebjo Skrevet 18. september 2006 Forfatter Del Skrevet 18. september 2006 Ja. register_globals er slått på. Prøver å fikse det med en .htaccess-fil som dette: php_flag register_globals off men da er det ingen forandring og register_globals er fremdeles på. Med denne: AllowOverride all php_flag register_globals off får vi 500 Internal Server Error. Apache 1.3.34 og PHP 4.4.2. Lenke til kommentar
Martin A. Skrevet 18. september 2006 Del Skrevet 18. september 2006 Om servereieren har tilgang til php.ini, så slå det av der istede. Lenke til kommentar
Hayer Skrevet 28. september 2006 Del Skrevet 28. september 2006 // INNTILLINGER // ////////////////// Innstillinger kansje? Løste dette problemet? Fra fleip til fakta hadde samme problem men etter å ha kødda med innstillingene i PHP.ini eller noe funka den helt plutselig Lenke til kommentar
endrebjo Skrevet 28. september 2006 Forfatter Del Skrevet 28. september 2006 (endret) Fra fleip til fakta hadde samme problem men etter å ha kødda med innstillingene i PHP.ini eller noe funka den helt plutselig 6958654[/snapback] Det er slått fast at det er register_globals som står på (har også sjekket med phpinfo()). Som du sier så kan man slå den av i php.ini. Endret 28. september 2006 av endrebjorsvik Lenke til kommentar
stian90_2 Skrevet 28. september 2006 Del Skrevet 28. september 2006 i config filen. Er det da noe som heter $config['user'] ?:S Lenke til kommentar
endrebjo Skrevet 28. september 2006 Forfatter Del Skrevet 28. september 2006 Jepp. $config['pass'] også. (og egentlig en lite haug andre innstillinger) Jeg synes det så ut som en grei måte å samle alle brukerinstillinger i noe som så logisk ut, samtidig som det ikke bruker opp masse forskjellige variabelnavn. Lenke til kommentar
Peter Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 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
endrebjo Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 Interessant! Jeg har ikke greid å lure den på den måten (greier du?), men det er kanskje like greit å være føre var. Lenke til kommentar
olemedkrutt Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 Dere snakker mye om hvordan slå av register globals, det vil ikke forandre noen ting. Vet ikke hva som er galt nei desverre. Lenke til kommentar
endrebjo Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 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
olemedkrutt Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 Det gir i såfall ingen mening. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå