lilminime Skrevet 28. februar 2007 Del Skrevet 28. februar 2007 (endret) 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 28. februar 2007 av lilminime Lenke til kommentar
scribbleh Skrevet 28. februar 2007 Forfatter Del Skrevet 28. februar 2007 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
lilminime Skrevet 28. februar 2007 Del Skrevet 28. februar 2007 Jeg kan komme tilbake til deg imorgen, det er litt sent nå, men det betyr altså at noe er sendt før headeren, er trøtt, imorgen min venn... i morgen... Lenke til kommentar
Runar0 Skrevet 28. februar 2007 Del Skrevet 28. februar 2007 (endret) 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 28. februar 2007 av Shadows0 Lenke til kommentar
scribbleh Skrevet 21. april 2007 Forfatter Del Skrevet 21. april 2007 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
The_Lozer Skrevet 21. april 2007 Del Skrevet 21. april 2007 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
scribbleh Skrevet 21. april 2007 Forfatter Del Skrevet 21. april 2007 <?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
The_Lozer Skrevet 21. april 2007 Del Skrevet 21. april 2007 du kan begynne med å bytte ut session_start?> med session_start(); Lenke til kommentar
scribbleh Skrevet 21. april 2007 Forfatter Del Skrevet 21. april 2007 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
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 http://www.effortfilm.com/test2 her ser man alle filene. lag en index.htm/.php fil eller fjern muligheten for indexering i webserver config. Lenke til kommentar
scribbleh Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 hvordan fjerner jeg den muligheten? Lenke til kommentar
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 legg til: <Directory "/bane/til/din/wwwroot/test2"> AllowOverride None Options None Order allow,deny Allow from all </Directory> i httpd.conf Lenke til kommentar
scribbleh Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 nå kommer detteWarning: 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
The_Lozer Skrevet 22. april 2007 Del Skrevet 22. april 2007 må du egentlig ha ob_start(); og ob_end_clean(); i scriptet ditt? du sender ikke en cookie sånn det ser ut for meg Lenke til kommentar
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 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
scribbleh Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 (endret) 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 22. april 2007 av effortfilm Lenke til kommentar
scribbleh Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 (endret) tror det er den samme feilen.. Endret 22. april 2007 av effortfilm Lenke til kommentar
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 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
scribbleh Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 (endret) thank you big time! Endret 22. april 2007 av effortfilm 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å