Avatar billede deurell Nybegynder
08. september 2006 - 18:16 Der er 24 kommentarer og
1 løsning

et script med to små funktioner...kan ikke finde fejlen

Nedenstående script skriver ikke noget ud i broweseren.
Jeg har forkortet if sætningen i starten da der intet er i vejen med den og jeg ved at fejlen ligger i den bid jeg her har pastet ind. Altså efter else. Jeg har skrevet en tom if-sætning for overskuelighedens skyld.
Nogen der kan se hvad problemet er?

if (){}else{
  $indhold = bygFormular($_SERVER["REQUEST_URI"]);
  $output = bygSide("Upload foto", $indhold);
}

echo $output;
exit;

function bygSide($titel, $indhold) {

  return '<html>
            <head><title>' . $titel . '</title>
            <link rel="stylesheet" type="text/css" href="../css/x.css">
            </head>
            <body bgcolor="#ffffff">
              ' . $indhold . '</body>
          </html>';
}

function bygFormular($action) {

$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
    ' . $_GET['id'] . '<br>
    <input type="file" name="upfil" value=""><br><br>
    <font color="red"><b>VIGTIGT!</b></font>
    <p>
    <ul>
    <li>Billedet skal være af typen .jpg eller .jpeg
    <li>Billedfilen må max fylde 1 MB (1024 KB)
    <li>Hvis noget uforudset hænder kontakt da Morten med det samme.
    </ul>
    <input type="submit" value="upload">
    </form>';

  return $formular;
}
Avatar billede jakobdo Ekspert
08. september 2006 - 19:27 #1
Begge dine funktioner er korrekte, så fejlen må ligge andet steds.
Prøv at smid alt din kode herind?
Avatar billede deurell Nybegynder
08. september 2006 - 19:43 #2
superweird....den når ellers forbi if sætningen da jeg godt kan smide en echo linie ind, lige efter "else", som bliver udskrevet i browseren. Det ville den jo ikke gøre ellers. Men Anyways. Jeg trimmer lige koden for sikre oplysninger og smider den ind her.
Avatar billede deurell Nybegynder
08. september 2006 - 19:50 #3
Her er du koden:
PS. Det er et shareware uploadscript som jeg selv har rettet lidt i. Det har virket, og jeg er 99,9% sikker på at jeg ikke har lavet ændringer i det før det så pludselig ikke virkede.

<div class="titel">Upload foto - 2</div>
<div class="content">
<?php

/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*    http://www.webcafe.dk/artikler/php/upload/
*/


/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'];

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "1024";


/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

  /**
  * Hvis der er en fil, saa uploader vi den.
  *
  * Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
  */

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  /**
  *  Checker lige om filen er for stor til at vi vil acceptere den.
  *  Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
  *  situation, at fejlmeldingen siger, at filen er for stor, men angiver
  *  samme stoerrelse for filen og den oevre graense.
  */
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }
/*****************/

  // Max height and width

$max_width = 450;
$max_height = 450;
$size = getimagesize($til);
$width= $size['0'];
$height = $size['1'];
  Header("Content-type: image/jpeg");
// Proportionally resize the image to the
        // max sizes specified above
       
        $x_ratio = $max_width / $width;
        $y_ratio = $max_height / $height;

        if( ($width <= $max_width) && ($height <= $max_height) )
        {
              $tn_width = $width;
              $tn_height = $height;
        }
        elseif (($x_ratio * $height) < $max_height)
        {
              $tn_height = ceil($x_ratio * $height);
              $tn_width = $max_width;
        }
        else
        {
              $tn_width = ceil($y_ratio * $width);
              $tn_height = $max_height;
        }

        ini_set('memory_limit', '32M');
        $src = ImageCreateFromJpeg($til);
        $dst = ImageCreateTrueColor($tn_width, $tn_height);
    ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    ImageJpeg($dst,$til,100);
    $thumbw = ($tn_width / 6);
    $thumbh = ($tn_height / 6);
    $newwidth = ($width / 6);
    $newheight = ($height / 6);
    $thumbsrc = ImageCreateFromJpeg($til);
    $thumbdst = ImageCreateTrueColor($thumbw, $thumbh);
    ImageCopyResized($thumbdst, $thumbsrc, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    ImageJpeg($thumbdst,$konfiguration["upload_bibliotek"] . "/thumbs/" . $_FILES["upfil"]["name"],100);

if (is_file("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"])){
    $link = mysql_connect("localhost", "sphingidae_dk", "zFQvShLv")
    or die("Could not connect: " . mysql_error());
   
    if (!$link){echo "ikke forbundet";
    exit();}
    $db = mysql_select_db(sphingidae_dk);
    if (!$db){echo "ikke forbundet";
    exit();}

    $g_total = mysql_query("select count(ID) as total from foto WHERE tur='" . $_GET['aar'] . "' AND uploader='" . $_COOKIE['userid'] . "'") or die(mysql_error());
    $total = mysql_result($g_total,0);
    $nytnavn = ($total+1) . ".jpg";
    $uploader = $_COOKIE['userid'];
    $aar = $_GET['aar'];
        rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $nytnavn);
        rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $nytnavn);
        $mysql = "INSERT INTO foto (`id`, `uploader`, `tur`, `filnavn`) VALUES ('', '$uploader', '$aar','$nytnavn')";
        mysql_query($mysql) or die(mysql_error());
}

echo "Dit billede er nu uploadet<br>";

echo "<a href='?side=fotos&amp;tur=" . $aar . "&amp;uploader=" . $uploader . "'>Se Galleri</a>";
exit;
mysql_close($link);
} else {
  $indhold = bygFormular($_SERVER["REQUEST_URI"]);
  $output = bygSide("Upload foto", $indhold);
}

echo $output;
exit;

function bygSide($titel, $indhold) {

  return '<html>
            <head><title>' . $titel . '</title>
            <link rel="stylesheet" type="text/css" href="../css/x.css">
            </head>
            <body bgcolor="#ffffff">
              ' . $indhold . '</body>
          </html>';
}

function bygFormular($action) {

$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
    ' . $_GET['id'] . '<br>
    <input type="file" name="upfil" value=""><br><br>
    <font color="red"><b>VIGTIGT!</b></font>
    <p>
    <ul>
    <li>Billedet skal være af typen .jpg eller .jpeg
    <li>Billedfilen må max fylde 1 MB (1024 KB)
    <li>Hvis noget uforudset hænder kontakt da Morten med det samme.
    </ul>
    <input type="submit" value="upload">
    </form>';

  return $formular;
}

}
?>
</div>
Avatar billede deurell Nybegynder
08. september 2006 - 19:53 #4
dammit..koden røg med. Sikke en bommert.
Den er ændret med det samme!!!
Avatar billede jakobdo Ekspert
08. september 2006 - 21:35 #5
Din fejl er her:

}
}
?>
</div>

Slet den ene }
Avatar billede jakobdo Ekspert
08. september 2006 - 21:36 #6
Og jeg vil også mene du løber ind i problemer efter dette kald:
Header("Content-type: image/jpeg");
Du har output efterfølgende, f.eks:
echo "Dit billede er nu uploadet<br>";
Avatar billede deurell Nybegynder
09. september 2006 - 16:17 #7
Jeg har fjernet den ekstra } og jeg har slettet de to echo linier...Det hjælper ikke...
Avatar billede jakobdo Ekspert
09. september 2006 - 20:26 #8
Og hvad siger din kode så nu?
Der sker måske ikke noget når du uploader?
Avatar billede deurell Nybegynder
10. september 2006 - 12:17 #9
Den udskriver nu ingenting.
Før udskrev den til og med:
<div class="titel">Upload foto - 2</div>
<div class="content">
Avatar billede jakobdo Ekspert
10. september 2006 - 14:39 #10
Smid din fulde kode herind igen.
Husk at fjern dit login.
Kan du ikke aktivere error_reporting() ?
Avatar billede deurell Nybegynder
10. september 2006 - 14:51 #11
hvordan aktiverer jeg error_reporting?
Avatar billede deurell Nybegynder
10. september 2006 - 14:53 #12
Her er koden igen:

<div class="titel">Upload foto - 2</div>
<div class="content">
<?php

/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*    http://www.webcafe.dk/artikler/php/upload/
*/


/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'];

/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "1024";


/**
* Checker PHP-version
*/
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}


/**
* Udligner forskellene mellem 4.1.x og 4.0.x
* Bemaerk, at disse ikke er "superglobals"
*/
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}


if($_FILES["upfil"]["size"] > 0) {

  /**
  * Hvis der er en fil, saa uploader vi den.
  *
  * Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
  */

  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

  /**
  *  Checker lige om filen er for stor til at vi vil acceptere den.
  *  Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
  *  situation, at fejlmeldingen siger, at filen er for stor, men angiver
  *  samme stoerrelse for filen og den oevre graense.
  */
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }
/*****************/

  // Max height and width

$max_width = 450;
$max_height = 450;
$size = getimagesize($til);
$width= $size['0'];
$height = $size['1'];
  Header("Content-type: image/jpeg");
// Proportionally resize the image to the
        // max sizes specified above
       
        $x_ratio = $max_width / $width;
        $y_ratio = $max_height / $height;

        if( ($width <= $max_width) && ($height <= $max_height) )
        {
              $tn_width = $width;
              $tn_height = $height;
        }
        elseif (($x_ratio * $height) < $max_height)
        {
              $tn_height = ceil($x_ratio * $height);
              $tn_width = $max_width;
        }
        else
        {
              $tn_width = ceil($y_ratio * $width);
              $tn_height = $max_height;
        }

        ini_set('memory_limit', '32M');
        $src = ImageCreateFromJpeg($til);
        $dst = ImageCreateTrueColor($tn_width, $tn_height);
    ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
    ImageJpeg($dst,$til,100);
    $thumbw = ($tn_width / 6);
    $thumbh = ($tn_height / 6);
    $newwidth = ($width / 6);
    $newheight = ($height / 6);
    $thumbsrc = ImageCreateFromJpeg($til);
    $thumbdst = ImageCreateTrueColor($thumbw, $thumbh);
    ImageCopyResized($thumbdst, $thumbsrc, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    ImageJpeg($thumbdst,$konfiguration["upload_bibliotek"] . "/thumbs/" . $_FILES["upfil"]["name"],100);

if (is_file("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"])){
    $link = mysql_connect("xxxx", "xxxx", "xxxx")
    or die("Could not connect: " . mysql_error());
   
    if (!$link){echo "ikke forbundet";
    exit();}
    $db = mysql_select_db(sphingidae_dk);
    if (!$db){echo "ikke forbundet";
    exit();}

    $g_total = mysql_query("select count(ID) as total from foto WHERE tur='" . $_GET['aar'] . "' AND uploader='" . $_COOKIE['userid'] . "'") or die(mysql_error());
    $total = mysql_result($g_total,0);
    $nytnavn = ($total+1) . ".jpg";
    $uploader = $_COOKIE['userid'];
    $aar = $_GET['aar'];
        rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $nytnavn);
        rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $nytnavn);
        $mysql = "INSERT INTO foto (`id`, `uploader`, `tur`, `filnavn`) VALUES ('', '$uploader', '$aar','$nytnavn')";
        mysql_query($mysql) or die(mysql_error());
}

//echo "Dit billede er nu uploadet<br>";

//echo "<a href='?side=fotos&amp;tur=" . $aar . "&amp;uploader=" . $uploader . "'>Se Galleri</a>";
mysql_close($link);
} else {
  $indhold = bygFormular($_SERVER["REQUEST_URI"]);
  $output = bygSide("Upload foto", $indhold);
}

echo $output;
exit;

function bygSide($titel, $indhold) {

  return '<html>
            <head><title>' . $titel . '</title>
            <link rel="stylesheet" type="text/css" href="../css/xxx.css">
            </head>
            <body bgcolor="#ffffff">
              ' . $indhold . '</body>
          </html>';
}

function bygFormular($action) {

$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
    ' . $_GET['id'] . '<br>
    <input type="file" name="upfil" value=""><br><br>
    <font color="red"><b>VIGTIGT!</b></font>
    <p>
    <ul>
    <li>Billedet skal være af typen .jpg eller .jpeg
    <li>Billedfilen må max fylde 1 MB (1024 KB)
    <li>Hvis noget uforudset hænder kontakt da Morten med det samme.
    </ul>
    <input type="submit" value="upload">
    </form>';

  return $formular;
}

?>
</div>
Avatar billede jakobdo Ekspert
10. september 2006 - 15:06 #13
Hvis jeg tester den kode du har sendt her, så ser jeg fint formen.
Avatar billede deurell Nybegynder
10. september 2006 - 18:25 #14
i don't get it....
Avatar billede jakobdo Ekspert
10. september 2006 - 19:13 #15
Me neither.
Avatar billede deurell Nybegynder
10. september 2006 - 19:22 #16
nu har jeg forstået det lidt.
Før koden havde jeg dette sidende:

<?php
if(!$_COOKIE['login'])
{}else{
?>

Og efter koden dette:

<?php
}
?>

Og det er åbenbart det som har lavet en konflikt med noget af koden på siden. Hvorfor ved jeg ikke. Jeg har samme ting liggende på andre sider hvor det virker fint.
Avatar billede deurell Nybegynder
10. september 2006 - 19:23 #17
*siddende
Avatar billede deurell Nybegynder
12. september 2006 - 14:59 #18
well...hvis du vil have lidt point...da dine råd jo endte med at få mig til at finde fejlen...så skriv lige et svar...
Avatar billede jakobdo Ekspert
12. september 2006 - 18:00 #19
Svar!
Avatar billede deurell Nybegynder
12. september 2006 - 21:09 #20
Du skal i øvrigt være mere end velkommen til at skrive her, hvis du ved hvorfor mit cookie-check gav problemer?
Avatar billede jakobdo Ekspert
12. september 2006 - 21:49 #21
Takker for point.

Prøv at brug:

if(!isset($_COOKIE['login']))
Avatar billede jakobdo Ekspert
12. september 2006 - 21:49 #22
Og du burde jo som sådan kunne rette:

if(!$_COOKIE['login'])
{}else{
?>

til:

if(isset($_COOKIE['login']))
{
?>
Avatar billede deurell Nybegynder
12. september 2006 - 22:03 #23
Både min gamle løsning og dit nye forslag til cookie-checket giver desværre stadig det resultat at formen ikke udskrives i browseren. Tak for forsøget.
Avatar billede jakobdo Ekspert
12. september 2006 - 22:14 #24
Det lyder altså vildt mærkeligt.
Enten har du en warning som ikke vises på min server.
Eller også har du en mærkelig fejl på serveren.
Så det virker en smule mærkeligt...
Avatar billede deurell Nybegynder
13. september 2006 - 12:40 #25
Det underlige er at det cookie-check er præcis det samme (Jeg har triplechecket) på alle andre undersider på mit site. Så det lader jo bestemt ikke til at være noget på serveren. Jeg får ingen warning....bare ingen udskrevet kode.
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