Avatar billede jens12 Nybegynder
12. marts 2006 - 19:40 Der er 28 kommentarer og
1 løsning

Opload virker ikke...hjælp

Hej i opload eksperter.
jeg har et webhotel på frac.dk og
jeg har fået dette script sat sammen : (men det virker ikke)
Jeg har fået inspiration fra :
http://www.eksperten.dk/spm/446545 og
http://www.webcafe.dk/artikler/php/upload/
Scriptet skal overføre et billede til 2 biblioteker disse her:
/community/profil/small/
/community/profil/large/ (begge biblioteker er chmodet til 777)
Grunden til at scriptet skal overføre til 2 biblioteker er at i small mappen skal der ligge et billede som er risizet til 165 x 130 og i large mappen skal den være 450 x 450...
Jeg Håber i forstår...
Mvh:
jens
Fejlen er :
Parse error: syntax error, unexpected T_VARIABLE in /web/www/frac/users/mailwithfriends/community/profil/oploadet_profpicture.php on line 39
Her er scriptet:
<------default.php -------->
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="../../style/style.css" type="text/css">
<title>Opload profbillede!</title>
<style type="text/css">
<!--
body {
    background-color: #FFFFFF;
}
-->
</style></head>

<body>
<form action="oploadet_profpicture.php" method="post" enctype="multipart/form-data">
<table width="100%" border="0">
  <tr>
    <td><p>Her kan du overf&oslash;re dit eget Profil-billede til din bruger,det eneste du bare skal g&oslash;re er at finde filen i gennemse ogs&aring; tryk ok knappen. </p>
    <p>Mvh:<br />
    Ejerne,(Forbeholder retten til at slette uanset hvad for et billede som vi ikke synes om) </p></td>
  </tr>
  <tr>
    <td><div align="center">Du er ved at overf&oslash;re et profil-billede til :
      <?=$user?></div>
      <table width="600" border="0" align="center" cellpadding="2" cellspacing="0">
      <tr>
        <td width="200" nowrap="nowrap" align="right"><b>Billedet:</b></td>
          <td><input name="upfil" type="file" class="file" id="upfil" style="width:80%" /></td>
        </tr>
      <tr>
        <td width="200" nowrap="nowrap" align="right"><b>Kommentar:</b></td>
          <td><input name="kommentar" type="text" id="kommentar" value="" size="50" maxlength="50" /></td>
        </tr>
      <tr>
        <td></td>
          <td><input name="submit" type="submit" class="knap"  value="upload" />
            <a href="../profile.php">        Tilbage til din profil </a></td>
        </tr>
      </table></td></tr>
</table></form>
</body>
</html>
<--------slut med default.php ------->
<--------oploadet_profpicture.php---->
<?php
session_start();
?>
<?php
$newname_picture = rand(100000, 999999);

$newname = ($newname_picture);

$konfiguration_large["upload_bibliotek"] = "/community/profil/large/";
$konfiguration_small["upload_bibliotek"] = "/community/profil/small/";
$konfiguration["max_stoerrelse"] = "80";
$konfiguration_max_width = 450; //Ja, tilladte max. højde ved large
$konfiguration_max_height = 450; //Tilladte max. bredde ved large
$konfiguration_max_width_small = 165; //Ja, tilladte max. højde ved small
$konfiguration_max_height_small = 130; //Tilladte max. bredde ved small
$tilladte_filtyper = array("image/jpeg", "image/pjpeg", "image/jpg");//tilladte filtyper. Tilføj fx. "image/gif"


$fra = $_FILES["upfil"]["tmp_name"];
$til_large = $konfiguration["upload_bibliotek"] . "/community/profil/large/" . $_FILES["upfil"]["name"];
$til_small = $konfiguration["upload_bibliotek"] . "/community/profil/small/" . $_FILES["upfil"]["name"];

$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Vi accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
     
      //Er fil-typen blandt tilladte?
        if (in_array($_FILES['img']['type'],$tilladte_filtyper))
     
      //Find billedets størrelse
$size = getimagesize($_FILES['upfil']['name']);
//tjekker om at Filen ikke er for bred
                if($size[0] < $konfiguration_max_width)
                {

//tjekker om at Filen ikke er for høj
                    if($size[1] < $konfiguration_$max_height)
                    {
//Lav et nyt billede så vi kan komme igang
                        $dst_img=ImageCreateTrueColor($konfiguration_max_width,$konfiguration_max_height);

                        $src_img=ImageCreateFromJpeg($_FILES['upfil']['name']);
                       
//Lav det nye billede med max 450 width og 450 height...                       
copy($konfiguration_large,$til_large or die("Desværre dit billede blev ikke overført!");
//--------------------------------------------------------------------------------------
//Er fil-typen blandt tilladte?
        if (in_array($_FILES['img']['type'],$tilladte_filtyper))
     
      //Find billedets størrelse
$size = getimagesize($_FILES['upfil']['name']);
//tjekker om at Filen ikke er for bred
                if($size[0] < $konfiguration_max_width_small)
                {

//tjekker om at Filen ikke er for høj
                    if($size[1] < $konfiguration_$max_height_small)
                    {
//Lav et nyt billede så vi kan komme igang
                        $dst_img=ImageCreateTrueColor($konfiguration_max_width_small,$konfiguration_max_height_small);

                        $src_img=ImageCreateFromJpeg($_FILES['upfil']['name']);
                       
//Lav det nye billede med max 165 width og 130 height...                       
copy(konfiguration_small,$til_small or die("Desværre dit billede blev ikke overført");   


          mysql_query("UPDATE profil SET user='$user', image='$newname',dir='$til_large',image_small='$newname',small_dir='$til_small',dato='$dato',kommentar='$kommentar' WHERE brugernavn = '".$user."'");
      $dato = date("d/m-Y - H:i:s", time());
      echo"<b>Dit Profil billede er nu overført!</b>";
?>
<--------slut med oploadet_profpicture.php----->
Sql:
CREATE TABLE `profil` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(30) NOT NULL default '',
  `image` varchar(50) NOT NULL default '',
  `dir` varchar(100) NOT NULL default '',
  `small_image` varchar(50) NOT NULL default '',
  `small_dir` varchar(50) NOT NULL default '',
  `dato` varchar(50) NOT NULL default '',
  `kommentar` varchar(150) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Avatar billede jakobdo Ekspert
12. marts 2006 - 20:30 #1
Prøv at udskriv:
$til_large
$til_small

efter koden:
$til_large = $konfiguration["upload_bibliotek"] . "/community/profil/large/" . $_FILES["upfil"]["name"];
$til_small = $konfiguration["upload_bibliotek"] . "/community/profil/small/" . $_FILES["upfil"]["name"];

Jeg tror nemlig du indlæser nemlig path to gange.
Ligeledes giver denne kode ikke mening:

$konfiguration_large["upload_bibliotek"] = "/community/profil/large/";
$konfiguration_small["upload_bibliotek"] = "/community/profil/small/";

Du sætter samme variabel til 2 ting, og det er jo så kun den sidste som dur.
Avatar billede jens12 Nybegynder
12. marts 2006 - 20:56 #2
Hej jakobdo...Altså nu har jeg slettet disse linjer:
$konfiguration_large["upload_bibliotek"] = "/community/profil/large/";
$konfiguration_small["upload_bibliotek"] = "/community/profil/small/";
Når du skriver udskriv mener du så at jeg skal skrive et sted i koden :
echo"$til_large";
echo"$til_small"; ??
Mvh:
Jens
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:16 #3
Ja!
Udskriv dem evt efter:
$konfiguration_large["upload_bibliotek"] = "/community/profil/large/";
$konfiguration_small["upload_bibliotek"] = "/community/profil/small/";

Det kode giver stadig ikke mening.
Du skal evt rette til:
$konfiguration_large["upload_bibliotek_large"] = "/community/profil/large/";
$konfiguration_small["upload_bibliotek_small"] = "/community/profil/small/";
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:21 #4
Som jeg ser det, så mangler du en masse }}}} til at lukke din if()'er
Jeg tror slet ikke du for resizet dine billeder.
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:23 #5
Ok,dem har jeg sat ind nu jakobdo..Altså de linjer jeg slettede dem skulle jeg alligevel ikke havde slettet?
Mvh
Jens
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:29 #6
Øøh..Hvordan ved jeg hvor mange der skal være af disse her }}}} ?
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:34 #7
Test lige denne kode:

<?php
session_start();
$newname = rand(100000, 999999);

function resize( $filename, $newfilename, $maxw, $maxh )
{
    list($width, $height, $filetype, $attr) = getimagesize($filename);
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
   
    return file_exists($newfilename);
}

$konfiguration['upload_large']         = "/community/profil/large/";
$konfiguration['upload_small']         = "/community/profil/small/";
$konfiguration['max_stoerrelse']     = 80;
$konfiguration['max_width']             = 450; //Ja, tilladte max. højde ved large
$konfiguration['max_height']             = 450; //Tilladte max. bredde ved large
$konfiguration['small_width']         = 165; //Ja, tilladte max. højde ved small
$konfiguration['small_height']        = 130; //Tilladte max. bredde ved small

$tilladte_filtyper = array("jpeg", "jpg", "jpe");//tilladte filtyper. Tilføj fx. "image/gif"

$fra = $_FILES['upfil']['tmp_name'];
$til_large = $konfiguration['upload_bibliotek'] . $_FILES['upfil']['name'];
$til_small = $konfiguration['upload_bibliotek'] . $_FILES['upfil']['name'];

$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration['max_stoerrelse'])
{
    die("Desværre - filen er for stor. Vi accepterer kun " .
    $konfiguration['max_stoerrelse'] . "kb, og din fil fylder " .
    ceil($fil_stoerrelse, 1) . " kb");
}
   
//Er fil-typen blandt tilladte?
$extension = strtolower(end(explode('.',$_FILES['upfil']['name'])));
if (in_array($extension,$tilladte_filtyper))
{
    //Lav det store billede...
    resize($fra,$til_large,$konfiguration['max_width'],$konfiguration['max_height']) or die("Desværre det store billede ikke generet!");
       
    //Lav det lille billede...
    resize($fra,$til_small,$konfiguration['small_width'],$konfiguration['small_height']) or die("Desværre det lille billede ikke generet!");
   
    $dato = date("d/m-Y - H:i:s", time());
    mysql_query("UPDATE profil SET user='$user', image='$newname',dir='$til_large',image_small='$newname',small_dir='$til_small',dato='$dato',kommentar='$kommentar' WHERE brugernavn = '".$user."'");
  echo"<b>Dit Profil billede er nu overført!</b>";
}
else
{
    echo "Ikke et godkendt billede format: (jpeg, jpg, jpe)";
}

?>

PS: Ikke testet overhovedet.
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:38 #8
ok..Jeg tester..1000 tak for din hjælp indtil videre:D
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:47 #9
Den oploader fint fint men kun til dette bibliotek : /community/profil/
Billeder bliver kaldt : billede 004 og billede 03.jpg..
Men de bliver ikke sat ind i mysql..:S underligt
1000 tak..Indtil videre
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:47 #10
Det går nok! :o)
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:48 #11
ps.BIllederne bliver også kun resizet til 165 x 124
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:48 #12
Disse skal rettes:
$til_large = $konfiguration['upload_bibliotek'] . $_FILES['upfil']['name'];
$til_small = $konfiguration['upload_bibliotek'] . $_FILES['upfil']['name'];
til:
$til_large = $konfiguration['upload_large'] . $_FILES['upfil']['name'];
$til_small = $konfiguration['upload_small'] . $_FILES['upfil']['name'];
Avatar billede jakobdo Ekspert
12. marts 2006 - 21:49 #13
Resizingen sker med ratio.
Så et billede som er 1000*500 ikke kan blive 200*200, men det vil så blive:
200*100
1000/200 = 5!
500/5 = 100px;
så 200*100.
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:53 #14
Okay..Fedt nok:D
Avatar billede jens12 Nybegynder
12. marts 2006 - 21:58 #15
Men hvordan får jeg den til at billedet bare bliver til et tal ? og ikke billede 04 o.s.v?
Avatar billede jakobdo Ekspert
12. marts 2006 - 22:02 #16
Du har lavet denne kode:
$newname = rand(100000, 999999);
Den laver et nummer.
Hvad vil du have din filer skal hedde da?
Avatar billede jens12 Nybegynder
12. marts 2006 - 22:05 #17
Hmm..
Nu har jeg lige prøvet at oploade et billede nu siger den :
Warning: imagejpeg() [function.imagejpeg]: SAFE MODE Restriction in effect. The script whose uid is 38564 is not allowed to access / owned by uid 0 in /web/www/frac/users/mailwithfriends/community/profil/oploadet_profpicture.php on line 19

Warning: imagejpeg() [function.imagejpeg]: Invalid filename in /web/www/frac/users/mailwithfriends/community/profil/oploadet_profpicture.php on line 19
Desværre det store billede ikke generet!
--------------------------------------------------------
Og den laver ikke den til et nyt navn..
Avatar billede jens12 Nybegynder
12. marts 2006 - 22:08 #18
Underlig:S
Avatar billede jakobdo Ekspert
12. marts 2006 - 22:09 #19
Ok, prøv lige inden koden:
//Lav det store billede...
at tilføj:

/* Saa koerer vi */
if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til_large);
} else {
  copy($fra, $til_large);
}
og smid så:
resize($til_large,$til_large,$konfiguration['max_width'],$konfiguration['max_height']) or die("Desværre det store billede ikke generet!");
Avatar billede jakobdo Ekspert
12. marts 2006 - 22:09 #20
Og det samme med small selvfølgelig.
Avatar billede jens12 Nybegynder
12. marts 2006 - 22:11 #21
Skal jeg så slette :
resize($til_large,$til_large,$konfiguration['max_width'],$konfiguration['max_height']) or die("Desværre det store billede ikke generet!"); ??
Avatar billede jakobdo Ekspert
12. marts 2006 - 22:13 #22
Måske vi lige skulle debugge en smule.
Prøv at udskriv:

$fra, $til_large og $til_small
For lige at se de indeholder hvad vi forventer.

PS: Sengetid for mig nu.
Avatar billede jens12 Nybegynder
12. marts 2006 - 22:15 #23
Ok..Så må vi skrive imorgen:D
1000 tak for hjælpen indtil videre:D
Avatar billede jakobdo Ekspert
13. marts 2006 - 07:04 #24
NU skal vi jo bare have skidtet til at virke! :o)
Avatar billede jens12 Nybegynder
13. marts 2006 - 11:51 #25
Ja..:) Det skal vi
Avatar billede jakobdo Ekspert
13. marts 2006 - 13:38 #26
Add mig lige på msn: jakobdo [at] hotmail {dot} com
Så kigger vi på det i aften...
Avatar billede jens12 Nybegynder
13. marts 2006 - 13:51 #27
Genialt tak :D
Avatar billede jens12 Nybegynder
13. marts 2006 - 18:56 #28
Løsningen blev :
<?php
session_start();
include("connect.php");

function resize( $filename, $newfilename, $maxw, $maxh )
{
    list($width, $height, $filetype, $attr) = getimagesize($filename);
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
   
    return file_exists($newfilename);
}

// TIL DEBUG
/*
echo "DEBUG - FILES";
echo "<pre>";
print_r($_FILES);
echo "</pre>";

echo "DEBUG - POST";
echo "<pre>";
print_r($_POST);
echo "</pre>";

echo "DEBUG - SESSION";
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
*/

$konfiguration['upload_large']        = "/web/www/frac/users/mailwithfriends/community/profil/large/";
$konfiguration['upload_small']        = "/web/www/frac/users/mailwithfriends/community/profil/small/";
$konfiguration['max_stoerrelse']    = 80*1024; //80KB
$konfiguration['max_width']            = 450; //Ja, tilladte max. højde ved large
$konfiguration['max_height']            = 450; //Tilladte max. bredde ved large
$konfiguration['small_width']        = 165; //Ja, tilladte max. højde ved small
$konfiguration['small_height']        = 130; //Tilladte max. bredde ved small

$tilladte_filtyper = array("jpeg", "jpg", "jpe");//tilladte filtyper. Tilføj fx. "image/gif"

$fra = $_FILES['upfil']['tmp_name'];
$extension = strtolower(end(explode('.',$_FILES['upfil']['name'])));
//$uniqueFile = $_SESSION['id'] . "_" . md5(uniqid(rand(), true));

$til_large = $konfiguration['upload_large'] . "profil_" . $_SESSION['id'] . "." . $extension;
$til_small = $konfiguration['upload_small'] . "profil_" . $_SESSION['id'] . "." . $extension;

//$til_large = $konfiguration['upload_large'] . $_FILES['upfil']['name'];
//$til_small = $konfiguration['upload_small'] . $_FILES['upfil']['name'];

$fil_stoerrelse = filesize($fra)/1024;//Omregner til KB
if($fil_stoerrelse > $konfiguration['max_stoerrelse'])
{
    die("Desværre - filen er for stor. Vi accepterer kun " .
    $konfiguration['max_stoerrelse'] . "kb, og din fil fylder " .
    ceil($fil_stoerrelse, 1) . " kb");
}
   
//Er fil-typen blandt tilladte?
if (in_array($extension,$tilladte_filtyper))
{
    //Lav det store billede...
    resize($fra,$til_large,$konfiguration['max_width'],$konfiguration['max_height']) or die("Desværre det store billede ikke generet!");

            //Lav det lille billede...
    resize($fra,$til_small,$konfiguration['small_width'],$konfiguration['small_height']) or die("Desværre det lille billede ikke generet!");
   
    $kommentar = mysql_real_escape_string(strip_tags($_POST['kommentar']));
    $sql = "INSERT INTO profil(id,image,small_image,dato,kommentar) VALUES(".$_SESSION['id'].",'".basename($til_large)."','".basename($til_small)."',NOW(),'".$kommentar."') ON DUPLICATE KEY UPDATE dato=NOW(), kommentar='".$kommentar."';";
    echo "DEBUG: " . $sql . "<br>";
    mysql_query($sql) or die("Åh nej, fejl igen... DER: " . mysql_error());
  echo"<b>Dit Profil billede er nu overført!</b>";
}
else
{
    echo "Ikke et godkendt billede format: (jpeg, jpg, jpe)";
}

?>
Avatar billede jens12 Nybegynder
13. marts 2006 - 18:56 #29
Og 1000 gange tak Jakobdo!
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