Avatar billede aros Nybegynder
02. maj 2005 - 14:54 Der er 10 kommentarer og
2 løsninger

Problemer med billed-upload

Hejsa
Jeg har lidt problemer med flg. script:

<?
if (is_uploaded_file($upfile))
      {
          $filename = "..\img\film\$upfile_name" ; // f.eks D:\www\billeder\\$upfile_name"
     
          if (file_exists($filename))
              {
                echo "Filen findes allerede, omdøb filnavnet." ;
            }
            else
            {
            query = "insert into film set billede='".$_files['billede']['name']."'";
$result1 = mysql_query($query, $fminfo) or die(mysql_error());
}
{
$tempfile = $_files['billede']['tmp_name'];
$destination = "../img/film/{$_files['billede']['name']} ";
copy($tempfile, $destination);
}
            }

}
else
{
?>

Jeg får en parse error på flg. linie:
query = "insert into film set billede='".$_files['billede']['name']."'";

Hvad har jeg gjort galt? jeg har brugt en billed-upload, som jeg har fundet her, men jeg vil gerne have den til at skrive til min mySQL-db også, så jeg kan hente billedet frem sammen med den relevante tekst.
Avatar billede sone Nybegynder
02. maj 2005 - 14:57 #1
Syntaksen for INSERT er:
INSERT INTO tabelnavn (felt1, felt2) VALUES (værdi1, værdi2)
Avatar billede kasperbn Nybegynder
02. maj 2005 - 14:58 #2
Grunden til du får en parser-error er fordi der er en syntaxfejl. I dit tilfælde har du glemt et $-tegn forand query:

query = "insert into film set billede='".$_files['billede']['name']."'";
til
$query = "insert into film set billede='".$_files['billede']['name']."'";
Avatar billede kasperbn Nybegynder
02. maj 2005 - 15:05 #3
og som sone skriver skal du lave din query om til:
"insert into film (billede) VALUES ('".$_files['billede']['name']."')";
Avatar billede aros Nybegynder
02. maj 2005 - 15:21 #4
hmm... ser ud til at det virker, men nu får jeg parse error på det afsluttende </html>.. er møg forvirret, smider lige hele koden op:
<?php require_once('../Connections/fminfo.php');
mysql_select_db($database_fminfo, $fminfo);
?>
<?php
mysql_select_db($database_fminfo, $fminfo);
$query_rsGenre = "SELECT * FROM filmgenre";
$rsGenre = mysql_query($query_rsGenre, $fminfo) or die(mysql_error());
$row_rsGenre = mysql_fetch_assoc($rsGenre);
$totalRows_rsGenre = mysql_num_rows($rsGenre);
?>
<!-- TEST_INIT //-->
<!-- TEST_RENDER //-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">

<title>Film & Musik INFO We make you sure</title>
<script src="../frontend.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../frontend.css">
<base target="_self">
</head>

<body bgcolor="#BABBC" background="../img/firkant.gif" text="#000000" link="#AE2D2D" vlink="#AE2D2D" alink="#AE2D2D" topmargin="20" leftmargin="0" marginwidth="0" marginheight="0">
<?
if (is_uploaded_file($upfile))
      {
          $filename = "..\img\film\$upfile_name" ; // f.eks D:\www\billeder\\$upfile_name"
     
          if (file_exists($filename))
              {
              echo "Filen findes allerede, omdøb filnavnet." ;
            }
            else
            {
            $query = "insert into film (billede) VALUES ('".$_files['billede']['name']."')";
$result1 = mysql_query($query, $fminfo) or die(mysql_error());
}
{
$tempfile = $_files['billede']['tmp_name'];
$destination = "../img/film/{$_files['billede']['name']} ";
copy($tempfile, $destination);
}
            }

else
{
?>
<div align="center">
  <center>
<table border="0" cellspacing="0" cellpadding="0" width="771" background="../img/CMLfinal2.png" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td colspan="5" style="height:120px;"  background="../img/CMLfinal.png" width="771">
<table border="0" width="528">
  </table></td>
</tr>
<tr>
<td colspan="5" style="height:1px;"  bgcolor="#AE2D2D" width="771">
<img src="../img/leer.gif" alt="" width="1" height="1" /></td>
</tr>
<tr>
<td valign="top" width="149" bgcolor="#ffffff">
<?php include ("../menu.inc"); ?>
<link rel="stylesheet" type="text/css" href="../frontend.css">
  </center>
</div></td>
<td valign="top" width="1" bgcolor="#AE2D2D">
<img src="../img/leer.gif" alt="" width="1" height="1" /></td>
<td valign="top" width="470" bgcolor="#ffffff"><div style="border-left: 1px dotted #ffffff;margin-left:-6px;">
<div style="padding:10 px;">
  <p><table width="100%"  border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <td>Tilf&oslash;j film
        <form action="" method="post" enctype="multipart/form-data" name="film" id="film">
          <table width="100%"  border="0" cellspacing="0" cellpadding="2">
            <tr>
              <td width="18%">Titel:</td>
              <td width="82%"><input name="titel" type="text" id="titel" size="60"></td>
            </tr>
            <tr>
              <td>Billeder:</td>
              <td><input name="billed" type="file" id="billed" size="60"></td>
            </tr>
            <tr>
              <td>Instrukt&oslash;r:</td>
              <td><input name="instructor" type="text" id="instructor" size="60"></td>
            </tr>
            <tr>
              <td>Skuespillere:</td>
              <td>                <input name="skuespillere" type="text" id="skuespillere" size="60"></td></tr>
            <tr>
              <td>Handling:</td>
              <td><textarea name="handling" cols="45" rows="6" id="handling"></textarea></td>
            </tr>
            <tr>
              <td>Kommentar:</td>
              <td><textarea name="kommentar" cols="45" rows="6" id="kommentar"></textarea></td>
            </tr>
            <tr>
              <td>Bed&oslash;mmelse:</td>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td>Genre:</td>
              <td><select name="genre" id="genre">
                <?php
do { 
?>
                <option value="<?php echo $row_rsGenre['Genre']?>"<?php if (!(strcmp($row_rsGenre['Genre'], $row_rsGenre['Genre']))) {echo "SELECTED";} ?>><?php echo $row_rsGenre['Genre']?></option>
                <?php
} while ($row_rsGenre = mysql_fetch_assoc($rsGenre));
  $rows = mysql_num_rows($rsGenre);
  if($rows > 0) {
      mysql_data_seek($rsGenre, 0);
      $row_rsGenre = mysql_fetch_assoc($rsGenre);
  }
?>
                            </select></td>
            </tr>
            <tr>
              <td>Sprog</td>
              <td><input name="sprog" type="text" id="sprog" size="60"></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
              <td><input name="gem" type="submit" id="gem" value="Gem">
                  <input name="nulstil" type="reset" id="nulstil" value="Nulstil"></td>
            </tr>
          </table>
        </form></td>
    </tr>
  </table><br>
  <img src="../img/leer.gif" width="1" height="2" alt=""><br/>
  </p>
  <p/><p align="center">
  </div>
</div></td>
<td valign="top" width="1" bgcolor="#AE2D2D">
<img src="../img/leer.gif" alt="" width="1" height="1" /></td>
<td valign="top" width="150" bgcolor="#ffffff"><div style="padding:4px;text-align:center;font-size:9px;">
<? include("../menu2.inc"); ?>

    </td>
  </tr>
</table>

  </center>
</div></td>
</tr>
<tr>
<td colspan="5" style="height:1px;"  bgcolor="#AE2D2D" width="771">
<img src="../img/leer.gif" alt="" width="1" height="1" /></td>
</tr>
<tr>
<td colspan="5" style="height:20px;"  bgcolor="#AE2D2D" width="771"><div align="center">
  <center>
  <table border="0" cellspacing="1" width="770">
    <tr>
      <td>&nbsp;</td>
    </center>
    <td width="400">
      <p align="right"><font color="#FFFFFF">Copyright<span lang="da"> </span>
      <span style="FONT: 9px Verdana">©</span><span lang="da">
      <a href="http://www.fminfo.dk" style="text-decoration: none">
      <font color="#FFFFFF">fminfo.dk</font></a></span> 2005<span lang="da">
      </span></font></td>
  </tr>
  </table>
</div></td>
</tr>
</table>
</center>
</div>
</body>
</html>
Avatar billede kasperbn Nybegynder
02. maj 2005 - 18:46 #5
Hvis du får en parse-error for enden af din kode, er det højst sandsynligt fordi du mangler at lukke en flow-controller. Du mangler at lukke din "else" (linie 47). Smid <?}?> for enden af dokumentet, eller hvor du nu vil have den til at lukke.
Avatar billede aros Nybegynder
02. maj 2005 - 19:54 #6
Det virkede, men nu brokker den sig over min upload, jeg får flg. fejl:
Notice: Undefined variable: upfile in c:\programmer\easyphp1-8\www\manager\film_new.php on line 27
det er denne linie:
if (is_uploaded_file($upfile))

Er det fordi, det er det forkerte sted, jeg har placeret den? Den går ind og tjekker om der er valgt en fil i linie 83. Jeg har altid fået at vide, at den funktion skal placeres lige efter <body>-tag'et.

Hvis det er, vil jeg gerne oprette et nyt spørgsmål til dette, hvis du ønsker flere point.
Avatar billede kasperbn Nybegynder
02. maj 2005 - 20:08 #7
Du har ikke nogen variabel der hedder "upfile".
Tjek din html-form. Mit umiddelbare bud ville være at du skal tjekke om navnet på din submit-knap er der og det er "gem".
Avatar billede aros Nybegynder
02. maj 2005 - 20:22 #8
Min submit knap hedder gem, den er i linie 127
Lige et "dumt" spørgsmål, den variabel, som jeg har kommet til at kalde "upfile", hvad burde den henvise til? Det jeg mener er, at det er noget kode, jeg har klippet et andet sted fra, og kan ikke se, om jeg er kommet til at kalde den noget forkert.
Håber du forstår hvad jeg mener
Avatar billede kasperbn Nybegynder
02. maj 2005 - 22:13 #9
"upfil" burde henvise til "billede".

Det er nok ikke gem du skal tjekke efter alligevel. Det er nærmere "billede" du skal tjekke efter. Efter at du har indtastet en film og trykket på din submitknap ryger du ind på samme side, men nu er alle dine input kommet med som variabler. Variabler er navngivet efter det der står i den pågældende input-name. Derfor vil det du har valgt i input-billede være tilgængelig i variablen "$billede".
Du skal ændre "$upfil" til "$billede".

Desuden skal du ændre følgende:

------------------------------------
if (is_uploaded_file($upfile))
      {
          $filename = "..\img\film\$upfile_name" ; // f.eks D:\www\billeder\\$upfile_name"
     
          if (file_exists($filename))
              {
              echo "Filen findes allerede, omdøb filnavnet." ;
            }
            else
            {
            $query = "insert into film (billede) VALUES ('".$_files['billede']['name']."')";
$result1 = mysql_query($query, $fminfo) or die(mysql_error());
}
{
$tempfile = $_files['billede']['tmp_name'];
$destination = "../img/film/{$_files['billede']['name']} ";
copy($tempfile, $destination);
}
            }
--------------------------------

Til

------------------------------------
if (is_uploaded_file($billede))
      {
          $filename = "..\img\film\$billede" ;
     
          if (file_exists($filename))
              {
              echo "Filen findes allerede, omdøb filnavnet." ;
            }
            else
            {
            $query = "insert into film (billede) VALUES ('".$_files['billede']['name']."')";
$result1 = mysql_query($query, $fminfo) or die(mysql_error());
}
{
$tempfile = $_files['billede']['tmp_name'];
$destination = "../img/film/{$_files['billede']['name']} ";
copy($tempfile, $destination);
}
            }
--------------------------------

Og du skal også ændre:
<input name="billed" type="file" id="billed" size="60">

Til

<input name="billede" type="file" id="billede" size="60">
Avatar billede aros Nybegynder
03. maj 2005 - 06:28 #10
Jeg har ændret alt det du har foreslået, men den kommer stadig med fejl i linie 27
Avatar billede aros Nybegynder
03. maj 2005 - 06:32 #11
Det kan godt være, at jeg spørger dumt, men kan det være fordi at selve variablen først bliver defineret længere nede?? Det er jo først i linie 85, den bliver defineret
Avatar billede aros Nybegynder
04. maj 2005 - 13:27 #12
Ingen der kan hjælpe?
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