Gå til innhold

NH

Medlemmer
  • Innlegg

    190
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av NH

  1. Tok meg friheten til å skrive om scriptet ditt litt, er nå rekursivt ;)

    <?php
    $path_to_images = "bilder/";  
    $default_img = "sikkerhet.gif";
    
    //ulovlige subfolders
    $deny_subfolder_names = array("private_bilder", "porr");
    //legg til flere mapper om nødvendig, adskill med komma
    
    $images = array(); //initier et array, ønsker å bruke en global  
    
    function getRandomImage($path, $img) {
    global $images;
      if (getImagesList($path) ) {
          mt_srand( (double)microtime() * 1000000 );
          $num = array_rand($images);
          $img = $images[$num];
      } 
      return $path . $img;
    }
    
    function getImagesList($path) {
    global $images, $deny_subfolder_names;
      if ( $img_dir = @opendir($path) ) {
          while ( false !== ($img_file = readdir($img_dir)) ) {
              if ( preg_match("/(\.gif|\.jpg)$/", $img_file) ) {
                  $images[] = $img_file; 
     //en counter er unødvendig, dette klarer php selv
              }
     //legger til rekursivitet her:
              if(is_dir($img_file)){
     //se etter ulovlige mapper
     if(!in_array($img_file, $deny_subfolder_names)){
     	//kjør samme metode engang til for undermappen
               	getImagesList($path.$img_file."/");
     }
              }	
          }
          closedir($img_dir);
          return true;//vi returnerer kun true.
      } 
      return false;
    }
    ?>

  2. Bruk av script/programmer er tillatt så lenge bruken ikke medfører et urimelig stort ressursforbruk på maskinene, og at scriptene / programmene på ingen måte benyttes til å tilegne seg tilgang til andre filer eller informasjoner på maskinene enn kundens egne. Kunden bør vise hensyn til at alle systemressurser deles med øvrige kunder.

     

    Tok kanskje litt hart i med stengingen, men de er nok ikke for fan av det. det avhenger jo hvor ofte cachen brukes, og hvor aktivt bruk opplastningen er...

  3. Da web10.nu er en billighost med _mange_ brukere per server, tviler jeg sterkt på at de vil gå med på dette da serverene deres er overbelastede nok fra før av.

     

    Om du i det hele tatt klarer å overstyre dette vil du høyst sansynlig fort merke at webhotellet ditt er borte og avtalen oppsagt da det er i mot retningslinjene demmes. Annbefaler at du leser disse. Selv om trafikken er ubegrenset er det kun snakk om innenfor rimelighetens grenser, og de er ikke glad i overbelastning av serverne, har selv vært i kontakt med deres kundeservice anngående dette da jeg selv har et galleri på deres servere...

     

    Vil nok annbefale som nevnt tidligere at du legger inn en limit i scriptet ditt og manuelt resizer bilder til rundt 1024px...

  4. Du kan prøve å sette inn fnutter i parantesene til funksjonene dine.

    F.eks

    imagecreate('$bredde', '$hoyde')
    

    6908689[/snapback]

     

     

    Får å få satt dette på plass en gang for alle.

     

    PHP er som kjent et Easy Typed språk. og skiller derfor mellom forskjellige variabel typer uten at programereren trenger å tenke så mye på det, men de fleste som driver med PHP på privat basis som mange av oss her, er ikke klar over at det i det hele tatt eksisterer forskjellige typer variabler. også i php.

     

    fnutter som du kaller det skal brukes rundt det som kalles en "string" en string er en tekst lagret i variabelen, her brukes fnutter grunnet ofte ulovlige tegn, mellomrom, linjeskift, etc.

     

    men det finnes også mangle flere typer. for å nervne noen:

    boolean - true/false

    long - desimaltall

    double - desimaltall

    int - heltall

     

    disse skal ikke ha fnutter da det krever at php må regne ut hvem variabeltype du EGENTLIG skal bruke. fnutter er ikke noe vi bare gjetter på, eller prøver oss frem med.

  5. GET er variabler du mottar i adressen til siden. ? forteller serveren at etter her defineres variabler. slik:

     

    ?variable=verdi

     

    som hentes ut med php som vanlig:

     

    $var = $_GET['variabel'];

     

    ønskes flere variabler sent samtidig avskilles disse med et & tegn

     

    ?variabel1=verdi1&variabel2=verdi2

     

    POST derimot er data mottatt fra en FORM, atlså må du ha en form rundt det, men det trenger ikke vises som en submit knapp:

     

    <form name="skjema1" method="post" action="?variabel1=verdi1">
    <input type="hidden" name="variabel2" value="verdi2" />
    <a href="" onclick="this.submit()">link</a>
    </form>
    

     

    med denne linken sendes variabel1 som en get (se action atributten i form taggen)

     

    og variabel2 som en POST (se input taggen som er hidden, den vises altså ikke, duh :p )

     

    (ikke 100% sikker på JS akkurat nå, men submit med tekstlink er i allefall ment)

     

    er du usikker på om du mottar data som post eller get, eller noen ganger begge deler kan $_REQUEST benyttes

     

    nyttig lesestoff

    http://no.php.net/manual/en/language.varia....predefined.php

  6. dette kan fint gjøres i spøøringen din, sparer deg for noe resurser og ser mere ryddig ut:

     

    SELECT _column_ from _table_ WHERE DATE_SUB(CURDATE(), INTERVAL 14 DAY) > _date_
    

     

    der allt mellom _ og _ er en kolonne i databasen din, f.eks _date_ som er dato kolonnen din (selvfølgelig uten _ og _)

     

    nyttig lesestoff:

    http://dev.mysql.com/doc/refman/5.1/en/dat...-functions.html

  7. Til resizing kan du bruke min ferdige klasse jeg har lagt ut på NWF i denne posten:

    http://norskwebforum.no/viewtopic.php?t=22753

    (Nic0, det er meg)

     

    når det kommer til pagination er dette et tema som er tatt opp veldig mange ganger. Her er det ikke stort værre en å lage en liten formel:

     

    et eksempel

    <?php
    //åpne filen med informasjon om hvor bildene ligger og lagre disse i et array
    $images = file(bildeoversikt.txt);
    
    $itemsPerPage = 15;
    $currPage = ($_GET['page']) ? intval($_GET['page']) : 1;
    $start = $itemsPerPage*($currPage-1);
    $end = $itemsPerPage*($currPage-1) + $itemsPerPage;
    
    //hvis de 15 aktuelle bildene
    for($i = $start;$i<$end; $i++){
    echo '<img src="'.$images[$i]['adress'].'" />";
    }
    
    //beregn hvor mange sider det er utifra antall bilder totalt og hvis en link til hver enkelt side
    for($i = 1; $i<ceil(count($images)/$itemsPerPage);$i++){
    printf('<a href="?page=%d"> | %d  | </a>', $i, $i);
    }
    
    ?>
    

     

    her er det snakk om å regne ut hvilke bilder i arrayet som skal vises. dette må selfølgelig tilpasses til _ditt_ system

×
×
  • Opprett ny...