array en getimagesize

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Joris van Rooij

Joris van Rooij

01/09/2004 16:59:00
Quote Anchor link
Ik heb nu een stukje code geschreven die er voor moet zorgen dat wanneer mensen een foto uploaden die van een te lage resolutie is, afgekeurd wordt. HEt probleem is dat mijn pagina uit een array van userfiles bestaat, dus er moet ook een array aan files gecheckt worden. Hoe doe ik dit nu in hemelsnaam?
Zo ver ben ik al:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
if ($_FILES['userfile']['tmp_name'][$i] != "") {
$dimensions = getimagesize($_FILES['userfile']['tmp_name'][$i]);
$breedte = $dimensions[0];
$hoogte = $dimensions[1];
if ($breedte < 1600) {
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}

if ($hoogte < 1200) {
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}
}

?>
 
PHP hulp

PHP hulp

26/04/2024 16:04:58
 
Dutchcamel

dutchcamel

01/09/2004 17:03:00
Quote Anchor link
Je kunt iig dit stuk

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if ($hoogte < 1200) {
   $resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}

?>


weglaten. Als $hoogte kleiner is dan 1600 is ie dus ook kleiner dan 1200 en hoeft er niet twee keer die melding te komen.
 
Joris van Rooij

Joris van Rooij

01/09/2004 17:09:00
Quote Anchor link
nee, foto's zijn niet altijd 4:3, ze kunnen ook 3:4 zijn. (portrait)

Edit: ik ben nu officieel gepromoveerd!

maar je hebt gelijk, ik kan ook zeggen dat zowel de hoogte als de breedte niet kleiner mogen zijn dan 1200.
Gewijzigd op 01/09/2004 17:14:00 door Joris van Rooij
 
Dutchcamel

dutchcamel

01/09/2004 17:15:00
Quote Anchor link
Kutn00b ben ik ook. Dacht dat bij allebei $hoogte stond. Maar ene is $hoogte en andere $breedte. Sorry :)
 
Joris van Rooij

Joris van Rooij

01/09/2004 17:16:00
Quote Anchor link
nu staat er dus dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if ($_FILES['userfile']['tmp_name'][$i] != "") {
$dimensions = getimagesize($_FILES['userfile']['tmp_name'][$i]);
$breedte = $dimensions[0];
$hoogte = $dimensions[1];
if ($breedte < 1200 && $hoogte < 1200) {
$resolutie[$i] = "{$_FILES['userfile']['name'][$i]} heeft een te lage resolutie! Verwacht geen perfecte afdruk!";
}
}

?>


@dutchcamel
Heeft dat iets met de "bas is een kutn00b - lan" te maken?

@bas
andere bas

Edit: maar hai dugget nog steeds niet :-(
Gewijzigd op 01/09/2004 17:18:00 door Joris van Rooij
 
Dutchcamel

dutchcamel

01/09/2004 17:19:00
Quote Anchor link
$_FILES['userfile']['tmp_name'] is dus een array?

http://www.php.net/foreach

Of als je $i wil blijven gebruiken

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
for ($i = 0; $i < count($array); $i++) {
   // je code
}
?>
 
Dutchcamel

dutchcamel

01/09/2004 17:21:00
Quote Anchor link
Quote:
@dutchcamel
Heeft dat iets met de "bas is een kutn00b - lan" te maken?

Nop :)

Heeft dit iets met de online afdrukservice te maken? :)
 
Joris van Rooij

Joris van Rooij

01/09/2004 17:22:00
Quote Anchor link
het rare is dan dat deze wel werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
if ($_FILES['userfile']['size'][$i] > (1024*$maxsize) ) {
$toobig[$i] = "{$_FILES['userfile']['name'][$i]} is te groot! Hij mag niet groter zijn dan $maxsize kb. Kom persoonlijk langs met een CD-ROM.";
?>


@dutchcamel
Jazeker ;)
Gewijzigd op 01/09/2004 17:23:00 door Joris van Rooij
 
Joris van Rooij

Joris van Rooij

01/09/2004 17:31:00
Quote Anchor link
trouwens, voor alle checks staat dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
while ($i < $count) {
//de checks
}
?>


waarbij $count het aantal verstuurde foto's is..
 
Joris van Rooij

Joris van Rooij

01/09/2004 22:39:00
Quote Anchor link
Hallo, weet echt niemand meer een oplossing?? Ik zit werkelijk vast...

Summary:

Ik moet dus van elke file (in de array) de hoogt en de breedte hebben, en die checken. Wanneer die niet klopt, geef de $resolutie[$i] een waarde van de tekst.

Dit werkt niet. Waarom niet?
 
Dutchcamel

dutchcamel

01/09/2004 22:51:00
Quote Anchor link
Omdat met je while lus de $i niet meegeteld wordt.

Zoals ik al eerder gezegd heb, een array kun je veel beter doorlopen met een foreach() of desnoods een for().

http://www.php.net/foreach

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
foreach($array as $key => $value) {
   echo $key." - ".$value."<br>\n";
   // kun je even zien wat hij doet als het niet duidelijk is
}
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
for ($i = 0; $i < count($array); $i++) {
   // je code
}
?>


Wil je het echt perse met een while-loop doen (vraag me niet waarom je dat perse zou willen maar goed...:S) dan moet je onderaan je code (voor de } van de loop dus) deze regel toevoegen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$i
++;
?>
Gewijzigd op 01/09/2004 22:53:00 door dutchcamel
 
Mitch X

Mitch X

01/09/2004 23:04:00
Quote Anchor link
Jep dan wordt ie zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$i
= 0;
while($i < $getal)
{

   # Doe iets # Doe nog iets # Etc ...
   $i++;
}

?>
 
Joris van Rooij

Joris van Rooij

01/09/2004 23:34:00
Quote Anchor link
wat ik dan niet snap, is dat die $toobig functie wel werkt. Die zou volgens jullie dan toch ook niet mogen werken? Leg me dat nou eens uit. Want volgens mij zit het probleem niet in de while. (ik post dit nu even, omdat ik nu niet bij het script kan, en om dat via ssh te doen is ook zoiets)

@mitch
zo ziet hij er ook uit, ik heb niet het hele script gepost, dat zou een beetje te lang worden
Gewijzigd op 01/09/2004 23:38:00 door Joris van Rooij
 
Dutchcamel

dutchcamel

01/09/2004 23:42:00
Quote Anchor link
Laat eens een groter deel van het script zien dan, als je er echt alleen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
while($i < $getal) {
   if ($_FILES['userfile']['size'][$i] > (1024*$maxsize) ) {
      $toobig[$i] = "{$_FILES['userfile']['name'][$i]} is te groot! Hij mag niet groter zijn dan $maxsize kb. Kom persoonlijk langs met een CD-ROM.";
   }
}

?>


hebt staan kan het niet werken.
 
Joris van Rooij

Joris van Rooij

01/09/2004 23:44:00
Quote Anchor link
wacht, ik heb een beter idee

http://home.wanadoo.nl/lam24.7/temp.txt

heb ik ff via ssh eraf geript, ik moet toch iets?
 
Dutchcamel

dutchcamel

01/09/2004 23:46:00
Quote Anchor link
Tabs zouden handig zijn, eens kijken of ik het zo kan ontcijferen..
 
Joris van Rooij

Joris van Rooij

01/09/2004 23:53:00
Quote Anchor link
ja, ik moet toch iets heb ik toch gezegd...
 
Dutchcamel

dutchcamel

01/09/2004 23:57:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if ($breedte < 1200 && $hoogte < 1200) {
   // blaat
}
?>


Moet denk ik worden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
if ($breedte < 1200 || $hoogte < 1200) {
   // blaat
}
?>


als ik kijk naar wat je in je openingspost wil laten gebeuren. Zoals het er nu staat moet de breedte EN hoogte kleiner zijn dan 1200. Lijkt me dat dat een breedte OF lengte moet worden :)

Verder is de code voor mij te rommelig om aan te beginnen, sorry.
 
Joris van Rooij

Joris van Rooij

02/09/2004 00:01:00
Quote Anchor link
hij is rommelig omdat ik hem rechtstreeks via een ssh stream geplukt heb, ik heb het er het beste van proberen te maken hoor. Zeg nou zelf, hij is nu leesbaar.

dwz dat tabs, spaties, enters en andere opmaak verloren gaat. Dit heb ik via een tunnel en een tcplogger bijelkaar geflanst. Ik moet toch een keer aan remote management gaan denken. (xfree86+vnc of zo, maar dat is weer baaaad voor de serverload)

Edit: ik kom hier morgen nog op terug
Gewijzigd op 02/09/2004 00:06:00 door Joris van Rooij
 
Dutchcamel

dutchcamel

02/09/2004 00:06:00
Quote Anchor link
Ik vind van niet...

Ik ben net begonnen met overzetten in een editor met color highlighting en ben tabs toe gaan voegen. Je hebt een $i++ op een plek staat waar hij maar 1 keer langs komt.

Heb je wel al die site doorgelezen die ik al twee keer genoemd heb over foreach() ?

Daarmee kun je echt 10 keer simpeler door een array lopen.
 
Joris van Rooij

Joris van Rooij

02/09/2004 00:09:00
Quote Anchor link
ja, gedaan. Maar ik zoek een maatoplossing voor dit probleem. Anders moet ik 6(!) van dit soort scripts om gaan gooien, zo had ik hem goed aan de praat, totdat ik imagesize ging toevoegen.

Edit: ik zie morgen wel....
Gewijzigd op 02/09/2004 00:11:00 door Joris van Rooij
 

Pagina: 1 2 volgende »



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.