Avatar billede kren1000 Nybegynder
26. november 2008 - 13:26 Der er 8 kommentarer og
1 løsning

Problemer med opload af nyheder m billede

Hej eksperter

Jeg har et opload script til nyheder, med navn, tekst og billede osv. Det går dog i kludder hvis ikke man vælger et billede, jeg tror måske det er noget al for gammel kode jeg anvender?

Jeg er selv igang herunder, men med nedenstående kode opretter den fint alt, dog uden billede selvom man vælger sådan et... Help anyone? Måske noget er nemmere?

------------nyhederopret.php---------------------------

<form enctype="multipart/form-data" action="nyhederopret_indsaet.php" method="post">
          <br>
         
          <table width="501" border="0" cellpadding="2" cellspacing="2">

<tr>
    <td width="58" align="left">Navn:&nbsp;&nbsp;&nbsp;</td>
    <td width="429" align="left"><input type="text" name="navn" value="" size="60" maxlength="40"></td>
</tr>
<tr>
    <td align="left" valign="top">Tekst:</td>
    <td align="left"><textarea name="beskrivelse" cols="45" rows="8"></textarea></td>
</tr>
<tr>
    <td align="left">Billede:</td>
    <td align="left"><input name="fil" type="file" size="45"></td>
</tr>

<tr>
    <td>&nbsp;</td>
    <td align="left">
    <input type="submit" value="Opret nyhed"> </td>
</tr>
</table>
</form>

---------------------------------------------------------------
----------------nyhederopret_indsaet.php-----------------------

<?

ini_set("memory_limit","12M");

$mydb = XXX OK

if($_POST[fil]=="") {

$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];

$query    = "INSERT into `news`

    SET
                   
    `news_navn` = '".$navn."',
    `news_beskrivelse` = '".$beskrivelse."'";                                       
    mysql_query($query) or die(mysql_error());
                               
    header("Location: nyheder.php");
    exit();
}

elseif($_POST[fil]!=="") {

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//laver lige et par variabler :-)
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "nyhed-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "nyheder/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);

//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 100) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "nyheder/thumbnail/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "nyheder/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};

//Her ligges oplysningerne ind databasen – huske at connecte til den!

$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];
$billede = $dst;

$query    = "INSERT into `news`
       
        SET
    `news_navn` = '".$navn."',
    `news_beskrivelse` = '".$beskrivelse."',
    `billede` = '".$dst."',
    `thumbnail` = '".$imgurl."'";               
    mysql_query($query) or die(mysql_error());
                   
    header("Location: nyheder.php");
    exit();
}   
?>
Avatar billede Slettet bruger
26. november 2008 - 15:45 #1
elseif($_POST[fil]!=="")  Skal være:
elseif($_POST[fil]!="")
Avatar billede kren1000 Nybegynder
26. november 2008 - 15:54 #2
Ja ok, det virker dog stadig ikke, den opretter dem uden billeder alligevel...
Avatar billede olebole Juniormester
26. november 2008 - 16:05 #3
<ole>

kaloer >> Nej, det er der ingen fejl ved. Eneste fejl dér er, at ingen af Jer bruger gåsøjne ... operatoren er derimod helt okay  =)

kren1000 >> Du må debugge ved at udskrive dine variablers indhold forskellige steder. Prøv f.eks. til begyndelse at skrive:

print $_POST["fil"]." :: ".$_POST['navn']." :: ".$_POST['beskrivelse']."<hr>";
if($_POST[fil]=="") {

/mvh
</bole>
Avatar billede kren1000 Nybegynder
26. november 2008 - 17:51 #4
Ja ok, det prøver jeg lige!
Avatar billede kren1000 Nybegynder
26. november 2008 - 21:10 #5
Ingen held endnu, den skriver navn og beskrivelse ud, og så kommer der en fejl. Jeg har måske lidt svært ved at se om jeg gør det rigtigt, har sat vist i bunden hvor jeg satte det ind til test....

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web241650/admin/nyhederopret_indsaet.php:8) in /usr/home/web/web241650/admin/nyhederopret_indsaet.php on line 23

Linie 8 = print $_POST["fil"]." :: ".$_POST['navn']." :: ".$_POST['beskrivelse']."<hr>";

Linie 23 =     header("Location: nyheder.php");

-----------------------------------------------------------------------------------

<?

ini_set("memory_limit","12M");

$mydb = mysql_connect('db.prechtdental.dk','web241650','z9w9h91r69');
mysql_select_db('web241650',$mydb);

print $_POST["fil"]." :: ".$_POST['navn']." :: ".$_POST['beskrivelse']."<hr>";
if($_POST[fil]=="") {

$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];

$query    = "INSERT into `news`
        SET
        `news_navn` = '".$navn."',
        `news_beskrivelse` = '".$beskrivelse."'";
   
        mysql_query($query) or die(mysql_error());
                                       
    header("Location: nyheder.php");
    exit();
}

elseif($_POST['fil']!=="") {

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];
Avatar billede kren1000 Nybegynder
26. november 2008 - 21:17 #6
For pokker, alle lukker øjnene! Glemte at fjerne koden,
men har ændret password osv. :-)
Avatar billede showsource Seniormester
27. november 2008 - 14:54 #7
if(is_uploaded_file($_FILES['fil']['tmp_name'])) {

// gør hvad du skal

}else{

// gør hvad du skal

}
Avatar billede kren1000 Nybegynder
27. november 2008 - 15:35 #8
Det var pokkers, lige hvad der skulle til showsource:)

Kort process, jeg takker mange gange, læg et svar til point.

Også tak i andre for jeres tid!
Avatar billede showsource Seniormester
28. november 2008 - 11:23 #9
ok
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