Avatar billede eksplayer Nybegynder
28. marts 2004 - 17:48 Der er 29 kommentarer og
1 løsning

Indsæt php i html

Hej

Jeg har teste webcafe's uploader og synes den er passende til mit behov. Men jeg vil gerne have den implementeret på en hjemmeside i en celle i en tabel. Hvordan gør man det?

Jeg har prøvet at kopiere hele php-scriptet ind i cellen, men så får jeg forskellige fejl meddelser alla:

 
Warning: Cannot modify header information - headers already sent by (output started at /STORE/mitdomain.dk/public_html/crap/index.php:7) in /STORE/mitdomain.dk/public_html/crap/index.php on line 116

Hvad skal jeg gøre?

Skal I se noget kode?
Avatar billede Slettet bruger
28. marts 2004 - 17:51 #1
hvor mange linier er scriptet i alt?
Avatar billede Slettet bruger
28. marts 2004 - 17:55 #2
det er i hvert fald muligt at kopiere det ind i cellen, du skal dog kun kopiere

<form action="filnavn.php" method="post" enctype="multipart/form-data">
  <b>Fil til upload:</b>
  <input type="file" name="upfil" />
  <input type="submit" value="upload" />
</form>
Avatar billede eksplayer Nybegynder
28. marts 2004 - 17:55 #3
177 incl kommentarer
Avatar billede eksplayer Nybegynder
28. marts 2004 - 17:56 #4
hvad med resten?
Avatar billede Slettet bruger
28. marts 2004 - 17:56 #5
det andet skal du kopiere ind i den fil du vil have det uploadede til at blive vist i
Avatar billede Slettet bruger
28. marts 2004 - 17:56 #6
det står der jo også inde på webcafe ;)
Avatar billede olebole Juniormester
28. marts 2004 - 17:57 #7
<ole>

Antal af linier er ligeså interessant, som mængden af græs de danske køer spist i fjor  :)

Fejlen opstår, fordi du i linie 116 prøver at sætte en header (nok en cookie - eller location-header), selvom du allerede har skrevet noget HTML ud i linie 7

/mvh
</bole>
Avatar billede Slettet bruger
28. marts 2004 - 17:58 #8
jeg tænkte bare, at hvis koden var 117 linier, ville fejlen være et manglende
"}"
den fejl har jeg i hvert fald selv haft ;)
Avatar billede eksplayer Nybegynder
28. marts 2004 - 17:58 #9
Jeg poster lige koden fordi der står også noget foran <form action osv som jeg er lidt i tvivl om. Here goes...

<?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"] = "./upload";

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


/**
* 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);
  }

  header("Location: " . $_SERVER["PHP_SELF"]);
  exit;

} else {

  /**
  * Intet tegn paa upload, saa vi viser bare listen over filer
  * og HTML-formularen til nye uploads.
  */
  $indhold = listFiler($konfiguration["upload_bibliotek"]);
  $indhold .= bygFormular($_SERVER["PHP_SELF"]);
  $output = bygSide("E J E R L A U G E T . D K", $indhold);

}


/**
* Skriver ud til browseren
*/
echo $output;
exit;



/**************************************************\
**              Hjaelpefunktioner              **
\**************************************************/

function bygSide($titel, $indhold) {

  /**
  * Pakker indholdet ind i lidt formalia
  */
  return '<html>
            <head><title>' . $titel . '</title></head>
<style type="text/css">

.overskrift {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14 px;
    font-weight: bold;


}
.tekst {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 13 px;

}

</style>
            <body bgcolor="#ffffff">
            ' . $indhold . '</body>
          </html>
        ';

}

function bygFormular($action) {

  $formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
                <table border="0" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#ffffff" class="tekst"><br><br><b>Upload fil:</b></p></td>
                    <td bgcolor="#ffffff"><input type="file" name="upfil" />&nbsp;&nbsp;<input type="submit" value="upload" /></td>
                  </tr>
                 
                </table>
              </form>
              ';

  return "<h2><p class=\"overskrift\"></h2></p>" . $formular;

}

function listFiler($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    /**
    * Denne syntaks er forklaret i PHP-manualen:
    * http://www.php.net/manual/en/function.readdir.php
    */
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\"><p class=\"tekst\">$fil</p></a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer p&aring; lager</li>";
    }
    return "<h2><p class=\"overskrift\">Dokumenter:</p></h2><ul>"
. $liste ."


</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }

}

?>
Avatar billede Slettet bruger
28. marts 2004 - 17:58 #10
men hvad står der i linie 7 og i linie 116?
Avatar billede Slettet bruger
28. marts 2004 - 18:00 #11
i stedet for /* er det så ikke lidt mere overskueligt med / foran hver linie?
Avatar billede olebole Juniormester
28. marts 2004 - 18:00 #12
Denne linie:
  header("Location: " . $_SERVER["PHP_SELF"]);
går ikke, hvis du sætter scriptet ind i noget HTML. Så er du allerede begyndt at skrive HTML ud til siden - og så kan man ikke sætte en header
Avatar billede Slettet bruger
28. marts 2004 - 18:01 #13
kan det ikke passe at headeren altid skal være aller aller aller øverst?
Avatar billede Slettet bruger
28. marts 2004 - 18:02 #14
Jeg er en smule ny til php nemlig ;)
Avatar billede olebole Juniormester
28. marts 2004 - 18:02 #15
wicez >> Hvorfor er det dig, der svarer? Synes du selv, du har bidraget med noget - og i så fald, hvad?
Avatar billede Slettet bruger
28. marts 2004 - 18:03 #16
nej, jeg ved bare ikke hvad forskellen er...

det er anden dag jeg er herinde på experten
Avatar billede eksplayer Nybegynder
28. marts 2004 - 18:03 #17
6: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
116:  header("Location: " . $_SERVER["PHP_SELF"]);
Avatar billede Slettet bruger
28. marts 2004 - 18:04 #18
nå, jeg smutter nu, ses
Avatar billede muddi Praktikant
28. marts 2004 - 18:04 #19
wicez >> jo, medmindre du bruger "output buffering" (ob-funktionerne i php)
Avatar billede eksplayer Nybegynder
28. marts 2004 - 18:05 #20
Hvad så? skal jeg så tage dette:

$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
                <table border="0" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#ffffff" class="tekst"><br><br><b>Upload fil:</b></p></td>
                    <td bgcolor="#ffffff"><input type="file" name="upfil" />&nbsp;&nbsp;<input type="submit" value="upload" /></td>
                  </tr>
                 
                </table>
              </form>
...og kopiere det ind i min celle og resten op før hvor HTML'en starter?
Avatar billede muddi Praktikant
28. marts 2004 - 18:09 #21
eksplayer >> ja, det er rigtigt. koden der uploader filen behøver jo ikke at være sammen med formularen brugeren vælger filen fra. Bare sørg for at der ikke er noget output eller "blanke" linier inden dit første php-tag. Location-headeren og alle andre headers skal nemlig sendes til browseren inden der genereres output.
Avatar billede olebole Juniormester
28. marts 2004 - 18:09 #22
Få styr på, hvad en header er her:
  http://dk.php.net/header

Læg mærke til det, der står om 'ob_start()' og 'ob_end_flush()'
Avatar billede eksplayer Nybegynder
28. marts 2004 - 18:17 #23
Ok og så nogle af de dumme spørgsmål:

Er det ok at jeg også kopiere $formular = ' med ind i cellen? Hører det ikke til PHP-delen?
Og den resterende PHP - er den lige glad med at jeg bare trækker disse 9 linjer ud?
Avatar billede olebole Juniormester
28. marts 2004 - 18:20 #24
Det handler om én linie: Den jeg skrev til dig højere oppe i spm'et
Avatar billede eksplayer Nybegynder
28. marts 2004 - 18:49 #25
Jeg synes desværre ikke at jeg kan få det til at virke som jeg gerne vil have det til. Som det ser ud nu då kommer de uploadede filer frem - men man kan ikke uploade flere filer for upload-knapperne og upload-feltet er forsvundet. Og det samme er alt min egen grafik :(

Øv øv
Avatar billede Slettet bruger
28. marts 2004 - 18:57 #26
mange tak olebole
jeg kunne egentlig godt tænkem ig at give dig nogle point, hvordan kan jeg det?
Avatar billede eksplayer Nybegynder
28. marts 2004 - 19:20 #27
Vil det være for frækt at spørge om der er en der vil kigge på både php'en og html'en og mere eller mindre fortælle mig hvad jeg skal gøre skridt for skridt?
Avatar billede eksplayer Nybegynder
28. marts 2004 - 19:30 #28
Her kan i se html'en: http://www.nielsen78.dk/eksperten
Avatar billede Slettet bruger
28. marts 2004 - 19:44 #29
hmm
uden at vide det, ville jeg da tro at du skal indsætte den første kode i cellen,
og selve php koden skal indsættes i en anden php side

du skal også lige huske at ændre "filnavn.php" i htmlkoden til den side du lægger php koden ind på!
Avatar billede eksplayer Nybegynder
12. oktober 2004 - 22:13 #30
Beklager den længe svartid - havde helt glemt denne tråd. Fandt ingen løsning og lukker derfor spg.
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