Vraag & Antwoord

Webprogrammeren & scripting

Variable uit functie halen

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 [url=http://nl3.php.net/manual/en/function.mime-content-type.php]mime_content_type[/url] gebruiken. En dan kijken of de return value daarvan gelijk is aan een van de [url=http://www.webmaster-toolkit.com/mime-types.shtml]mime types [/url]voor jpg. Jij bent op zoek naar image/jpeg of image/pjpeg... Succes.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

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