Avatar billede flol Nybegynder
03. januar 2006 - 14:00 Der er 16 kommentarer og
1 løsning

fejl i upload

Er ved at lave et uploade system, men da jeg blev færdig siger den der er fejl i denne kodning:

<?
class cls_fileupload {
  var $maxfilesize;
  var $filetype;

  function upload ($filefield) {

    // Først henter vi vores felter i arrayet $_FILES
    $filefield = $_FILES[$filefield]['tmp_name'];
    $filefield_name = $_FILES[$filefield]['name'];
    $filefield_size = $_FILES[$filefield]['size'];
    $filefield_type = $_FILES[$filefield]['type'];
   
    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {
     
      $data = addslashes(fread(fopen($filefield, "r"), filesize($filefield)));

      // Så gemmer vi filen i vores database
      mysql_query("INSERT INTO filer (name, data, size, type) \n VALUES
      (´".$filefield_name."´, ´".$data."´, ´".$filefield_size."´, ´".$filefield_type."´)");
  }

  function vis ($id) {
    // Her henter vi vores data
    $resultat = mysql_query("SELECT data, type from filer where id = ".$id);
    while($raekke = mysql_fetch_array($resultat)) { $svar[] = $raekke; }
   
    // Hvis $id ikke findes i databasen
    if (sizeof($svar) == 0) {
      echo "Kunne ikke finde filen med id ".$id." i databasen!!!";

    } else {
      // Hvis $id findes i databasen
      // Træk værdierne ud
      extract($svar[0]);

      // sæt typen af indholdet (Husk at der ikke må være sendt noget før!)
      header("content-type: ".$type);

      // Udskriv filen
      echo $data;
    }
  }

  function slet ($id) {
    // Slet $id
    mysql_query("DELETE FROM filer WHERE id = ".$id.";");
  }
}
// Nu mangler vi bare at lave en henvisning til vores klasse
$fileupload = new cls_fileupload;
?>

kan i se nogen fejl?, for jeg kan ikke :S
det den skriver er:
Parse error: parse error in c:\program files\easyphp1-8\www\upload\cls_fileupload.php on line 15
Avatar billede michael_stim Ekspert
03. januar 2006 - 14:05 #1
isset($this->type...
er det ikke filetype
Avatar billede flol Nybegynder
03. januar 2006 - 14:10 #2
det er et uploadesystem jeg har fundet, jo det ser ud til at det er filetype men den siger stadig at der er fejl i linje 15.. :S
Avatar billede udvikler Nybegynder
03. januar 2006 - 14:19 #3
det jo klart ændre

    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {

til

    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    if (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 14:19 #4
Du mangler vel bare en højreparentes i if-sætningen
Avatar billede udvikler Nybegynder
03. januar 2006 - 14:20 #5
en tjeck-sætning kan ikke starte med AND - den kan godt indeholde det, men ikke starte med det.
Avatar billede michael_stim Ekspert
03. januar 2006 - 14:24 #6
-aco->>Der er fortsættelsen af if-vilkåret.
Det er som eric siger. Der mangler en højreparantes (syndes ellers jeg havde talt dem)
Avatar billede flol Nybegynder
03. januar 2006 - 14:27 #7
det er rigtig at der bare mangler en parantes..
arrh men nu skriver den fejl i linje 54 :S
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 14:27 #8
Og for lige at præcisre hvor den http://www.dsn.dk/cgi-bin/ordbog/ronet?M=1&P=parentes mangler

Ret

    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size) {

til

    if ((isset($this->type) != true or eregi("(.)+\\.(".$this->filetype.")",$filefield_name))
    and (isset($this->maxfilesize) != true or $this->maxfilesize <= $filefield_size)) {
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 14:28 #9
Ja, der mangler også en }
Avatar billede udvikler Nybegynder
03. januar 2006 - 14:31 #10
ja okay undskyld, talte ellers også først paranteserne, men talte åbenbart forkert :)
Avatar billede flol Nybegynder
03. januar 2006 - 14:32 #11
undskyld men er blevet helt forviret af at kigge på så lang tid,
hvor mangler der en }
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 15:10 #12
Prøv at sætte den lige før linien:  // Nu mangler...
Avatar billede flol Nybegynder
03. januar 2006 - 15:13 #13
Så kommer den med den her fejl:

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\program files\easyphp1-8\www\upload\cls_fileupload.php on line 42


heh :P
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 15:14 #14
Mon dog den gør, hvis du gør som foreslået. Hvad er din kode nu?
Avatar billede michael_stim Ekspert
03. januar 2006 - 15:15 #15
eric>>Mener du den der afslutter enten if eller den første funktion?
Skal den så ikke være over:
function vis ($id) {
Eller er det mig der tænker forkert?
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 15:15 #16
Jo, der function upload, der mangler en }
Avatar billede flol Nybegynder
14. august 2006 - 13:42 #17
lukker!!!
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