Scorrere una dir codice particolare

Monital

Utente Attivo
15 Apr 2009
778
2
18
Salve a tutti,

quello che vorrei fare è un pò particolare, cercherò di speigarmi,

in realtà ho trovato più o meno come fare però mi si presenta un problema

spiego

Devo creare un file che mi lista una serie di hyperlink ognuno collegato ad una specifica cartella rpesente nella cartella madre.

La dir mamma presenta altre cartelle ad esesmpio
1-figlio
2-figlio
3 - figlio

in pratica ognuno di questi numeri ha un nome nel mio database
1 = giovani
2 = andrea
3= Paolo

Ora dovrei tramite uno script prendere tutti i numeri iniziali delle sottocartelle di /mamma , estarrre il nome di queste dal database e listarle come hyperlink e quindi avere la seguente lista

Giovanni
Andrea
paolo

dove ognuno di questi link deve inviare ad un altro file il suo suffisso

ad esempio se uno clicca su giovanni si deve aprire un file /index e deve ricevere l'id 1 di giovanni

non so se mi sono speigato.

mi semrba molto complessa come cosa :hammer:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prova con qualcosa di simile:
PHP:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=directory', 'root', 'password');
$stm = $pdo->prepare('SELECT name FROM directories WHERE id = ?');

$dirs  = glob('mamma/*', GLOB_ONLYDIR);
$names = array();

foreach ($dirs as $dir) {
	$num = explode(' ', end(explode('/', $dir)));
	$num = $num[0];
	
	$stm->execute(array($num));
	
	if ($stm->rowCount() == 0) {
		// nessun record trovato per questo ID
		
		continue;
	}
	
	$data = $stm->fetch();
	$name = $data['name'];
	
	// $name contiene il nome associato alla cartella
	
	$names[] = $name;
}

foreach ($names as $name) {
	echo "<a href=\"{$name}\">{$name}</a><br />";
}
?>
Non l'ho testato, quindi probabilmente non funzionerà.

Fammi sapere.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
mamma mia. :crying:

Mi vergogno di chiederti cosa hai scritto . Mi sono limitato ad un copiaincolla e cambiare i parametri senza capirci un tubo e devo dire che funge quasi tutto tranne per l'href che dovrebbe indirizzare ad un file inviando solo l'id della cartella per il resto mi lista esattamente solo le cartelle avente un id-nomecartella.

Domani mi studio sta cosa del PDO avevo letto qualcosa di sfuggita ma è la prima volta che vedo questi codici.

Per l'hefr invece come si può inviare l'id della cartella come se fosse un GET o un POST?

Grazie !
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
ok risolto girovagando sul web

ho isnerito un form e una stringa in javascript

PHP:
<form id="form_1" method="post" action="file.php">
<?php
$pdo = new PDO('mysql:host=localhost;dbname=directory', 'root', 'password');
$stm = $pdo->prepare('SELECT name FROM directories WHERE id = ?');

$dirs  = glob('mamma/*', GLOB_ONLYDIR);
$names = array();

foreach ($dirs as $dir) {
    $num = explode(' ', end(explode('/', $dir)));
    $num = $num[0];
    
    $stm->execute(array($num));
    
    if ($stm->rowCount() == 0) {
        // nessun record trovato per questo ID
        
        continue;
    }
    
    $data = $stm->fetch();
    $name = $data['name'];
    
    // $name contiene il nome associato alla cartella
    
    $names[] = $name;
}

foreach ($names as $name) {
    echo "<li><a href=\"#\" onClick=\"document.getElementById('form_1').submit()\">{$name}</a></li><br />";

}
?>

poi ho avuto un altro problema ma per fortuna la beata session_start mi ha risolto tutto

Grazie ancora.

però però

se non ti secca ed hai due minuti mi spieghi in breve questo codice?
new PDO e glob sono arabo per me ed ora sono troppo rpeso epr leggermi le guide
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
PDO (PHP Data Objects) è una libreria introdotta in PHP5 per l'accesso e l'esecuzione di istruzioni su qualunque tipo di RDBMS (MySQL, SQLite, PostgreSQL, etc.). Viene usato nelle moderne applicazioni per permettere all'utente l'uso di qualunque tipo di database, e anche per evitare molti rischi di sicurezza (ad esempio con le prepared statement si elimina l'obbligo di eseguire l'escape dei valori). La documentazione è qui: http://php.net/manual/en/book.pdo.php.

glob() è invece una funzione per listare tutti i file corrispondenti al pattern specificato. Vedi qua: http://it.php.net/manual/en/function.glob.php.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
@alex
dato che non sempre gli host vengono aggiornati ad ogni novità, basta in phpinfo() per vedere se le pdo ci sono? e se si (o no) nel listato in che punto guardare?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Come non detto..............

allora intanto grazei alessandro epr i link, come finisco sta cosa li leggerò molto attentamente.

posto sempre qui perchè sicuramente il problema dipende dalla query anche se si presenta nell'invio delle variabili.

Ieri non mi ero accorto dell'inghippo sia per l'ora sia perchè testavo avendo una cartella sola nella dir da esplorare, aggiungendone altre epr prova mi sonoa ccorto che in sostanza mi invia tutti gli id ed usando il GET mi rovina il link

che diventa www.miosito.com/script/index.php?id=1&id=2&id=3 etc. tanti sono gli id tante volte mi riporta l'id nel GET

penso che quessto dipenda dal fatto che laquery non è associativa quindi mi invia tutti gli id mentre io devo inviare solo l'id rispettivo al $name dell'href

come si fa ora?

Intanto sfoglio un pò quei link sperando di trovare la soluzione
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
@borgo: phpinfo() visualizza anche tutte le estensioni installate, quindi sì, puoi controllare con quello se PDO è abilitato. Non so in che punto guardare, cerca nella pagina premendo CTRL + F e digitando "pdo".

@Monital: tu non devi semplicemente visualizzare una lista coi link a tutte le directory? Non capisco perché hai usato un form. Basta modificare così il mio script:
PHP:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=directory', 'root', 'password');
$stm = $pdo->prepare('SELECT name FROM directories WHERE id = ?');

$directories = array();
foreach (glob('mamma/*', GLOB_ONLYDIR) as $dir) {
    $num = explode(' ', end(explode('/', $dir)));
    $num = $num[0];

    $stm->execute(array($num));

    if ($stm->rowCount() == 0) {
        // nessun record trovato per questo ID

        continue;
    }

    $data = $stm->fetch();
    $directories[$dir] = $data;
}

foreach ($directories as $name => $directory) {
    echo "<a href=\"pagina.php?id={$directory['id']}\">{$directory['name']}</a>";
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
è questo in
Configure Command
cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template" "--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build" "--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared" "--without-pi3web"
?
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
@borgo: phpinfo() visualizza anche tutte le estensioni installate, quindi sì, puoi controllare con quello se PDO è abilitato. Non so in che punto guardare, cerca nella pagina premendo CTRL + F e digitando "pdo".

@Monital: tu non devi semplicemente visualizzare una lista coi link a tutte le directory? Non capisco perché hai usato un form. Basta modificare così il mio script:
PHP:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=directory', 'root', 'password');
$stm = $pdo->prepare('SELECT name FROM directories WHERE id = ?');

$directories = array();
foreach (glob('mamma/*', GLOB_ONLYDIR) as $dir) {
    $num = explode(' ', end(explode('/', $dir)));
    $num = $num[0];

    $stm->execute(array($num));

    if ($stm->rowCount() == 0) {
        // nessun record trovato per questo ID

        continue;
    }

    $data = $stm->fetch();
    $directories[$dir] = $data;
}

foreach ($directories as $name => $directory) {
    echo "<a href=\"pagina.php?id={$directory['id']}\">{$directory['name']}</a>";
}
?>

si scusa non ho scritto poi

avevo risolto provvisoriamente facendo una query con mysql associativo e nell'href indicavo l'id sopo l'?

così

PHP:
$sqlquery = "SELECT * FROM tabella WHERE nome= '{$name}'";
$result = mysql_query($sqlquery);
while ($data = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $name = $data['nome_league'];
	$id=$data['id'];
	}

    echo "<li><a href=\"../pagina.php?id=$id\" onClick=\"document.getElementById('form_1').submit()\">{$name}</a></li><br />";


}

però mi sembra più pulito come dici te ma di sto PDO ne so praticamente 0 quindi nell'attesa ho risolto così

il form l'ho inserito eprchè avevo trovato inr ete in un forum dicevano di inserire il form e cmq credo mi serva lo stesso eprchè devo inviare alla pagina.php una variabile fissa che però mi sta creando un problema inviata come get.

E difficile da spiegare ma a me serve che alla pagina.php arrivi anche una variabile fissa diciamo $var=x che gli faccia capire che l'id è stato inviato dalla pagina della lista.

questa variabile la invio con un hidden e poi in pagina.php effettuo un if dove se la variabile fissa è repsente segue un iter diverso sennò nisba.
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Allora ti conviene fare un controllo sul referrer:
PHP:
<?php
if ($_SERVER['HTTP_REFERER'] != 'url pagina lista') {
    header('HTTP/1.0 403 Forbidden');
    die('Accesso negato.');
}

// ...
?>
Anche se in teoria si può aggirare. Per qualcosa di più sicuro dovresti usare le sessioni, ma pensa prima se ne vale la pena.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Allora ti conviene fare un controllo sul referrer:
PHP:
<?php
if ($_SERVER['HTTP_REFERER'] != 'url pagina lista') {
    header('HTTP/1.0 403 Forbidden');
    die('Accesso negato.');
}

// ...
?>
Anche se in teoria si può aggirare. Per qualcosa di più sicuro dovresti usare le sessioni, ma pensa prima se ne vale la pena.

no ma con il form la variabile arriva

soltanto che essendo come GET mi entra nel link e mi fa casino.

se come dici te(adesso provo) non serve il form penso mi basta fare un form che invia in POST e ci metto l'hidden della variabile fissa. mentre l'id mi dovrebbe passare senza form

ora provo ma credo vada così(se non serve il form pèer l'id)
 
Discussioni simili
Autore Titolo Forum Risposte Data
GraceHawk ACCESS e VBA: scorrere le righe e le colonne di una tabella? MS Access 3
S Se voglio far scorrere le immagini dello sfondo di una pagina (oviamente html) come faccio? HTML e CSS 1
S Come faccio a far scorrere delle immagini come sfondo di una pagina? Discussioni Varie 1
Silvia77 Scorrere record in una tabella Classic ASP 2
R Scorrere una SELECT con un campo testo Classic ASP 6
S Impossibile scorrere un oggetto in JavaScript Javascript 0
L [Javascript]Scorrere div con frecce avanti-indietro Javascript 0
V Scorrere elementi DOM e prendere dei valori Javascript 8
K Far scorrere il menu dal fondo al top della pagina HTML e CSS 6
S far scorrere i banner, immagini Javascript 3
Monital Scorrere più file txt contententi un identico dato PHP 0
C Come faccio a far scorrere l'immagine con il resto? HTML e CSS 4
D Come si fa a far scorrere le notizie? (lettore di rss) PHP 2
I scorrere i record di un DB PHP 11
G Come far scorrere la linguetta titolo nel browser? HTML e CSS 3
M Come far scorrere i banner HTML e CSS 5
P C# Salvare una colonna del DataGridView XML 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
M Leggere in un report il valore di una casella combinata di una maschera Database 0
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S [VB.NET]: Coordinate immagini dentro una PictureBox Visual Basic 0
I stampare una stringa echo PHP 2
MarcoGrazia Riprendere una sessione interrotta PHP 0
L Rendere una parte trasparente Photoshop 3
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
otto9due Ordinare option di una select Javascript 5
N Come si crea una variabile dinamica da incrementare? Javascript 1
L Eliminazione di una pagina dalla gallery SEO e Posizionamento 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
L Riempimento di una tabella al click di un bottone Javascript 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
A media degli elementi estratti da una query MySQL 0
spider81man Eliminare primo ed ultimo carattere di una colonna MySQL 0
pacemattia408 disattivazione di una function Javascript 4
G Eliminare l'effetto refresh di una pagina internet PHP 8
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
M Select Option dentro una Table jQuery 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
E Scrivere una data corrente in un pdf PHP 1
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
I Assegnare dati fetch request ad una variabile globale Javascript 0
Shyson Puntare ad una sotto directory WordPress 3
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
S Selezionare ultimo record di una sotto query MySQL 27
V Query per una somma PHP 2
L Mysql: Nascondere le pagine dopo una ricerca PHP 1
L salvare una immagine elaborata in canvas Javascript 1

Discussioni simili