richiamare variabile

  • Creatore Discussione Creatore Discussione nim
  • Data di inizio Data di inizio

nim

Utente Attivo
11 Ott 2011
96
0
0
buonasera a tutti :)
vi spiego: l'action di un form conduce dalla pagina index.php alla pagina 2.php...nella index.php avevo scritto delle variabili e ora mi servirebbe che queste variabili siano stampate nella pagina 2.php ..
ovviamente se richiamo nella seconda pagina un variabile appartenente alla prima non funziona nulla,
mi potete aiutare a capire come poter richiamare la variabile da un atro file?
 
Ultima modifica:
ciao
o le trasmetti con un campo hidden dal form e poi le ricevi sempre con il $_POST, oppure nella index le passi in sessione e poi nelle altre ti leggi le sessioni
 
PHP:
     <?php
//definiamo il percorso alla cartella sorgente
$path="musica/";

//stabiliamo i formati riconoscibili
$formati=array('avi','mp3');

//apriamo la cartella che contiene le immagini
$open = opendir($path);

//leggiamo tutte le immagini con un ciclo
  $canzone=array();
  while(false !== ($f=readdir($open))) { 
    for($i=0;$i<count($formati);$i++){
       $formato=substr($f,(strlen($f)-3),strlen($f));
         if(in_array($formato,$formati)){
          $canzone[]=$f;
        }
     }
  }
  
  //mostriamo l'immagine casuale 
  if(count($canzone)==0);
  {
  $info = rand(0,(count($canzone)-1));
   $canz1="$path$canzone[$info]";
 $questa1="$canzone[$info]";
  
  }
?>
altre righe html
<form action="votazione1.php" method="post" name="scelta">
<input type="submit" size="34" name="questa" value="<?php echo $questa1; ?>" style="WIDTH: 115px; HEIGHT: 33px">
</form>
devo richiamare $questa1 e stamparla nel nuovo file
@borgo italia mi dispiace ma credo di non sapere come si usano le funzioni da lei indicate,in questo caso.
 
Ultima modifica:
Intanto diamo una sistemata allo script PHP:
PHP:
<?php
$canzoni = array_merge(glob('musica/*.avi'), glob('musica/*.mp3'));
?>
Questa unica riga fa quello che tu hai realizzato in 20.

Nel tuo script c'è qualcosa che mi sfugge, oltre al recupero dei file multimediali. Cosa dovrebbe fare poi lo script? Cerchiamo di trovare un modo migliore per farlo, insieme.
 
va bene.. lo script dovrebbe estrarmi dalla cartella "musica" un file multimediale casualmente con un random...
poi dovrebbe esserci un button con value = "titolo della canzone "(nello script $questa1 ) che al click mi aziona votazione1.php..in votazione1.php voglio che si stampi $questa1..
spero di essere riuscito a chiarire
 
Allora basta che nella pagina index.php metti:
PHP:
<?php
$canzoni = array_merge(glob('musica/*.avi'), glob('musica/*.mp3'));

if (empty($canzoni)) {
    die('Non ci sono canzoni da visualizzare.');
}

shuffle($canzoni);
$canzone = $canzoni[0];

echo <<<EOF
<form action="votazione1.php" method="post">
    <input type="submit" name="canzone" value="{$canzone}" />
</form>
EOF;
?>
E nella pagina votazione1.php:
PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
    header('Location: index.php');
    exit();
}

echo "Hai votato {$_POST['canzone']}!";
?>
 
prima di tutto ringrazio per la disponibilità..
ma chiedo , nel dettaglio mi spieghereste cosa succede con il codice linkatomi?
cioè so che viene raccolto l'array comprendente i file nella cartella musica...
ma poi dove viene riprodotta la canzone casualmente scelta dalla cartella?
grazie in anticipo
 
Nella pagina index.php viene scelto un file .avi o .mp3 dalla cartella musica e viene impostato come valore del bottone di submit del form. Se non c'è alcun file nella cartella viene visualizzato un errore.

Nella pagina votazione1.php se il metodo della richiesta è POST viene visualizzata la canzone scelta, altrimenti si reindirizza al form (perché l'utente ha tentato di accedere direttamente al file).

Se vuoi che venga riprodotto il brano scelto dovrai installare un player nel tuo sito, ma per questo apri un'altra discussione.
 
va bene però ora ho provato a inserire il codice da lei inviatomi però mi appare sempre il die..cioè che non ci sono file da visualizzare ,
eppure caricata nel server c'è una cartella con 9 file .mp3.. forse un'errore di battitura?
a scanso di equivoci ho creato una pagina totalmente bianca con soltanto il suo codice da inserire nella index e il risultato è sempre il DIE.
prego di avere pazienza.
 
ciao
la funzione glob ha un difetto, se nella cartella ci sono file (es.)
musica_1.mp3
musica_2.MP3
analogamente per avi AVI

$canzoni = array_merge(glob('musica/*.avi'), glob('musica/*.mp3'));

trova solo i file con estensione minuscola (esperienza dovuta a xyz.jpg mentre avevo xyz.JPG)
quindi verifica come sono scritte le estensioni
eventualmente aggiungi altri array_merge es.

$canzoni=array_merge($canzoni, glob('musica/*.MP3'));
 
Ultima modifica:
niente..ho aggiunto anche glob('musica/*.AVI') ma mi dice NULL, non trova alcun file..comunque sì, ci sono alcune canzoni con nome per esempio 01 - Ghosts 'n' Stuff.mp3
quindi con le maiuscole.
avete qualche altra idea?
perchè per esempio ho visto che nel codice che vi avevo scritto all'inizio,i file venivano letti e riprodotti(riprodotti con un player) .
comunque non funzia neanche con tutto minuscolo ...(appena provato)
altre idee?
 
Ultima modifica:
ciao
non c'entrano le maiuscole/minuscole nella prima parte del titolo, stai usando una wildcard (l'asterisco), ma solo nell'estenzione.
prova a farti questo piccolo script (chiamalo ad es. cerca.php) e lancialo
PHP:
<?php
//devi ripetere 3 volte il merge
$canzoni = array_merge(glob('musica/*.avi'), glob('musica/*.mp3'));//crea un primo arry con gli .avi e .mp3, se ci sono
$canzoni = array_merge($canzoni, glob('musica/*.MP3'));//accoda all'array sopra gli eventuali .MP3
$canzoni = array_merge($canzoni, glob('musica/*.AVI'));//ulteriore accodamento degli eventuali .AVI
foreach($canzoni as $titolo){
	echo "titolo canzone $titolo<br>";
}
?>
però stai attento a dove lo metti. deve trovarsi nella cartella appena superiore alla cartella musica (altrimenti devi modificare il percorso)
es.
root
.. cerca.php
...|musica
......|titolo_1.mpr ecc..

lo script dovrebbe restituirti in output
titolo_1.mp3
titolo_27.avi
pinco_pallo.MP3
....
 
guardi ho scritto quello che mi ha detto in un file prova.php, il percorso è giusto ma non trova niente..non vorrei aver sbagliato qualcosa ma il codice è quello scritto da lei,il percorso c'è,,non capisco proprio..(dentro la cartella musica c'è un file sasasa.mp3)
 
ciao
strano, se il percorso è quello giusto e i file ci sono dovrebbe funziare.
piccolo dubbio che versione di php hai?
glob funzia PHP 4 >= 4.3.0, PHP 5

se hai una versione precedente stiamo girando come trottole. eventualmente se è precedente aggiornala.

p.s.
non darmi del lei (tantomeno al baby alex)
 
attualmente non avendo il computer perchè si è rotto ne sto usando un altro e siccome ce l'ho da poco faccio direttamente gli upload nel dominio in cui sono registrato,non faccio girare niente in locale..
non dovrebbe cambiare niente
 

Discussioni simili