Avatar billede flashdevil Nybegynder
12. september 2004 - 17:52 Der er 13 kommentarer og
1 løsning

submit form uden brug af knap

Hej

Jeg ved godt der er en million spørgsmål om det her, men jeg syntes ikke jeg kan få det til at virker på mit uploadscript.

Er der nogen der kan se hvad dælen der er galt ?

<?php

    #
    # superSimpleª upload script :)
    #
    # Make sure a folder named "uploads" lies right next to this script, and has chmod 777
    #
   
    if( isset($_REQUEST['send']) ){
        if( is_uploaded_file($_FILES['myFile']['tmp_name']) && $_FILES['myFile']['error'] == 0){
           
            $file_path = "./uploads/". $_FILES['myFile']['name'];
           
            if ( @copy( $_FILES['myFile']['tmp_name'] , $file_path ) ){
                $isUploaded = true;
            }
        }
    }

?>
<html>
<head>
<title>fileupload</title>
</head>
<body>
<?php
    if ( $isUploaded ){
        echo "<img src=\"$file_path\"><br /><br />\r";
    }
?>
 
<form action="" method="post" enctype="multipart/form-data" name="form">
    <input type="file" name="myFile">
    <br />
    <input type="Submit" name="send" value="send">
</form>
<a href="java script:document.form.submit()">submit event</a> <br>
</body>
</html>
Avatar billede roenving Novice
12. september 2004 - 17:57 #1
Du skal vel også have en action, som er noget ?-)

-- derudover kan det da anbefales ikke at bruge det reserverede ord 'form' som et navn i nogetsomhelst script !-)
Avatar billede flashdevil Nybegynder
12. september 2004 - 18:13 #2
jeg har også prøvet med andre form navne feks. form1.

Grunden til at jeg ikke har nogen action er at det er "send" som starter mit php script i toppen.

Men grunden til at det ikke virker er måske at den "send" værdi ikke bliver sendt med når jeg submitter uden brug af knappen ?

I så fald hvordan kan jeg så ordne det ?
Avatar billede olebole Juniormester
12. september 2004 - 18:30 #3
<ole>

Submit-knappen eksisterer ikke som variabel på serveren, når den ikke bliver brugt. Brug et hidden field ... f.eks:

<input type="hidden" name="contxt" value="upload">

Så kan du spørge med:

if ( isset($_POST["contxt"]) && $_POST["contxt"]=="upload" ) {
  // Kør kode
}

Derudover er det helt korrekt, at du ikke kan bruge 'form' som navn på formen ... det bør du helt afgjort lave om  :)

/mvh
</bole>
Avatar billede flashdevil Nybegynder
12. september 2004 - 19:39 #4
Hej Ole

Tusind tak for hjælpen, det var lige det der skulle til.

Nu prøver jeg så på at lave "browse" funktionen uden brug af den traditionelle browse knap. Jeg kan godt få "browse" vinduet frem , men nå jeg submitter så virker det ikke ?. Her du nogen bud på hvad der går galt ?

(jeg kommer gerne med flere point)

Min kode ser nu sådan her ud :

<?php

    #
    # superSimpleª upload script :)
    #
    # Make sure a folder named "uploads" lies right next to this script, and has chmod 777
    #
   
    if(isset($_POST["contxt"]) && $_POST["contxt"]=="upload" ){
        if( is_uploaded_file($_FILES['myFile']['tmp_name']) && $_FILES['myFile']['error'] == 0){
           
            $file_path = "./uploads/". $_FILES['myFile']['name'];
           
            if ( @copy( $_FILES['myFile']['tmp_name'] , $file_path ) ){
                $isUploaded = true;
            }
        }
    }

?>
<html>
<head>
<title>fileupload  eksperten 4</title>

<SCRIPT LANGUAGE=JavaScript>

function upit(){
document.form1.myFile.click()
}


function submitIt(){
    document.form1.submit();
   
}


//-->
</SCRIPT>
</head>
<body>
<?php
    if ( $isUploaded ){
        echo "<img src=\"$file_path\"><br /><br />\r";
    }
?>
 
<form action="" method="post" enctype="multipart/form-data" name="form1" value="upload">
    <input type="file" name="myFile">
    <br />
    <input type="hidden" name="contxt" value="upload">
   
</form>
<a href="java script:upit()">browse </a><br><br>
<a href="java script:submitIt()">Submit(function) </a>
</body>
</html>
Avatar billede olebole Juniormester
12. september 2004 - 19:56 #5
Ja, du kan ikke scripte på en <inpyt type="file">. Det kan man ikke af sikkerheds hensyn
Avatar billede flashdevil Nybegynder
12. september 2004 - 20:10 #6
hmm det var ærgelig, men måske er der en workaround af en slags.

Jeg prøver nemlig at få dette eksempel til at virke med php og der ser ud til at det kan uploaded uden direkte brug af tryk på html knapperne.

(man kan download coden hvis nogen skulle ønske det)
Avatar billede flashdevil Nybegynder
12. september 2004 - 20:11 #7
Avatar billede olebole Juniormester
12. september 2004 - 20:19 #8
Du kan ikke uploade filer uden bruger-handlinger -  med mindre, du får lov til at installere kode på brugerens PC ... that's it 'n' that's that  :)
Avatar billede olebole Juniormester
12. september 2004 - 20:28 #9
Der er en svag mulighed for, det kan gøres via Flash - der jo som bekendt er om muligt endnu mere hullet end IE.

Min firewall spørger mig altid, om jeg vil tillade Flash-objekter, når der er Flash-film på en side. Det er ekstremt sjældent, jeg svarer 'ja' ... så kunne jeg ligeså godt droppe alle forsøg på at bevare et minimum af sikkerhed på min PC.
Avatar billede flashdevil Nybegynder
12. september 2004 - 20:32 #10
okay, jeg tror sku jeg giver op så :-)

Men tak for hjælpe og smid lige et svar for point.

mvh

/h
Avatar billede olebole Juniormester
12. september 2004 - 20:34 #11
Selvtak ... som du kan se, duer det, du har linket til, heller ikke. Scriptet benytter et gammelt hul i Explorer, der for længst er stoppet  :)
Avatar billede flashdevil Nybegynder
12. september 2004 - 20:37 #12
ikke for at træde mere idet, men vil lige vise dig et eks. som ser ud til at virker:

http://www.yamago.net/components/
Avatar billede olebole Juniormester
12. september 2004 - 20:49 #13
Jeg tror, du trænger til at få patched din browser. Mon ikke du skulle besøge MS?  ;o)
Avatar billede flashdevil Nybegynder
12. september 2004 - 20:55 #14
haha...det er nok en god ide :-)
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