Avatar billede mekaniker Nybegynder
02. december 2003 - 22:02 Der er 11 kommentarer og
1 løsning

hjælp til lave noget smart

jeg har et site hvor det er muligt at uploade 4 billeder.
De 4 billeder tjekkes for hver 3 ting, det er filtype, KB størrelse og pixel størrelse.

som det er nu, fanger jeg fejlene sådan:

switch ($i)
{
case 0:
$fejl9 = "yes";
break;
case 1:
$fejl10 = "yes";
break;
case 2:
$fejl11 = "yes";
break;
case 3:
$fejl12 = "yes";
break;
}

header ("Location:side1.php?fejl1=$fejl1&fejl2=$fejl2&fejl3=$fejl3&fejl4=$fejl4&fejl5=$fejl5&fejl6=$fejl6&fejl7=$fejl7&fejl8=$fejl8&fejl9=$fejl9&fejl10=$fejl10&fejl11=$fejl11&fejl12=$fejl12");       

dette er ikke helekoden men jeg håber i forstår hvad jeg mener.
På side 1 skriver jeg så fejlen ud for hvert billede til brugeren.

Jeg søger et eksempel til at lave dette lidt smartere.

Mekaniker
Avatar billede tipsen Nybegynder
02. december 2003 - 22:28 #1
Eksempel:

$errorarray = array(
  1 => array('filetype' => true, 'filesize' => false, 'pixelsize' => false),
  2 => array('filetype' => false, 'filesize' => false, 'pixelsize' => true),
  3 => array('filetype' => false, 'filesize' => true, 'pixelsize' => false),
  4 => array('filetype' => true, 'filesize' => true, 'pixelsize' => true)
);
header("Location: side1.php?errorstuff=" . urlencode(serialize($errorarray)));

side1.php:
$errorarray = unserialize(urldecode($_GET['errorstuff']));
echo '<pre>';
print_r($errorarray);
echo '</pre>';
Avatar billede tipsen Nybegynder
02. december 2003 - 22:34 #2
Også til side1.php:
foreach($errorarray as $key => $errorcodes) {
    echo "Billede nr. $key<br>";
    foreach($errorcodes as $key => $val) {
        if ($val) {
            echo "$key: yes<br>";
        } else {
            echo "$key: no<br>";
        }
    }
}
Avatar billede mekaniker Nybegynder
02. december 2003 - 23:05 #3
jeg kan måske godt se ide'en i det, men hvordan henviser jeg til hvert array.

altså hvis billede 1 er forkert filtype, så skal jeg jo filetype = false i det første array, hvordan gør jeg lige det.
Avatar billede tipsen Nybegynder
02. december 2003 - 23:46 #4
Du sætter værdien for filetype, billede 1 sådan her:

$errorarray[1]['filetype'] = false;

Ovenstående system vil være langt mere fleksibelt og også fungere, hvis du beslutter at ændre antal billeder osv.
Avatar billede mekaniker Nybegynder
03. december 2003 - 08:08 #5
Hvilken en skal jeg bruge til side 1:

denne:
$errorarray = unserialize(urldecode($_GET['errorstuff']));
echo '<pre>';
print_r($errorarray);
echo '</pre>';

eller denne:
foreach($errorarray as $key => $errorcodes) {
    echo "Billede nr. $key<br>";
    foreach($errorcodes as $key => $val) {
        if ($val) {
            echo "$key: yes<br>";
        } else {
            echo "$key: no<br>";
        }
    }
}
Avatar billede mekaniker Nybegynder
03. december 2003 - 08:21 #6
jeg får denne fejl på side 1

Notice: unserialize(): Error at offset 14 of 302 bytes in G:\Websites\php\cms_error\admin\Side1\side1.php on line 540
Avatar billede mekaniker Nybegynder
03. december 2003 - 12:05 #7
Jeg har fået selve array delen til at virke, men den fejler når den skal sende arrayet med i URL'en

jeg får en fejl i denne linie: (på side1.php)
$errorarray = unserialize(urldecode($_GET['errorstuff']));

jeg ved selvfølgelig ikke om det er modtagelsen eller afsendelsen den er gal med.
Avatar billede mekaniker Nybegynder
03. december 2003 - 12:42 #8
Jeg har klaret den med følgende linie:
$errorarray = unserialize(urldecode(stripslashes($_GET['errorstuff'])));

Tak for hjælpen, sdim er svar så du kan få nogle point.
Avatar billede tipsen Nybegynder
03. december 2003 - 12:56 #9
Årsagen til at stripslashes er nødvendig er nok fordi serveren er sat op til automatisk at bruge addslashes på indhold fra GET, POST, COOKIES og SESSIONS!

Godt det fungerer :-)
Avatar billede mekaniker Nybegynder
03. december 2003 - 13:59 #10
Hvis jeg nu vil have denne:

$errorarray = unserialize(urldecode($_GET['errorstuff']));
foreach($errorarray as $key => $errorcodes) {
    echo "Billede nr. $key<br>";
    foreach($errorcodes as $key => $val) {
        if ($val) {
            echo "$key: yes<br>";
        } else {
            echo "$key: no<br>";
        }
    }
}

til at ligge i en fil for sig selv, også lave en include på de sider hvor jeg skal vise fejlen.
Skulle der være nogle problemer idet.

Jeg kan nemlig ikke få det til at virke.
Avatar billede tipsen Nybegynder
03. december 2003 - 16:27 #11
Du skal selvfølgelig have pakket koden ind <?php ?> tags - men det er standard ved brug af include! Derudover burde der ikke være nogle problemer.

Det kan dog være en fordel med følgende:

<?php
if (isset($_GET['errorstuff'])) {
    $errorarray = unserialize(urldecode($_GET['errorstuff']));
    foreach($errorarray as $key => $errorcodes) {
        echo "Billede nr. $key<br>";
        foreach($errorcodes as $key => $val) {
            if ($val) {
                echo "$key: yes<br>";
            } else {
                echo "$key: no<br>";
            }
        }
    }
}
?>
Avatar billede mekaniker Nybegynder
04. december 2003 - 20:01 #12
Jeg har fået det lavet. Det er blevet supper lækkert.

Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester