Avatar billede xeox Nybegynder
12. december 2005 - 11:28 Der er 14 kommentarer og
1 løsning

hjælp til galleri

Hej eksperter

Kan i se hvorfor den ikke vil ligge et billede op ?

if(isset($_POST['op'])) {
require "db.php";
$id = $_GET['id'];
$query3 = mysql_query("SELECT * FROM cms_gall_gall WHERE id='$id'");
$row3 = mysql_fetch_array($query3);
$sti = $row3['sti'];
if (isset($_FILES['upfile'])) {
  $filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream"); 
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
    echo"<table width=\"450\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF8282\">
  <tr>
    <td width=\"20\" valign=\"middle\" bgcolor=\"f4f3f3\"><img src=\"images/warning.gif\" width=\"23\" height=\"25\"></td>
    <td width=\"430\" valign=\"middle\" bgcolor=\"#f4f3f3\" class=\"godkendt_txt\">Ingen billeder blev lagt op</td>
  </tr>
</table><br>";
  } elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "<table width=\"450\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF8282\">
  <tr>
    <td width=\"20\" valign=\"middle\" bgcolor=\"f4f3f3\"><img src=\"images/warning.gif\" width=\"23\" height=\"25\"></td>
    <td width=\"430\" valign=\"middle\" bgcolor=\"#f4f3f3\" class=\"godkendt_txt\">Denne film kan ikke oplægges</td>
  </tr>
</table><br>";
  }
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {
    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '$sti';
      $ulfile = $uldir.basename($_FILES['upfile']['name']);
      move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile);
    }
  }
}
$adr = $HTTP_HOST;
$adr2 = $row3['sti'];
$sti2 = str_replace("../", "", $adr2);
$upfile2 = "http://$adr/otcms/$sti2/" . $_FILES['upfile']['name'];
$url = $upfile2;
$bruger = $_SESSION['bruger'];
$komm = addslashes($_POST['komm']);
$galleri = $_GET['id'];
mysql_query("INSERT INTO cms_gall_pics (url, bruger, komm, galleri) VALUES ('$url', '$bruger', '$komm', '$galleri')")or die(mysql_error());
echo "<table width=\"450\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF8282\">
  <tr>
    <td width=\"20\" valign=\"middle\" bgcolor=\"f4f3f3\"><img src=\"images/godkend.gif\" width=\"23\" height=\"25\"></td>
    <td width=\"430\" valign=\"middle\" bgcolor=\"#f4f3f3\" class=\"godkendt_txt\">Billedet blev lagt op!</td>
  </tr>
</table><br>";
}
?>

Jeg tror det har noget med den ikke får sat sin if (isset($_FILES['upfile'])) {

igang,

Men den går fint ned og lægger noget op i min DB.. dog ikke navnet på filen som bliver lagt op.. så det er jo os et tegn på den ikke rigtig kommer derind..

Min form ser sådan herud:

                    <form action="galleri_redi_op.php?id=<? echo $_GET['id'] ?>" method="post">
                    <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
                    <input type="hidden" name="op" value="op">
                  <table width="93%" height="38" border="0" align="center" cellpadding="0" cellspacing="0" class="tekst_normal">
                    <tr>
                      <td height="19" colspan="2" class="table_site_overs"><div align="left">Tilf&oslash;j et billede </div></td>
                    </tr>
                    <tr>
                      <td width="22%" valign="top" class="table_site_menu"><span class="style_link">Billede:</span></td>
                      <td width="78%" class="table_site_menu"><input name="upfile" type="file" class="input" id="upfile" size="25">
                        <input name="op" type="hidden" id="op" value="op"></td>
                    </tr>
                    <tr>
                      <td valign="top" class="table_site_menu"><span class="style_link">Tekst:</span></td>
                      <td class="table_site_menu"><textarea name="komm" cols="43" rows="10" class="input" id="komm"><?php echo $row['komm']; ?></textarea></td>
                    </tr>
                    <tr>
                      <td valign="top" class="table_site_menu">&nbsp;</td>
                      <td class="table_site_menu"><a onClick="submit();" onMouseOver="MM_swapImage('Image1','','images/gem_over.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="images/gem.gif" alt="Gem" name="Image1" width="32" height="32" border="0" id="Image1" class="cursor"></a></td>
                    </tr>
                  </table>
</form>


Håber i kan hjælpe
Avatar billede jakobdo Ekspert
12. december 2005 - 12:34 #1
Jeg er sgu for doven til at kigge alt det kode igennem!
Du kunne evt starte med lidt debug.
Evt efter hver gang du kalder en funktion, kunne du lave:
echo "Nu jer jeg før funktionen: ...";
echo "Nu jer jeg efter funktionen: ...";
Skrive nogle variabler ud, og se om de indeholder hvad du rent faktisk forventer.
Avatar billede xeox Nybegynder
12. december 2005 - 12:41 #2
ja men hvis jeg siger:
if (isset($_POST['upfile'])) {
i stedet for
if (isset($_FILEs['upfile'])) {

Så meddeller den fejl ved filetyper. og det kan jeg ik helt forstå :/
Avatar billede jakobdo Ekspert
12. december 2005 - 12:46 #3
Det skal være: $_FILES[]
Avatar billede xeox Nybegynder
12. december 2005 - 12:52 #4
ja ikke ?..

men der er det så ligesom om den ikke kommer ind i den øverste if (isset($_FILEs['upfile'])) { ..

Men har du måske en anden mulighed man kan skrive en kode på som denne? bare der hvor directory er, der skal den have infoet fra tabellen db.cms_gall_gall.sti ..
Avatar billede jakobdo Ekspert
12. december 2005 - 13:06 #5
Hvorfor ikke rette:
if (isset($_FILES['upfile']))
til:
if($_FILES['upfile']['size']>0)
Avatar billede xeox Nybegynder
12. december 2005 - 13:10 #6
kan jeg så senere godt lave så den kan lave thmb?
Avatar billede jakobdo Ekspert
12. december 2005 - 13:15 #7
Jaja! :o)
Avatar billede xeox Nybegynder
12. december 2005 - 13:31 #8
yes så har jeg fået den til at virke.. Vil du smide et svar?

Og hvis jeg så opretter endnu et spørgsmål, har du så tid til at hjælpe mig med at lave så billederne gemmes som thmbs?
Avatar billede jakobdo Ekspert
12. december 2005 - 13:37 #9
Svar!

Og til thumbs kan du bruge denne resize funtion:

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $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 );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}
Avatar billede xeox Nybegynder
12. december 2005 - 13:47 #10
Okay:
function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $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 );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}
  $filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream"); 
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
    echo"<table width=\"450\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF8282\">
  <tr>
    <td width=\"20\" valign=\"middle\" bgcolor=\"f4f3f3\"><img src=\"images/warning.gif\" width=\"23\" height=\"25\"></td>
    <td width=\"430\" valign=\"middle\" bgcolor=\"#f4f3f3\" class=\"godkendt_txt\">Billedet blev ikke lagt op</td>
  </tr>
</table><br>";
  } elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "<table width=\"450\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF8282\">
  <tr>
    <td width=\"20\" valign=\"middle\" bgcolor=\"f4f3f3\"><img src=\"images/warning.gif\" width=\"23\" height=\"25\"></td>
    <td width=\"430\" valign=\"middle\" bgcolor=\"#f4f3f3\" class=\"godkendt_txt\">Lagde du en *.png fil op, så kig bort fra denne besked.<br> Ellers: Denne fil kan ikke oplægges</td>
  </tr>
</table><br>";
  }
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {
    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
    $sti = $row3['sti'] ."/";
      $uldir = $sti;
      $ulfile = $uldir.basename($_FILES['upfile']['name']);
      $thumbnavn = "thmb_" . ['name'];
      move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile);
      copy($_FILES['upfile'], "$sti/$thumbnavn");
      $fil_at_skalere = "$sti/$thumbnavn";
      resize($fil_at_skalere,110,120);
      $handle = opendir($sti);
      while (false !== ($fil = readdir($handle))) {
      if ($fil != "." && $fil != "..") {
      $billedeArray[] = $fil;
     
}
}
    }
  }
}


noget ala dette? (det er det nederste jeg har sat sammen)
Avatar billede jakobdo Ekspert
12. december 2005 - 13:50 #11
Det er muligt at det vil virke!
Kan ikke lige gennemskue det nu!
Avatar billede jakobdo Ekspert
12. december 2005 - 13:50 #12
Og tak for point forresten!
Avatar billede xeox Nybegynder
12. december 2005 - 13:58 #13
det var så lidt..
men jeg prøver lige, og ellers så opretter jeg en ny tråd :)
Avatar billede jakobdo Ekspert
12. december 2005 - 13:59 #14
Done deal!
Avatar billede xeox Nybegynder
12. december 2005 - 14:33 #15
takker igen.

-lukket-
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