Visualizzazione risultati 1 fino 11 di 11

Discussione: immagine casuale all'apertura della pagina...

  1. #1
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito immagine casuale all'apertura della pagina...

    salve a tutti..
    ho scritto questo script
    Codice PHP:
    <?php
    $casual
    = rand(1, 100);
    echo
    "$casual";
    ?>
    che praticamente all'apertura della pagina genera un numero a caso da 1 a 100.
    allora mi sono chiesto : si potrebbe fare lo stesso anche con delle immagini?
    quindi ho scritto questo
    Codice PHP:
    <?php
    $img
    = array('immagine1.jpg', 'immagine2.jpg' , 'immagine3.jpg', 'immagine4.jpg');
    $ran = rand('immagine1.jpg','immagine4.jpg' );
    echo
    "$img[$ran]";

    ?>
    il problema è che non funziona...sono all'inizio nella programmazione quindi qualcuno mi potrebbe suggerre qualcosa??
    Ultima modifica di icfast : 09-09-2011 alle ore 20.51.41

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    La funzione rand() accetta solo numeri interi.

    Per recuperare il valore di un'array dovresti usare l'indici, il quali conteggio parte da 0, non è un'array associativa, anche perché le array associative si fanno in altro modo.

    La funzione rand() dovrebbe avere come primo valore uno zero, e come secondo valore il conteggio degli elementi meno uno.

    Per ottenere il numero totale di elementi in un'array dovresti usare la funzione count(), sottratta ad 1, visto che: siccome il conteggio degli indici parte da zero e delle elementi da uno, l'ultimo indice corrisponde al numero precedente del numero totale degli elementi. quindi:

    Codice PHP:
    count(array) - 1
    Se sei all'inizio della programmazione si vede, anche perché se vedi bene le cose te ne accorgi subito dell'errore.
    Ultima modifica di sevenjeak : 09-09-2011 alle ore 21.38.24

    Sevenjeak
    Software developer and much more

  3. #3
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    scusi la rottura ma quindi il codice come verrebbe fuori?

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cosi:

    Codice PHP:
    <?php
    $img
    = array('immagine1.jpg', 'immagine2.jpg' , 'immagine3.jpg', 'immagine4.jpg');
    $ran = rand(0, count($img) - 1);
    echo
    "$img[$ran]";
    ?>

    Sevenjeak
    Software developer and much more

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Senza star a creare array, potresti provare una cosa come:

    Codice PHP:
    echo 'immagine'.rand(0,$n).'.jpg';
    Dove $n è il numero delle immagini.


    Ciao!
    Ultima modifica di alemoppo : 10-09-2011 alle ore 13.26.34

  6. #6
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ok quindi adesso si vede soltanto il nome dell'immagine tipo "immagine1.jpg" eccetera...
    per vedere l'immagine intera ho aggiunto questa stringa :
    al posto di
    Codice PHP:
    echo "$img[$ran]";
    ho scritto
    Codice PHP:
    echo "<img src=\"$img[$ran]\" alt=\"Visita il
    sito dell'autore\" target=\"blank\" border=\"2\" />"
    ;
    il problema è che adesso si vede solo un'immagine...
    dov'è l'errore??? :(

    EDIT:

    scusa alemoppo quindi come verrebbe tutto il codice?
    cioè la variabile n ($n) come la scrivo?perchè effettivamente mi troverei meglio senza array
    Ultima modifica di alemoppo : 10-09-2011 alle ore 14.19.26 Motivo: Non fare messaggi consecutivi: usa il tasto Edita!

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    La variabile $n dovresti inizializzarla con il numero massimo di foto: se ad esempio ne hai 10 (da 0 a 9), dovresti fare:
    Codice PHP:
    $n = 9;
    echo
    'immagine'.rand(0,$n).'.jpg';
    Se il numero di immagini è costante, puoi scriverlo direttamente al posto di $n, in questo modo:

    Codice PHP:
    echo 'immagine'.rand(0,9).'.jpg';
    Ciao!
    Ultima modifica di alemoppo : 10-09-2011 alle ore 14.26.09

  8. #8
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    ok ma il problema è che nella pagina si vede il nome dell'immagine...non l'immagine stessa...come si fa per vedere l'immagie e non olo il nome?

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Come hai scritto sopra, o anche:

    Codice PHP:
    <img src='<?php echo 'immagine'.rand(0,9).'.jpg'; ?>'>
    Ciao!

  10. #10
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito

    allora o io nn capisco niente o c'è un errore...
    ho caricato con filezilla 11 immagini e dopodichè ho caricato un file chiamato index.php con la seguente stringa:
    Codice PHP:
    <img src='<?php echo 'immagine'.rand(0,11).'.jpg'; ?>'>
    vada sul mio sito a vedere cosa è successo se può...
    quando ho sostituito rand con count l'immagine si vede,ma ne viene visualizzata solo 1:immagine1.jpg!
    mentre se lasciavo rand non si vedeva neanche quella..
    Ultima modifica di icfast : 10-09-2011 alle ore 16.49.03

  11. #11
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    Quel codice è corretto, togli il count e rimetti com'era prima.
    Il problema è nel nome delle immagini: .JPG (maiuscolo) è diverso da .jpg (minuscolo).
    Per cui hai due strade: o rinomini tutte le foto cambiando le maiuscole in minuscole, oppure modifichi il nome nello script, che quindi diventa:
    Codice PHP:
    <img src='<?php echo 'immagine'.rand(0,11).'.JPG'; ?>'>
    Se scegli quest'ultima soluzione, però, non apparirà l'immagine 1, perchè ha l'estensione in lettere minuscole; devi farla diventare .JPG.

    Ciao!
    Ultima modifica di programmazioned : 10-09-2011 alle ore 17.03.03

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •