Is er een bepaald script om te checken
of een geposte link ook wel echt daadwerkelijk een afbeelding is?

Dus dat een html code bijvoorbeeld er uit gefilterd wordt en
alleen als het een echte afbeelding is, de geposte url toegelaten wordt?

Bij voorbaat dank,
Ricolo
check de exstentie van het bestand en tegelijkertijd kan je kijken of het online staat of niet (mits het geen upload is)

staan vast wel een script over hier op phphulp




<?php
if(isset($_POST["bevestiging"])){

        $naam = $_POST["naam"];
        
        $allow[0] = "pjpeg";
        $allow[1] = "gif";
        $allow[2] = "png";
        $allow[3] = "pjpg";
        $allow[4] = "jpg";
        $allow[5] = "jpeg";
        $allow[6] = "x-png";

        $locatie = "images/";
        
        global $_FILES;
        
        $f_extentie = $_FILES["file"]["type"];
        
        $extentie = explode("image/", $f_extentie);

        for($i = 0; $i < count($allow); $i++){ 
               
            if(strtolower($extentie[1] == $allow[$i])){ 
               
            $extentie_check = "ok"; 
               $i = count($allow) + 5;
      
            } 
        } 
        
        if(file_exists($locatie.$naam)){
        
            echo "Kies een andere naam voor het bestand<br><br>";
            
        }
  }else{
  
  //form
  
}
?>
<?php
$naam = $_POST["url"];

$allow[0] = "pjpeg";
$allow[1] = "gif";
$allow[2] = "png";
$allow[3] = "pjpg";
$allow[4] = "jpg";
$allow[5] = "jpeg";
$allow[6] = "x-png";


global $_FILES;

$f_extentie = $_FILES["file"]["type"];

$extentie = explode("image/", $f_extentie);

for($i = 0; $i < count($allow); $i++){

if(strtolower($extentie[1] == $allow[$i])){

$extentie_check = "ok";
$i = count($allow) + 5;

}
}

if(file_exists($naam)){

// de rest

}else{
echo 'Error';
}
?>

Zo heb ik het nu, maar krijg telkens foutmelding...
Welke foutmelding?
geef jou script dan ff dan kunnen we ff kijken wat er aan te doen is..
Kijk, het grootste probleem is niet dat de afbeelding per sé moet bestaan, maar ik moet gewoon zeker gaan van het feit dat niemand iets anders kan plaatsen behalve een afbeelding, want het is voor een profiel:

<?php
echo '<img src="' . $user['url'] . '" width="150" height="150" />';
?>

En er waren dus mensen die daarin html en zo konden plaatsen.
Bij een profiel verscheen zelfs een alert popup :S

Evert, ik krijg gewoon mijn eigen "Error" foutmelding.
gewoon kijken wat de exstantie is van de post uiteraard moet je kijken of het online staat anders krijg je een X in beeld. (mits hij word geupload en of het plaatje niet op jou website staat) anders hoef je niet te kijken of hij online is maar check dat of hij bestaad..


edit:


dan word het ongeveer zo:


<?php
if(isset($_POST["bevestiging"])){

        $naam = $_POST["naam"];
        
        $allow[0] = "pjpeg";
        $allow[1] = "gif";
        $allow[2] = "png";
        $allow[3] = "pjpg";
        $allow[4] = "jpg";
        $allow[5] = "jpeg";
        $allow[6] = "x-png";

        $locatie = "images/";
        
        global $_FILES;
        
        $f_extentie = $_FILES["file"]["type"];
        
        $extentie = explode("image/", $f_extentie); //zorg er voor dat dit wel jou map is war hij staat

        for($i = 0; $i < count($allow); $i++){ 
               
            if(strtolower($extentie[1] == $allow[$i])){ 
               
            $extentie_check = "ok"; 
           }
       }
       echo'$plaatje';
 }
?>
Ja, maar ook de html en zo wil ik er uitgefilterd hebben...
dan zou je een filter moeten maken..


edit:

of htmlentities($_POST['plaatje']); ??
php.net
$_FILES['userfile']['type']

The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.

http://nl.php.net/manual/en/features.file-upload.php
@Karl

Als de browser dus zegt dat het een gif is (dus cliënt side informatie die die meestuurt) dan geeft die ook het mime-type image/gif mee. Deze input is dus eigenlijk niet echt te vertrouwen volgens php.net.

Reageren