Toon posts:

[php] geen var in FILE_EXISTS functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik wil uit een database veld de bestandsnaam halen die hoort bij dit id en dan checken of het plaatje bestaat. Bestaat die --> uitlezen, bestaat die niet dan nix laten weergeven.

Heb ik op de volgende manier geprobeerd te verwezelijken:
PHP:
1
2
3
4
5
6
7
8
<?
 if(FILE_EXISTS("images/$row[pic1]")){ echo "&amp;nbsp;&amp;nbsp;[img]\"images/$row[pic1]\"[/img]";

}
else
{ //file niet weergeven 
} 
?>

en nu is het vreemde als ik <? echo $row[pic1]; ?> doen dan leest die wel een waarde uit maar zo in de functie niet.

wie kan mij helpen

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

PHP:
1
2
3
4
5
6
7
<?
 $File="images/" . $row[pic1];
 if ( FILE_EXISTS("$File") ) { 
      $Alt = $row[veld2] . " - 3";
      echo "nbsp;[img]'$File'[/img]";
 }
?>

De else is trouwens niet verplicht ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Waarom maken mensen altijd van die lelijke string construcites die vroeg of laat fout gaan. DOe het gewoon zo:
PHP:
1
2
3
4
5
6
7
8
<?
 if(FILE_EXISTS("images/".$row[pic1])){ echo "&amp;amp;nbsp;&amp;amp;nbsp;[img]\"images/".$row[pic1]."\"[/img]";

}
else
{ //file niet weergeven 
} 
?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
bedankt het werkt

sorry sprak iets te snel

ik wil het nu met 4 pics doen. De eerste doet het wel de rest laat het symbool zien van een pic waarvan de bron niet gevonden kan worden
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
 if(FILE_EXISTS("images/".$row[pic1])) { 
echo "[img]\"images/$row[pic1]\"[/img]";
}
else
{ 
//file niet weergeven 
} 
?>
<?
if(FILE_EXISTS("images/".$row[pic3])) { 
echo "&amp;nbsp;&amp;nbsp;[img]\"images/$row[pic3]\"[/img]";
}
else
{ //file niet weergeven 
} 
?>

levert deze bron van html op:

[img]"images/elvis2.jpg"[/img]
  [img]"images/"[/img]

waarbij elvis2.jpg $pic1 is
in de d.b. staat geen $pic3 toch probeert het plaatje uit te lezen

Verwijderd

probeer deze eens:
PHP:
1
2
3
4
5
6
7
8
9
<?
 
if(file_exists("images/".$row[pic1])) { 
    print "[img]\"images/".[/img]";
}
if(file_exists("images/".$row[pic3])) {
    print "&amp;nbsp;&amp;nbsp;[img]\"images/".[/img]";
}
?>

leer jezelf trouwens ook aan om print te gebruiken, want echo gaat in latere php versies verdwijnen...

Verwijderd

Topicstarter
bedankt voor de print t.o.v. echo tip

maar nu..... ook deze gecombineerde functie heeft een negatieve uitwerking.

dus hij doet het nog niet naar behoren.

wat doe ik fout / heb gedaan.

  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
De directory images/ bestaat, dus de if() returned gewoon true en wordt uitgevoerd (zie comments op http://www.php.net/manual/en/function.file-exists.php - Also,this function can check whether a directory exists). Doe dus een dubbele check:
PHP:
1
2
3
4
5
<?
if ($row[pic3] &amp;&amp; file_exists("images/" . $row[pic3])) {
  ...
}
?>

Ik spoor veilig of ik spoor niet.


  • Anders
  • Registratie: December 2000
  • Laatst online: 24-08 18:29
Op dinsdag 19 februari 2002 12:39 schreef jurriebur het volgende:
leer jezelf trouwens ook aan om print te gebruiken, want echo gaat in latere php versies verdwijnen...
Hoe kom je daarbij? Het werd genoemd in de thread [topic=363583/1/25] maar daar bleek het volledig ongefundeerd. Ik kan het me ook nauwelijks voorstellen ivm backward compatibiliteit. Een PHP-versie die echo niet meer accepteert is absoluut niet levensvatbaar, aangezien het merendeel van de huidige scripts echo() gebruikt in plaats van print(). Zelfs de allerlaatste PHP manual gebruikt in voorbeelden gewoon echo ipv print.

Ik spoor veilig of ik spoor niet.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Je kunt beter aanleren dat bij het gebruiken van strings als indexering van array's, daar ook quotes om te zetten:
PHP:
1
2
3
<?
$row["img1"];
?>

ipv
PHP:
1
2
3
<?
$row[img1];
?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Grum
  • Registratie: Juni 2001
  • Niet online
dat MOET zelfs .. zet error_reporting(E_ALL); maar es aan >:)

Verwijderd

Topicstarter
Bedankt ik zal er " " omheen zetten
Pagina: 1