Avatar billede krydset Nybegynder
04. januar 2004 - 01:36 Der er 16 kommentarer og
1 løsning

upload script driller

Okay eksperter..
Jeg har det her upload script samt form, og det virker perfekt det kan uploade filer og smide i db osv.

Men jeg står lidt over for et problem, hvis man nu ikke tilføjer en fil i til upload i formen, så vil det ikke gøre noget, hvordan får jeg reddet den ud så man stadig kan smide info i db uden der er en fil med

scriptet er her

<?PHP //opret ny
session_start();
if(!$_SESSION[tjek] == "OK") {
    header("location:admin.php");
} else {

$dato = date("d-m/20y");
if($_POST[opret]) {
    $dir = "covers/"; /* mappen filen skal flyttes til */
    $filnavn = $_FILES['uploadfil']['name'];
    print_r($_FILES);
   
phpinfo();
   
    if ($_FILES['uploadfil']['tmp_name']) {
        echo "DEBUG";//bliver udskrevet
        if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) {
            echo "Filen blev uploadet korrekt!";
            include("../dbconnect.php");
            mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error());
        } else {
            echo "Der er opstået en fejl!";
        }
    }
}

?>

<form action="ny.php" method="POST" enctype="multipart/form-data">
    <table>
        <tr>
            <td><input type="text" name="titel" value="Titel"></td>
        </tr>
       
        <tr>
            <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea>
        </tr>
       
        <tr>
            <td>kategori</td>
        </tr>

        <tr>
            <td>
                <select name="kategori">
                <?PHP //henter kategorierne og udskriver dem i en <select>
                include("../dbconnect.php");
                $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error());
                while ($row = mysql_fetch_array($kategori)) { ?>
                <option><?PHP echo $row[kategori] ?></option>
                <?PHP } ?>
                </select>
            </td>
            <td><a href="kat.php">Opret kategori</a></td>
        </tr>
       
        <tr>
            <td>Status</td>
        </tr>
       
        <tr>
            <td>
                <select name="status">
                    <option>På hylden</option>
                    <option>Udlånt</option>
                    <option>På harddisk</option>   
                </select>
            </td>
        </tr>
       
       
        <tr>
            <td><input type="text" name="lengde" value="Længde"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="aar" value="År"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td>
        </td>
       
        <tr>
            <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td>
        </tr>
       
        <tr>
            <td>Vælg Cover til filmen</td>
        </tr>
       
        <tr>
            <td><input type="file" name="uploadfil"></td>
        </tr>
       
        <tr>
            <td><input type="submit" name="opret" value="Opret film"></td>
        </tr>
           
</table>
</form>


<a href="logget_ind.php">Tilbage</a>
<?PHP
}
?>
Mvh krydset
Avatar billede krydset Nybegynder
04. januar 2004 - 01:37 #1
tag jer ikke af phpinfo();
Avatar billede interkriller Nybegynder
04. januar 2004 - 01:46 #2
Måske er det fordi at kolonnen pic_sti i din database som udgangspunkt er sat til NOT NULL istedet for NULL......
Avatar billede krydset Nybegynder
04. januar 2004 - 01:50 #3
Hvordan skulle det kunne gøre det??
Avatar billede interkriller Nybegynder
04. januar 2004 - 01:59 #4
måske har jeg ikke lige fanget spg...

Er problemet ikke at den ikke vil uploade når uploadfil ikke har en værdi....
tænkte det kunne afhjælpes med, at pic_sti ikke nødvendigvis skulle indeholde en værdi.

måske er det ikke måden....
Avatar billede krydset Nybegynder
04. januar 2004 - 02:01 #5
det er simpelt scriptet skal virke uden jeg har en fil med i formen eller ej.

hvis $uploadfil ingen værdi har så plejer den bare at indsætte blank i db
Avatar billede interkriller Nybegynder
04. januar 2004 - 02:07 #6
hmm for sent for mig det her.....hvis du allerede ved, at når $uploadfil er tom indsætter den blank i DB, så må upload scriptet vel også have fungeret uden fil....

Tror jeg skal i seng nu, tænker vist for langsomt nu....

held og lykke
Avatar billede krydset Nybegynder
04. januar 2004 - 02:09 #7
Nej den har ikke gjordt det i det her script men gør det i alle andre script jeg har lavet med insert i db
Avatar billede interkriller Nybegynder
04. januar 2004 - 02:33 #8
hvad med lige efter du har tjekket om $_POST[opret] tjekker om $_POST[uploadfil] har en værdi.

Hvis den har kan du køre scriptet som du normalt gør.

Hvis ikke kører du bare den "INSERT INTO" du allerede har hvor du dog undlader at tilføje noget i feltet pic_sti.
Avatar billede krydset Nybegynder
04. januar 2004 - 02:39 #9
Det virkede squ ;)

Smider du et svar
jeg smider løsningen

<?PHP //opret ny
session_start();
if($_SESSION[tjek] !== "OK") {
    header("location:admin.php");
} else {

$dato = date("d-m/20y");
if($_POST[opret]) {
    if($_POST[uploadfil] == "") {
        include("../dbconnect.php");
            mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error());
    } else {
   
   
    $dir = "covers/"; /* mappen filen skal flyttes til */
    $filnavn = $_FILES['uploadfil']['name'];
    var_dump();
   
phpinfo();
   
    if ($_FILES['uploadfil']['tmp_name']) {
        echo "DEBUG";//bliver udskrevet
        if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) {
            echo "Filen blev uploadet korrekt!";
            include("../dbconnect.php");
            mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error());
        } else {
            echo "Der er opstået en fejl!";
        }
    }
}
}


?>

<form action="ny.php" method="POST" enctype="multipart/form-data">
    <table>
        <tr>
            <td><input type="text" name="titel" value="Titel"></td>
        </tr>
       
        <tr>
            <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea>
        </tr>
       
        <tr>
            <td>kategori</td>
        </tr>

        <tr>
            <td>
                <select name="kategori">
                <?PHP //henter kategorierne og udskriver dem i en <select>
                include("../dbconnect.php");
                $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error());
                while ($row = mysql_fetch_array($kategori)) { ?>
                <option><?PHP echo $row[kategori] ?></option>
                <?PHP } ?>
                </select>
            </td>
            <td><a href="kat.php">Opret kategori</a></td>
        </tr>
       
        <tr>
            <td>Status</td>
        </tr>
       
        <tr>
            <td>
                <select name="status">
                    <option>På hylden</option>
                    <option>Udlånt</option>
                    <option>På harddisk</option>   
                </select>
            </td>
        </tr>
       
       
        <tr>
            <td><input type="text" name="lengde" value="Længde"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="aar" value="År"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td>
        </td>
       
        <tr>
            <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td>
        </tr>
       
        <tr>
            <td>Vælg Cover til filmen</td>
        </tr>
       
        <tr>
            <td><input type="file" name="uploadfil"></td>
        </tr>
       
        <tr>
            <td><input type="submit" name="opret" value="Opret film"></td>
        </tr>
           
</table>
</form>


<a href="logget_ind.php">Tilbage</a>
<?PHP
}
?>
Avatar billede interkriller Nybegynder
04. januar 2004 - 02:47 #10
Skide godt....så var jeg ikke så træt som jeg troede :)
Avatar billede krydset Nybegynder
04. januar 2004 - 02:50 #11
Jow :-( får hvis filen er med bliver filen ikke uploadet :-S
Avatar billede zups Nybegynder
04. januar 2004 - 02:57 #12
interkriller mente nok at du skulle skrive noget ligende;

<?PHP //opret ny
session_start();
if(!$_SESSION[tjek] == "OK") {
    header("location:admin.php");
} else {

$dato = date("d-m/20y");
if($_POST[opret]) {
    $dir = "covers/"; /* mappen filen skal flyttes til */
    $filnavn = $_FILES['uploadfil']['name'];
    print_r($_FILES);
   
phpinfo();

    if ($_POST['beskrivelse']) {
          echo "DEBUG";//bliver udskrevet
    if (($_FILES['uploadfil']['tmp_name']) and (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name']))) {
            echo "Filen blev uploadet korrekt!";
    } else {
      $filnavn = "NULL";
      }
            include("../dbconnect.php");
            mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error());
        } else {
            echo "Der er opstået en fejl!";
        }
    }
}

?>

<form action="ny.php" method="POST" enctype="multipart/form-data">
    <table>
        <tr>
            <td><input type="text" name="titel" value="Titel"></td>
        </tr>
       
        <tr>
            <td><textarea name="beskrivelse" rows="10">Beskrivelse</textarea>
        </tr>
       
        <tr>
            <td>kategori</td>
        </tr>

        <tr>
            <td>
                <select name="kategori">
                <?PHP //henter kategorierne og udskriver dem i en <select>
                include("../dbconnect.php");
                $kategori = mysql_query("SELECT * FROM kategori") or die(mysql_error());
                while ($row = mysql_fetch_array($kategori)) { ?>
                <option><?PHP echo $row[kategori] ?></option>
                <?PHP } ?>
                </select>
            </td>
            <td><a href="kat.php">Opret kategori</a></td>
        </tr>
       
        <tr>
            <td>Status</td>
        </tr>
       
        <tr>
            <td>
                <select name="status">
                    <option>På hylden</option>
                    <option>Udlånt</option>
                    <option>På harddisk</option>   
                </select>
            </td>
        </tr>
       
       
        <tr>
            <td><input type="text" name="lengde" value="Længde"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="aar" value="År"></td>
        </tr>
       
        <tr>
            <td><input type="text" name="ejer" value="<?PHP echo $_SESSION[navn]?>" readonly</td>
        </td>
       
        <tr>
            <td><textarea name="note" rows="3">Note til filmen, hvis ingen lad feltet være tomt</textarea></td>
        </tr>
       
        <tr>
            <td>Vælg Cover til filmen</td>
        </tr>
       
        <tr>
            <td><input type="file" name="uploadfil"></td>
        </tr>
       
        <tr>
            <td><input type="submit" name="opret" value="Opret film"></td>
        </tr>
           
</table>
</form>


<a href="logget_ind.php">Tilbage</a>
<?PHP
}
?>
Avatar billede interkriller Nybegynder
04. januar 2004 - 02:59 #13
} else {
     
phpinfo();
   
    if ($_FILES['uploadfil']['tmp_name']) {
        echo "DEBUG";//bliver udskrevet
        if (move_uploaded_file($_FILES['uploadfil']['tmp_name'], $dir.$_FILES['uploadfil']['name'])) {
            echo "Filen blev uploadet korrekt!";
            include("../dbconnect.php");
            mysql_query("INSERT INTO film (titel, beskrivelse, kategori, status, lengde, aar, ejer, note, dato, pic_sti) VALUES ('$_POST[titel]','$_POST[beskrivelse]','$_POST[kategori]','$_POST[status]','$_POST[lengde]','$_POST[aar]','$_POST[ejer]','$_POST[note]','$dato','$filnavn')") or die(mysql_error());
       

(DETTE STOD LIGE FØR PHPINFO() FØR, RYK DET HERNED):

    $dir = "covers/"; /* mappen filen skal flyttes til */
    $filnavn = $_FILES['uploadfil']['name'];
    var_dump();



} else {
            echo "Der er opstået en fejl!";
        }
Avatar billede zups Nybegynder
04. januar 2004 - 03:06 #14
interkriller
Hvad er ideen i at erklære tingene efter de skal bruges???
Check mysql_query(), den bruger $filnavn ...
Avatar billede interkriller Nybegynder
04. januar 2004 - 03:07 #15
nej det er da vist løgn.......tænker mig ikke om....2.min
Avatar billede krydset Nybegynder
04. januar 2004 - 03:10 #16
smid et svar zups det virkede
Avatar billede zups Nybegynder
04. januar 2004 - 03:16 #17
welle ?
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