Probleempje met funtion.unlink

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim Rigter

Tim Rigter

03/03/2012 17:04:37
Quote Anchor link
Hallo,

ik gebruik al een tijdje een contactformulier met upload-functie op mijn website.
Nu wil ik deze op een andere site gebruiken.
Alles werkt inmiddels prima, behalve als er geen bestand ge-upload wordt, dan krijg ik de volgende melding:

Warning: unlink(uploads/) [function.unlink]: Is a directory in /home/deb57026/domains/blabla.nl/public_html/test/contact.php on line 197

De mail wordt wel gewoon netjes verstuurd. Het is dus puur een fout dat hij geen bestand kan vinden.

Zou het kunnen liggen aan het feit dat deze site op PHP 5.3 draait?

Het stukje code:
unlink( $conf['upload']['dir'] .$_FILES['attachment']['name'] );

Iemand enig idee??
Gewijzigd op 03/03/2012 17:05:26 door Tim Rigter
 
PHP hulp

PHP hulp

08/11/2024 17:41:25
 
Erwin H

Erwin H

03/03/2012 17:13:54
Quote Anchor link
Tim Rigter op 03/03/2012 17:04:37:
behalve als er geen bestand ge-upload wordt

Met andere woorden; als je gewoon netjes controleert of er wel een bestand geupload is en dus niets doet als dat niet het geval is, dan is er niets aan de hand? Of denk ik dan te simpel?
 
Obelix Idefix

Obelix Idefix

03/03/2012 17:14:46
Quote Anchor link
Bouw controle/foutafhandeling in.
Vermoedelijk heb je die unlink er in staan, zonder dat je controleert of er ook een bijlage is meegestuurd. Maak een if-statement --> als er een bestand is toegevoegd, dan unlink. Anders hoeft het niet.
 
Tim Rigter

Tim Rigter

03/03/2012 17:17:26
Quote Anchor link
tja, dat doet ie dus al.....

if( move_uploaded_file( $_FILES['attachment']['tmp_name'], $conf['upload']['dir'] . $_FILES['attachment']['name'] ) ) {
$hasFile = true;
 
Obelix Idefix

Obelix Idefix

03/03/2012 17:19:31
Quote Anchor link
Wat doet die daar en wat is de link met je unlink? Je laat kleine stukjes code zien, waardoor het totale plaatje niet duidelijk is. Post eens wat meer relevante (!) code.
 
Tim Rigter

Tim Rigter

03/03/2012 17:29:08
Quote Anchor link
Bedankt voor het meedenken Erwin, en vooral Obelix & Idefix

if( $hasFile = false ) {
unlink( $conf['upload']['dir'] .$_FILES['attachment']['name'] );

Nu werkt het helemaal goed :)

Toevoeging op 03/03/2012 17:32:34:

Tim Rigter op 03/03/2012 17:29:08:
Bedankt voor het meedenken Erwin, en vooral Obelix & Idefix

if( $hasFile = false ) {
unlink( $conf['upload']['dir'] .$_FILES['attachment']['name'] );

Nu werkt het helemaal goed :)


misschien eerst ff nadenken voor ik wat zeg. $hasFile moet natuurlijk true zijn, en dan heb ik dezelfde foutmelding weer


Toevoeging op 03/03/2012 17:36:11:

Stukje code:

if( $hasFile ) {
$mailer->AddAttachment( $conf['upload']['dir'] .$_FILES['attachment']['name'] );
}

// Verzenden van de email
if( !$mailer->Send( ) ) {
echo 'De volgende fout is opgetreden: ' .$mailer->errorInfo;
}
else {
// Melding geven dat de email is verzonden
echo $conf['succesMsg'];

// Unlink attachment
if( $hasFile = true ) {
unlink( $conf['upload']['dir'] .$_FILES['attachment']['name'] );
}}
}
}

// Zijn er fouten opgetreden?
if( count( $errors ) > 0 ) {

echo '<div class="errors">';
echo '<h2>De volgende fouten zijn opgetreden:</h2>';
//echo '<p>Vul de verplichte velden in</p> <br />';
// Doorlopen foutmeldingen
foreach( $errors as $errorKey => $value ) {
if( $errorKey != 'attachment' ) {
echo ' - [' .$value['code']. '] ' .$value['msg']. '<br />';
}
else {
foreach( $value as $val ) {
echo ' - ' .$val. '<br />';
}
}
}
echo '</div>';
 
Erwin H

Erwin H

03/03/2012 17:42:04
Quote Anchor link
Dit:
if( $hasFile = true )
moet zijn:
if( $hasFile == true )
 
Tim Rigter

Tim Rigter

03/03/2012 17:46:39
Quote Anchor link
pfff. Nu werkt ie helemaal! Sorry, maar ik ben niet zo'n held met PHP

In ieder geval bedankt voor de snelle reactie!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.