Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Variable uit functie halen

Johnny321
2 antwoorden
  • [b:c126318978]De functie[/b:c126318978]
    [code:1:c126318978]
    function jpgcheck($compleeturl)
    {
    $gegevens_afbeelding = GetImageSize($compleeturl);
    if($gegevens_afbeelding[2] != "2")
    {
    unlink($compleeturl);
    unset($compleeturl)
    }
    return $compleeturl;
    }
    [/code:1:c126318978]
    [b:c126318978]De aanroepcodegeval[/b:c126318978]
    [code:1:c126318978]
    jpgcheck($_FILES[upload][tmp_name]);
    if($compleeturl == "")
    {
    echo "ongeldige jpg";
    exit;
    }
    [/code:1:c126318978]
    Ik ben wederom een uploadscript in elkaar aan et frutselen, deze keer alles met functies. Maar nu loop ik tegen het volgende probleem op, waarvan de oplossing makkelijk is, maar ik er maar nie op kan komen.
    Het geuploade bestand wordt gecheckt of het een JPEG is, zo niet, wordt het verwijderd, en [i:c126318978]$compleeturl[/i:c126318978] wordt leeggetrokken.
    Nu moet de waarde [i:c126318978]$compleeturl[/i:c126318978] meegegeven worden, zodat nadat de functie uitgevoerd is, die variabele of leeg is, of het pad naar de jpg bevat.
    Maar hij geeft em nie mee zeg maar, hij is alijd leeg.
    Wat doet ik hier verkeerd??
  • Je moet de return value wel opslaan in een variabele, anders bestaat die variabele niet buiten de functie. Dus:[code:1:fa593363de]$bla = jpgcheck($_FILES[upload][tmp_name]);

    if($bla == "")
    {
    echo "ongeldige jpg";
    exit;
    }[/code:1:fa593363de]Misschien kun je beter een 'false' als return value meegeven. Dan kan je de volgende constructie gebruiken:[code:1:fa593363de]function jpgcheck($compleeturl) {
    $gegevens_afbeelding = GetImageSize($compleeturl);
    if($gegevens_afbeelding[2] != "2") {
    unlink($compleeturl);
    $compleeturl = false;
    }
    return $compleeturl;
    }

    /* en vervolgens: */

    $bla = jpgcheck($_FILES[upload][tmp_name]);
    if(!$bla) {
    echo "ongeldige jpg";
    exit;
    }[/code:1:fa593363de]denk ik…


    Even terzijde: de informatie in de index [2] uit de array die terugkomt van getimagesize geeft eigenlijk niet de informatie die jij wilt hebben. Als ik een bmp bestandje heb, of zelfs een pdf, en ik geef die ook gewoon de extensie .jpg, dan denkt getimagesize gewoon dat het een jpg is.

    Om dit goed te testen moet je de functie mime_content_type gebruiken. En dan kijken of de return value daarvan gelijk is aan een van de mime types voor jpg. Jij bent op zoek naar image/jpeg of image/pjpeg…

    Succes.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.