• User

    Istruzione SWITCH?

    Salve,
    premetto che non so nulla di php e che lo script di seguito non è mio, ma ho bisogno di una mano.

    **INDEX.PHP
    **[php]<?php

    define('LEGGEND', true);

    class Config {
    var $password = "password"; // Inserisci tra le virgolette la password per accedere all'amministrazione

    var $tempo = "0"; // Dopo quanto tempo intendi cambiare avatar? 0 = ogni refresh
    var $cartella = "avatar"; // Nome della cartella da cui verranno presi gli avatar

    var $estensioni_ammesse = array(".gif",".png",".jpg",".jpeg"); // Non modificare
    }

    require("function.php");

    switch ($_GET["act"]) {

    case "admin":
    require("admin.php");
    break;

    case "avatar.gif":
    $imm_leggend = new CreaImg;
    $immagine_corrente = $imm_leggend->ricava_imm();
    $ved_leggend = new Vedimmagini($immagine_corrente);
    break;

    default:
    echo "<a href='./?act=avatar.gif'>Avatar Random</a> - <a href='index.php?act=admin'>Amministrazione</a>";

    }

    ?>[/php]**FUNCTION.PHP
    **[php]<?php

    // ****** FUNZIONI PER LE LIBRERIE GD
    class CreaImg extends Config {

    var $file_avy = "avy.txt";
    // ricava l'immagine
    function ricava_imm() {
    $times = time(); // Numero di secondi
    $tempo_cambia_avatar = $times - $this->tempo;
    $c = $this->leggi();
    if ($c<$tempo_cambia_avatar) { $this->scrivi($times,$this->imgcasuale()); }
    $arr = explode('|', $c);
    return $arr[1];
    }
    // legge un file
    function leggi() {
    $var=@fopen($this->file_avy,'r');
    $contenuto= @fread($var,filesize($this->file_avy));
    @fclose($var);
    return $contenuto;
    }
    // Scrive un file
    function scrivi($tempo,$immagine) {
    $var=@fopen($this->file_avy,'w+');
    @fwrite($var,"$tempo|$immagine");
    @fclose($var);
    }

    // Ricava l'estensione del file
    function ricavaEstensioni($image) {
    return strtolower(substr($image, strrpos($image, "."), strlen($image)-strrpos($image, ".")));
    }

    // Funzione che ricava una immagine nella cartella prescelta.
    function imgcasuale() {

    $immagini_disponibili = array();

    if (is_dir($this->cartella)) {
    if ($dh = opendir($this->cartella)) {
    while (($file = readdir($dh)) !== false) {
    if ($file != "." && $file != ".." && in_array($this->ricavaEstensioni($file),$this->estensioni_ammesse)) {
    $immagini_disponibili[] = "$this->cartella/$file";
    }
    }
    closedir($dh);
    }
    }

    srand ((double)microtime()*1000000);
    $randomnum = rand(0, count($immagini_disponibili)-1);

    return $immagini_disponibili[$randomnum];
    }

    }

    class Vedimmagini extends CreaImg {

    function Vedimmagini($image) {
    $ext = strtolower($this->ricavaEstensioni($image));
    if ($ext == ".png") {
    $im = imagecreatefrompng($image);
    header("Content-type: image/png");
    imagepng($im);
    imagedestroy($im);
    } elseif ($ext == ".gif") {

         header("Content-type: image/gif"); 
    

    $im = imagecreatefromgif($image);
    imagegif($im);
    imagedestroy($im);
    } elseif ($ext == ".jpg" || $ext == ".jpeg") {
    header("Content-type: image/jpeg");
    $im = imagecreatefromjpeg($image);
    imagejpeg($im);
    imagedestroy($im);
    }

         else { echo "Il file '<b>$im</b>' non è supportato dalle nostre librerie."; }
    

    }

    }[/php]Lo script in se non mi da problemi, fa quello che deve fare (image random), il problema è che l'url dell'immagine finale così come vien fuori non mi serve a nulla. Avrei bisogno che invece di /avatar/?act=avatar.gif l'url finale risultasse /avatar/avatar.gif.

    Da quel che sono riuscito a capire (credo nulla :bho:) l'istruzione SWITCH è quella che determina ciò che a me serve.

    Spero possiate aiutarmi. Grazie.


  • ModSenior

    lo switch non centra nulla, al massimo devi fare usare il mod-rewrite per riscrivere l'indirizzo.

    E modificare il linkmostrato alterando l'echo