Avatar billede pluth Nybegynder
18. maj 2001 - 18:39 Der er 38 kommentarer og
1 løsning

Formular felt

Hej Eksperter!

Jeg har et problem med min formular! Jeg vil gerne have at man kan browse sig frem til et billed på sin harddisk, og når man så trykker på send, lægges billedet ind i min mysql database. Det der sker med det jeg har lige nu, er at den lave et et link til der, hvor den tror billedet ligger. Adressen ser sådanne ud: /temp/billed1. Selvom jeg har oprettet et bibliotek som hedder temp, kommer der ingen billeder derind. Er der nogen der kan sige hvad jeg gør forkert???  Mit script ser sådanne ud:

<script language=\"JavaScript\">
<!--
function doForm(mode)
{
    if (mode == \"reset\")
    {
        document.addForm.reset();
    }

    if (mode == \"submit\")
    {
        error = 0;

        if ((document.addForm.navn.value == \"\") && (error == 0))
        {
            alert(\"Du mangler at skrive navn.\");
            document.addForm.navn.focus();
            error = 1;
        }


        if ((document.addForm.beskrivelse.value == \"\") && (error == 0))
        {
            alert(\"Du mangler at skrive en beskrivelse.\");
            document.addForm.beskrivelse.focus();
            error = 1;
        }

        if ((document.addForm.billed.value == \"\") && (error == 0))
        {
            alert(\"Du mangler at skrive et billed.\");
            document.addForm.billed.focus();
            error = 1;
        }

        if ((document.addForm.pris.value == \"\") && (error == 0))
        {
            alert(\"Du mangler at skrive en pris.\");
            document.addForm.pris.focus();
            error = 1;
        }

        if ((document.addForm.links.value == \"\") && (error == 0))
        {
            alert(\"Du mangler et link.\");
            document.addForm.links.focus();
            error = 1;
        }

        if (error == 0)
        {
            document.addForm.submit();
        }
    }
}
// -->
</script>
<body class=\"main\">

<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"550\" class=\"mainTable\">
  <tr>
    <td width=\"550\" valign=\"top\" class=\"greyLine1\">
      <div class=\"textContainer\">
        <h1>Opret ny vare</h1>
        <form action=\"vare_oprettet.php\" method=\"post\" name=\"addForm\" ENCTYPE=\"MULTIPART/FORM-DATA\">
          <table border=\"0\" width=\"400\" cellspacing=\"0\" cellpadding=\"0\">
            <tr>
              <td width=\"80\" valign=\"top\">navn:</td>
              <td width=\"220\" colspan=\"3\"><input name=\"varenavn\" size=\"10\" style=\"WIDTH: 125px\" class=\"inText\"></td>
            </tr>
            <tr>
              <td width=\"80\" valign=\"top\">Beskrivelse:</td>
              <td width=\"220\" colspan=\"3\"><input name=\"beskrivelse\" size=\"10\" style=\"WIDTH: 125px\" class=\"inText\"></td>
            </tr>
        <td colspan=\"4\"><p class=\"air10\">Tryk på Browse... / Vedhæft... for at indsætte billed</p></td>
              </tr>
              <tr>
                <td></td>
                <td colspan=\"3\"><input TYPE=\"file\" NAME=\"billed\" style=\"width:200px;\" class=\"inText\" Value></td>
          </tr>
            <tr>
              <td width=\"80\" valign=\"top\">Pris:</td>
              <td width=\"220\" colspan=\"3\"><input name=\"pris\" size=\"12\" style=\"WIDTH: 150px\" class=\"inText\"></td>
            </tr>
            <tr>
              <td width=\"80\" valign=\"top\">Direkte Link:</td>
              <td width=\"220\" colspan=\"3\"><input name=\"links\" size=\"10\" style=\"WIDTH: 100px\" class=\"inText\"></td>
            </tr>
          <tr>
            <td colspan=\"4\" height=\"20\">
<p align=\"right\"><a href=\"java script:doForm(\'reset\');\" onfocus=\"this.blur()\"><img src=\"/images/buttons/slet_alt0.gif\" class=\"inButton\" onmouseout=\"but(this,0);\" onmousedown=\"but(this,2);\" onmouseup=\"but(this,0);\" border=\"0\" WIDTH=\"54\" HEIGHT=\"17\"><a href=\"java script:doForm(\'submit\');\" onfocus=\"this.blur()\"><img src=\"/images/buttons/send0.gif\" class=\"inButton\" onmouseout=\"but(this,0);\" onmousedown=\"but(this,2);\" onmouseup=\"but(this,0);\" border=\"0\" WIDTH=\"44\" HEIGHT=\"17\"></p>

</form>
      </div>
    </td>
  </tr>
        </table>

Pluth
Avatar billede jakoba Nybegynder
18. maj 2001 - 19:10 #1
når du viser siden og tester bruger du så adressen
  http://localhost/et_eller_andet            // fra lokal server
eller bruger du:
  E:\\mappe1\\mappe2\\et_eller_andet            // lokalt fra disk

de /-tegn du bruger skal vende den samme vej.
medmindre du skriver en fuldstændig url (fra http: eller E:)

det er vistnok kun når du kører lokalt fra server at du kan starte med / og den adresse vil så få tilføjet \"http://localhost\" foran.

mvh JakobA
Avatar billede pluth Nybegynder
18. maj 2001 - 19:14 #2
Hvis du mener, når jeg skal finde billedet, så trykker jeg bare på gennemse, og så skrive den selv f.eks.: C:/billed/billed1.gif (Det bliver så i MySQL´en /temp/billed1.gif)

Var det det du mente????

Pluth
Avatar billede jakoba Nybegynder
18. maj 2001 - 19:23 #3
næe, jeg misforstod. troede du selv prøved at skrive en harddiskadresse som relativ url.
Avatar billede jakoba Nybegynder
18. maj 2001 - 19:26 #4
mon ikke billedet bliver kopiereret til det temp direktorie der ligger i din windows mappe.
Avatar billede pluth Nybegynder
18. maj 2001 - 19:29 #5
Har lige tjekket, og det gør den ikke!!! Jeg kan ikke helt finde ud af, hvor den får det temp fra, og hvorofr den så ikke ligger billedet der!!!

Pluth
Avatar billede jakoba Nybegynder
18. maj 2001 - 19:37 #6
mon så ikke snarere det er din fil vare_oprettet.php der skal kikkes i. Det er det der modtager formen og burde gemme billedet væk i din mysql-database.

mvh JakobA
Avatar billede pluth Nybegynder
18. maj 2001 - 19:44 #7
Det tror jeg ikke, men den kommer her!!!!

<? require(\"envoriment.inc\"); ?>
<html>
<TITLE></TITLE>
</HEAD>
<?
mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode);
mysql_select_db($mysql_database_navn);

$result = mysql_query
(\"INSERT INTO vareliste (varenavn, beskrivelse, billed, pris, links) 

VALUES (\'$varenavn\', \'$beskrivelse\', \'$billed\', \'$pris\', \'$links\')\");

if ($result) {

print \"Varen blev oprettet, og kommer til at se sådan ud:\";
print \"<br>\";
print \"<br>\";
print \"<center><B><font face=arial size=4>\";
print \"$row[varenavn]\";
print \"</B><hr size=3 color=000000 width=100%><font face=arial size=3>\";
print \"$row[beskrivelse]\";
print \"<br>\";
print \"<br>\";
print \"<img src=\\\"$row[billed]\\\">\";
print \"<br><br><br>\";
print \"<b>Pris kun kr. \";
print \"$row[pris]\";
print \"</b>\";
print \"<br>\";
print\"<a href=\\\"$row[links]\\\" target=_blank>Køb varen</a>\";
print \"<br>\";
?><Font face=\"arial\" color=\"Black\" size=\"1\"></P>
   
} else {print \"Desværre, der er sket en fejl. Prøv igen.\";} ?>
Avatar billede jakoba Nybegynder
18. maj 2001 - 20:18 #8
efter linien:

mysql_select_db($mysql_database_navn);

indsætter du følgeden 5 linier:

$billed2 = substr (strrchr ($billed, \"/\"), 1 );
if (!copy($billed, $billed2)) {
    print (\"failed to copy $billed...<br>\\n\");
};
$billed = $billed2;

så skulle filen gerne dukke op.

mvh JakobA
Avatar billede jakoba Nybegynder
18. maj 2001 - 20:24 #9
Hovsa. hvorfor accepterede du?  (hvis det ikke dur laver jeg et spgm til dig)
Avatar billede pluth Nybegynder
19. maj 2001 - 11:09 #10
->Jakoba

Jeg har ikke accepteret spørgsmål! Da jeg havde skrevet det sidste til dig, slukkede jeg min computer! Jeg prøver lige det du har skrevet og vender tilbage!

Pluth
Avatar billede pluth Nybegynder
19. maj 2001 - 11:15 #11
Hvor skulle den ligge filen??? Den laver igen en henvisning i MySQL tabellen!

/tmp/phpc55553

Jeg har oprettet et bibliotek, men der ligger den heller ikke.

Pluth
Avatar billede jakoba Nybegynder
19. maj 2001 - 11:32 #12
Jeg ved det ikke. led efter filens navn med windows \"søg efter filer og mapper\" den burde ligge et sted (med mindre du fik \"failed to copy ...\").

Og det skulle helst være etsted i de mapper du har givet til serveren at administrere.
Prøv at fortæl hvad mappestien til din server er. (det er apache ikke?)
og hvad mappestien er til der du har installeret PHP.
Avatar billede pluth Nybegynder
19. maj 2001 - 11:45 #13
Jeg har ingen mulighed for at angive noget, da det kun er administatoren på mit webhotel!!!Der ligger ingen filer på mit eget webhotel. Der var ingen fejl ved indtastning!

Pluth
Avatar billede jakoba Nybegynder
19. maj 2001 - 12:34 #14
Det der går galt går ret sikkert galt etsetd på dit webhotel. kan du give et link så jeg kan kikke?
Avatar billede pluth Nybegynder
19. maj 2001 - 13:04 #15
Selvfølgelig kan du få en adresse - Men nu fejler den pludselig med (\"failed to copy ...\")....

http.//www.luth.dk/Vare/opret.php

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 10:48 #16
I $billede får du et navn til filen, der ligger i et temporært katalog, bestemt
af opsætningen af PHP på serveren. Mens scriptet kører kan du bruge den
fil, f.eks. til at kopiere indholdet til en anden fil, eller til at lægge det i databasen
i et LONGBLOB felt). Men du kan ikke efterfølgende bruge det filnavn til noget.

Det nemmeste er nok at kopiere filen et andet sted hen. Har du en mappe,
hvor du har givet webserveren adgang, og hvor vi kan lægge dine filer?
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 10:49 #17
...altså adgang til at skrive...
Avatar billede pluth Nybegynder
20. maj 2001 - 10:53 #18
Erikjacobsen-> Jeg har bare et helt almindeligt webhotel, hos en udbyder! Men en mappe på serveren er vel fin???

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 10:56 #19
Da du kører på en UNIX, skal du oprette en mappe - kald den f.eks. \"billeder\" -
og lave en CHMOD 777 på den. Kan du klare det?
Avatar billede pluth Nybegynder
20. maj 2001 - 10:58 #20
Jeps - Det har jeg allerede!!!!

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 11:21 #21
Så skal du lave noget lignende jakobas:

  if (!copy($billed, \"/home/domaene/ditskrivbarekatalog/\". $billed_name)) {
    print (\"failed to copy $billed...<br>\\n\");
  };

Derefter skulle du kunne bruge $billed2 som navnet på filen i INSERT sætningen

$billed_name giver den navnet på serven. Der må så ikke uploades 2 ens. Men det
går vel an.
Avatar billede jakoba Nybegynder
20. maj 2001 - 11:29 #22
erikjacobsen >> ku man bruge en relativ url?
a la:

$billed2 = \"../billeder/\" . substr (strrchr ($billed, \"/\"), 1 );
if (!copy($billed, $billed2)) {
    print (\"failed to copy $billed...<br>\\n\");
};
$billed = $billed2;

PS: husk at lægge et svar i http://www.eksperten.dk/spm/74173

mvh JakobA
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 11:34 #23
Ja ja, man kan også bruge en relativ sti. Men bemærk, det er ikke en URL, det
er et almindeligt UNIX-filnavn. Prøver du selv, jakoba.

(jeg har set 74173 - lad os nu lige blive færdige her)
Avatar billede pluth Nybegynder
20. maj 2001 - 11:44 #24
Erikjacobsen-> Jeg får denne fejl:

Unable to create \'/billed/840c.gif\': No such file or directory in /hotel/WWW/Vare/vare_oprettet.php on line 9
failed to copy /tmp/phpS71124...
Avatar billede jakoba Nybegynder
20. maj 2001 - 11:47 #25
den mappe du har lavet hedder \"billeder\" du mangler \"er\"
Avatar billede pluth Nybegynder
20. maj 2001 - 11:49 #26
Det samme fejl:

Warning: Unable to create \'/billeder/840c.gif\': No such file or directory in /hotel/WWW/Vare/vare_oprettet.php on line 9
failed to copy /tmp/phpb73433...
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 11:50 #27
Jamen, din mappe /billed ligger jo heller ikke i roden på serveren (men nok i dit hotel)
Brug  /hotel/WWW/billed  .... eller hvad den fulde sti nu hedder....
Avatar billede pluth Nybegynder
20. maj 2001 - 11:55 #28
Så ser fejlen bare sådanne ud:

Warning: Unable to create \'/WWW/luth/billeder/900E.jpg\': No such file or directory in /hotel/luth/WWW/Vare/vare_oprettet.php on line 9
failed to copy /tmp/phpj72571...

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 12:00 #29
Nej, den fulde sti er

  /hotel/luth/WWW/billeder

og ikke /WWW/billeder
Avatar billede pluth Nybegynder
20. maj 2001 - 12:04 #30
Det giver desværre også samme fejl!

Warning: Unable to create \'hotel/WWW/luth/billeder/840c.gif\': No such file or directory in /hotel/luth/WWW/Vare/vare_oprettet.php on line 9
failed to copy /tmp/phpD72570...

Pluth
Avatar billede pluth Nybegynder
20. maj 2001 - 12:23 #31
Der var lige en fejl mere, som jeg selv fandt, Det fik fejlmeddelsen til at forsvinde - Men der ligger ikke noget billede i mappen billeder alligevel??? Og heller ingen sti i MySQL!!!!

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 12:48 #32
Du skal skrive den med / foran:

/hotel/WWW/luth/billeder
Avatar billede pluth Nybegynder
20. maj 2001 - 12:50 #33
Det fandt jeg selv ud af, det var det, der gjorde at der ikke kom flere fejlmeddelser.....

Pluth
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 12:51 #34
Det kunne du da godt have sagt! Vis os din kode.
Avatar billede pluth Nybegynder
20. maj 2001 - 12:56 #35
Ja, det burde jeg nok!!!

Her er vare_oprettet.php

<? require(\"envoriment.inc\"); ?>
<html>
<TITLE></TITLE>
</HEAD>
<?
mysql_connect($mysql_server_navn,$mysql_server_bruger,$mysql_server_kode);
mysql_select_db($mysql_database_navn);

if (!copy($billed, \"/hotel/luth/WWW/billeder/\". $billed_name)) {
    print (\"failed to copy $billed...<br>\\n\");
  };

$billed = $billed2;

$result = mysql_query

(\"INSERT INTO vareliste (varenavn, beskrivelse, billed2, pris, links) 

VALUES (\'$varenavn\', \'$beskrivelse\', \'$billed2\', \'$pris\', \'$links\')\");

if ($result) {

print (\"Varen er blevet oprettet.\");
print (\"<br>\");
print (\"<br>\");


   
} else {print \"Desværre, der er sket en fejl. Prøv igen.\";} ?>

Avatar billede erikjacobsen Ekspert
20. maj 2001 - 12:59 #36
Har du kigget direkte i mappen? I databasen skal du enten gemme

  $billed_name

og så sætte /\"billeder/\" foran i hver image,

eller gemme f.eks.

  \"/billeder/$billed_navn\"
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 12:59 #37
hovsa ... sætte  \"/billeder/\" foran ....
Avatar billede erikjacobsen Ekspert
20. maj 2001 - 13:00 #38
Hov-hovsa:

    \"/billeder/$billed_name\"
Avatar billede pluth Nybegynder
20. maj 2001 - 13:14 #39
KANON  - NU VIRKER DET!!!!!!!!!!!!

Tak skal i have begge 2!!! Jeg har oprette et spørgsmål til dig Erikjacobsen, så du også kan få point!!!

http://www.eksperten.dk/spm/74204

Pluth
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