Avatar billede fcknet Nybegynder
30. december 2003 - 11:27 Der er 11 kommentarer og
1 løsning

Fejl ved Header

Følgende kode videresender ikke på noget tidspunkt når jeg bruger header.
Jeg har prøvet at oprette en side med <? header("Location: fil.php"); ?> og det virker fint...

<?
session_start();
include("dbconnect.php");
error_reporting(E_ALL);
$allowedsize = $bannersize*1024;
if ($_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg" || $_FILES['imagefile']['type'] == "image/gif"){
    if ($_FILES['imagefile']['size'] <= $allowedsize) {
        if ($debug) { echo "saving banner information to database<br>"; }
        mysql_query("INSERT INTO sources (path) VALUES ('$banner_url')") or die(mysql_error());
        $source = mysql_insert_id();
        mysql_query("INSERT INTO banners (user, str, source, dest, aktiv) VALUES ($login_user, '$banner_str', $source, '$banner_dest', 1)") or die(mysql_error());
        $banner = mysql_insert_id();
        mysql_query("INSERT INTO bannerstat (banner) VALUES ($banner)") or die(mysql_error());
        if ($debug) { echo "Success!<br>"; }
        $data = mysql_query("SELECT id FROM `banners` ORDER BY `id` DESC LIMIT 1");
        while ($row = mysql_fetch_array($data)) {
            $name = $row[id];
            if ($_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg") {
                $name = $name.".jpg";
            } elseif ($_FILES['imagefile']['type'] == "image/gif") {
                $name = $name.".gif";
            }
        }
        if ($debug) { echo "Copying from temp folder<br>"; }
        copy ($_FILES['imagefile']['tmp_name'], "$bannerdir$name");
        if ($debug) { echo "Success!<br>"; }
        $banner_url = $bannerdir2.$name;
        mysql_query("UPDATE sources set path = '$banner_url' where id = $source");
        header("Location: user.php");
    } else {
        if ($debug) { echo "redirecting because of banner being too big (< $allowedsize bytes)"; }
        header("Location:  besked.php?besked=5");
        exit;
    }
} else {
    header("Location: besked.php?besked=4");
    exit;
}
?>
Avatar billede erikjacobsen Ekspert
30. december 2003 - 11:55 #1
1) Har du et link?
2) Du ved godt man ikke må udskrive før en header (din $debug tyder på du ved det)
3) Det er usikkert kun at teste på typer som "image/jpeg" osv - enhver middelmådig
  hacker kan snyde dig og fx uploade en .php som du tror er et billede. Du *skal*
  også teste på extension!
Avatar billede fcknet Nybegynder
30. december 2003 - 12:34 #2
1) Et link? Den viser bare blank side, hvis $debug er false.
2) Ja det ved jeg godt... Derfor er det debug - til fejlfinding.
3) Tak...

Det løser dog ikke mit problem :(
Avatar billede erikjacobsen Ekspert
30. december 2003 - 12:51 #3
Ja, men jeg vil gerne se din HTTP-header for at se om du får lavet en korrekt Location-linie
Avatar billede Slettet bruger
30. december 2003 - 14:29 #4
Virker det hvis du fjerner session_start()?
Avatar billede erikjacobsen Ekspert
30. december 2003 - 14:38 #5
Og mit punkt 3 er forsåvidt rigtigt nok, men jeg kan nærlæse din kode nu til at du
selv sætter ekstension på
      $name = $name.".gif";
Og dermed kan din bruger ikke lave en .php fil i dit katalog.  Dermed er det ikke
farligt her. Det er selvfølgelig farligt hvis du bruger det navn hackeren selv kommer med ;)
Avatar billede fcknet Nybegynder
30. december 2003 - 15:58 #6
erik -> www.fcknet.dk/banlink/aktiver.php?kode=test
udflyd lige noget fis, så kommer du til den rigtige side
Avatar billede erikjacobsen Ekspert
30. december 2003 - 16:04 #7
Ok - men jeg får slet ingenting på det link - måske fordi jeg ikke accepterer cooies. Sorry
Avatar billede fcknet Nybegynder
30. december 2003 - 16:41 #8
øv :)
Avatar billede martinbk Nybegynder
30. december 2003 - 17:13 #9
folk som tvinger cookies ned over hovedet på en skulle bagbindes og ofres til en lama
Avatar billede fcknet Nybegynder
30. december 2003 - 18:07 #10
det emeste du skal bruge det til på min side er at huske hvilket sprog den skal være på
Avatar billede fcknet Nybegynder
30. december 2003 - 18:39 #11
erikjacobsen > Header virker fint når filstørrelsen overskrider det tilladte.
Så bliver jeg fint sendt videre, men ellers får jeg bare en blank side.
Avatar billede fcknet Nybegynder
07. januar 2004 - 17:35 #12
Underligt... Det virker nogengange og nogengange virker det ikke.
Men det virker 100% på min egen server.
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