Avatar billede gqo Nybegynder
24. oktober 2011 - 11:23 Der er 8 kommentarer og
1 løsning

upload af billeder til mysql

Måske lidt hjælp? tak,..
Først: programmet virker korrekt, og gør som det skal, men der kommer disse 2 notice:
Hvordan undgår jeg dem?
Pft. Gert
Der er lavet en database i mysql hvor jeg uploader billeder til de enkelte navne, og alt fungerer..

PHP er den nye 5.38

Notice: Undefined index: fil in D:\xampp\htdocs\filupload\uploadbilledeny.php on line 10

Notice: Undefined index: fil in D:\xampp\htdocs\filupload\uploadbilledeny.php on line 11


<html>
<body bgcolor="#666362">
<div style='position:absolute;left:25px;top:50px;' />
<?php
$d=$_POST["medlemsnummer"];
include "filfunktionerny.php";
mysql_connect('localhost', 'root', ''");
mysql_select_db('forening') or die("Could not select database");
  if( isset($_POST['medlemsnummer']) &&
    $_FILES['fil']['name'] != 'none' &&
    $_FILES['fil']['size'] != 0)
    upload_fil(    $_POST['medlemsnummer'],
            $_FILES['fil']['tmp_name'],
            $_FILES['fil']['size'],
            $_FILES['fil']['type']);
$foresp = mysql_query(
    "SELECT navn, medlemsnummer, " .
    "vejnavn, byer, " .
    "billede_size " .
"FROM medlemmer WHERE medlemsnummer ='$d'");
echo mysql_error();
while($post = mysql_fetch_array($foresp)){
if($post['billede_size'] == 0)
  vis_medlem(    $post['medlemsnummer'],
        $post['navn'],
        $post['vejnavn'],
        $post['byer'],
        $post['tlfnr'],
        false);
else
  vis_medlem(    $post['medlemsnummer'],
        $post['navn'],
        $post['vejnavn'],
        $post['byer'],
    //    $post['tlfnr'],//
        true);
}


?>
</div>
</body>
</html>
Avatar billede olebole Juniormester
24. oktober 2011 - 13:39 #1
<ole>

Du har et gåseøje for meget i din mysql_connect, men det skyldes nok sletning af et password. Derudover bør du altid teste i et dokument med valid markup kode. Selvom det ikke er disse to ting, der giver omtalte fejl.

Det er svært at kende fejlen, når vi ikke kan se resten af koden, men det kunne skyldes, du ikke har et felt med navnet fil i din form(?)

/mvh
</bole>
Avatar billede gqo Nybegynder
24. oktober 2011 - 14:42 #2
Hej tak for svaret.

Her er den fil som bliver include i ovennævnte fil, men igen, alt kører korrekt, det er blot den fejl meddelse jeg ikke kan gennemskue, da det hele jo kører korrekt.
ps. den gåseøje for meget i connect er kun i denne kopi ikke i scriptet. så?? pft.
Gert

<?php

function upload_fil($medlemsnummer, $filnavn, $size, $type){
$pointer = fopen($filnavn, "rb");
$data = fread($pointer, $size);
$data = addslashes($data);
mysql_query(
    "UPDATE medlemmer SET " .
    "billede = '$data', " .
    "billede_size = '$size', " .
    "billede_type = '$type' " .
    "WHERE medlemsnummer = $medlemsnummer");
}
function vis_medlem(
    $medlemsnummer,
    $navn,
    $vejnavn,
    $byer,
    $tlfnr){
echo "<form method='post' action='uploadbilledeny.php' enctype='multipart/form-data'>\n";
echo "<input type='hidden' name='medlemsnummer' value='$medlemsnummer' />\n";
echo "<div style='position:absolute;left:25px;top:5px;' />";
  echo "<img src='visbillede.php?medlemsnummer=$medlemsnummer'>\n";

echo "<font color='yellow',$medlemsnummer<br />";
echo "<b>$navn</b><br />";
echo "$vejnavn $byer<br />";

//echo "$tlfnr <br />\n";
echo "<input type='hidden' name='MAX_FILE_SIZE value='16384' />\n";
echo "<input type='file' name='fil' />\n";
echo "<input type='submit' value='opdater' />\n";
echo "</form>\n";
echo "<form action='formular.php'>";
echo "<input type='submit' value='Retur' />";
echo "</form>"; 
echo "</div>";
}

//include("formular.php");
?>
Avatar billede olebole Juniormester
24. oktober 2011 - 14:51 #3
Du skriver ikke noget om, hvornår du får de to fejl/advarsler, men at udvide denne betingelse kunne være et bud:


  if(!empty($_FILES) && isset($_POST['medlemsnummer']) &&
    $_FILES['fil']['name'] != 'none' &&
    $_FILES['fil']['size'] != 0)

Avatar billede gqo Nybegynder
24. oktober 2011 - 15:24 #4
Bingo! det virkede, laver en lille kontrol på billed upload, fejlkoden kommer nu kun i linien der er mærket: //fejlkode
Kar du et forslag til hvordan den også fjernes? men filstumpen virker ok.
Pft.
Gert

<?php
$fil = $_FILES['fil']; //fejlkode

// Kontrolere om uploaden gik godt
if ($fil["error"] > 0) {
echo "Uploaden mislykkedes. Fejlkode: " . $fil["error"];
} else {
echo "Oplysninger om den uploadede fil:<br/>";
echo "Navn: " . $fil['name'] . "<br/>";
echo "Type: " . $fil['type'] . "<br/>";
echo "Størrelse: " . $fil['size'] . "bytes<br/>";
echo "Midlertidigt gemt i " . $fil['tmp_name'] . "<br/>";
}
?>
Avatar billede olebole Juniormester
24. oktober 2011 - 17:21 #5
Du får formodentlig - ligesom før - kun fejlen, når der endnu ikke er en uploaded fil til stede. I så fald vil du kunne undgå den med:


if (!empty($_FILES)) {
    $fil = $_FILES['fil']; //fejlkode
   
    // Kontrolere om uploaden gik godt
    if ($fil["error"] > 0) {
        echo "Uploaden mislykkedes. Fejlkode: " . $fil["error"];
    } else {
        echo "Oplysninger om den uploadede fil:<br/>";
        echo "Navn: " . $fil['name'] . "<br/>";
        echo "Type: " . $fil['type'] . "<br/>";
        echo "Størrelse: " . $fil['size'] . "bytes<br/>";
        echo "Midlertidigt gemt i " . $fil['tmp_name'] . "<br/>";
    }
}


Avatar billede gqo Nybegynder
25. oktober 2011 - 19:35 #6
Hej. Det virker! og rigtig mange tak for svaret, det er vist noget med at smide et svar så spørgsmålet kan lukkes..
Gert  Tak.
Avatar billede olebole Juniormester
25. oktober 2011 - 19:42 #7
Jeg samler ikke points, men tak for tilbudet. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede gqo Nybegynder
25. oktober 2011 - 19:49 #8
Hej, samler heller ikke points, blot glad for lidt hjælp her..
Tak, Gert
Avatar billede olebole Juniormester
25. oktober 2011 - 19:53 #9
Selvtak  *o)
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