Visualizzazione risultati 1 fino 20 di 20

Discussione: [PHP]avere in input link concatenato a stringa (era:link help)

  1. #1
    Guest

    Predefinito [PHP]avere in input link concatenato a stringa (era:link help)

    salve a tutti ragazzi volevo sapere come fare per farmi dare in input un link concatenato ad una stringa una stringa ad esempio se io uppo un file sul server nella root voglio che appena finito l'upload mi deve apparire il link a quel file quindi la mia sintassi era :

    echo (<a href="http://www.miosito.altervista.org/<?php echo $_FILES["file"]["name"]; ?>$_FILES["file"]["name"]</a>);

    in modo tale da avere a fine upload... nomefile ( link a www.miosito.altervista.org/nomefile.estensione)

    e volevo sapere anche se era possibile far modificare da php un codice sorgente nel senso che il link che poi mi faccio generare me lo deve inchiodare (implementare) in una pagina html in modo che quando clicco al link di quella pagina mi appaiono tutti i link dei file uppati sul server

    spero di essere stato abbastanza chiaro

    chiedo cortesemente il vostro aiutoooo ... grazie mille anticipato

  2. #2
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    ciao, per la prima parte il codice è questo:
    Codice PHP:
    <a href="http://www.miosito.altervista.org/<?php echo $_FILES["file"]["name"] . ">" . $_FILES["file"]["name"];?></a>
    adesso non mi ricordo come funziona la variabile $_FILES, quindi se è sbagliato non lo so ^^
    Questo codice lo metti fuori dai tag php (in questo codice c'è un pezzo di php, ma tutto il resto è semplice html)
    la seconda parte la puoi fare sempre in php, dipende se i file sono messi in giro per il sito o tutti in una cartella
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da ageofempiresgif Visualizza messaggio
    ciao, per la prima parte il codice è questo:
    Codice PHP:
    <a href="http://www.miosito.altervista.org/<?php echo $_FILES["file"]["name"] . ">" . $_FILES["file"]["name"];?></a>
    adesso non mi ricordo come funziona la variabile $_FILES, quindi se è sbagliato non lo so ^^
    Questo codice lo metti fuori dai tag php (in questo codice c'è un pezzo di php, ma tutto il resto è semplice html)
    la seconda parte la puoi fare sempre in php, dipende se i file sono messi in giro per il sito o tutti in una cartella
    si ma io quel codice lo devo far generare da un pagina in php ... quindi è echo (sintassi);
    quella che mi hai scritto non mi funziona. grazi mille

  4. #4
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Codice PHP:
    echo "<a href=\"http://www.miosito.altervista.org/{$_FILES['file']['name']}>{$_FILES['file']['name']}</a>";
    oppure
    Codice PHP:
    ...
    ?>
    <a href="http://www.miosito.altervista.org/<?php echo $_FILES["file"]["name"] . ">" . $_FILES["file"]["name"];?></a>
    <?php
    ...
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da ageofempiresgif Visualizza messaggio
    Codice PHP:
    echo "<a href=\"http://www.miosito.altervista.org/{$_FILES['file']['name']}>{$_FILES['file']['name']}</a>";
    grazie mille funziona!!! potresti spiegarmi però il perchè si mette il backslash(\) all'<a href=\"link"> perchè ho provato a toglierlo e mi dà errore senza quello gentilmente potresti spiegarmi a che serve?

    un'ultima domanda.... il primo codice funziona l'unico "bug" è che se io carico un file il cui nome presenta spazi, il link che mi viene creato è il seguente:
    es.

    nome file: file.txt link generato: www.miosito.altervista.org/file.txt (esatto)
    nome file: fi le.txt link generato: www.miosito.altervista.org/fi (errato)
    link da generare: www.miosito.altervista.org/fi le.txt (esatto)

    *nota :D : si ferma al primo spazio che incontra.

    ora la mia domanda è come faccio per farmi generare il link esatto anche se il nome file presenta spazi al suo interno? che tipo di controllo devo fare?
    perchè credo che sia una cosa fattibile tramite qualche controllo(magari sulla variabile FILE)...
    Ultima modifica di flunik : 23-11-2009 alle ore 21.05.09

  6. #6
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Il backslash va ai caratteri speciali in questo caso le virgolette "
    Codice PHP:
    echo "<a href=\"link\">ciao</a>";
    // oppure
    echo '<a href="link">ciao</a>';
    Se leggi alcune guide trovi le differenze...

    Per gli spazi, dovresti sostituirli con un underscore _ con la funziona str_replace

    Saluti!

  7. #7
    Guest

    Predefinito

    non potreste aiutarmi .. lo letta un pò e da quanto ho capitop la str_replace ritorna una stringa ... quindi nn modifica il nome del file o nn fà ciò che a me serve a meno che mi esponete una soluzione possibile con quella funzione...

  8. #8
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Cioè a te è bastato leggere:
    This function returns a string
    Per capire che non modifica il nome del file?
    Complimenti per lo sforzo.... E a dire che ci sono anche gli esempi!

    Codice PHP:
    $bad = array(" ", "^"); // lista di caratteri non consentiti puoi aggiungere quanti elementi vuoi tanto verranno sostituiti tutti con un underscore...
    $nome = str_replace($bad, "_", $nome_vecchio);
    E in $nome avrai il nome del file corretto.

    Saluti!

  9. #9
    Guest

    Predefinito

    no no... non mi sono fermato a "this is function return a string" anzi sta cosa nn l'avevo nemmeno letta a dirti la verità ma lo avevo capito dal resto delle cose... e comunque io sono alle prime armi di php questo è il mio primo script che ho fatto e lo trovato su internet ma nn sono partito dall'inizio trovato quello script me lo sono studiato(non era difficile capirlo) e cercato di capire il resto delle istruzioni... e comunque dalle tue istruzioni non riesco a capire come quella funzione modifichi il nome del file perchè a me era sembrato di capire che nn era possibile modificare il nome file utilizando esclusivamente quella funzione cmq se ciò e possibile chiedo scusa ma purtroppo sono al momento ignorante in merito.... Grazie delle risposte ;)

  10. #10
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Infatti str_replace() non modifica mica il nome di un file! Genera invece una stringa (frase) che puoi "usare" come nome di un file.
    Comunque mi sono accorto adesso che c'è un errore, cioè il link non è chiuso e probabilmente è per questo che non funziona, devi modificarlo così:
    Codice PHP:
    echo "<a href=\"http://www.miosito.altervista.org/{$_FILES['file']['name']}\">{$_FILES['file']['name']}</a>";
    così dovrebbe funzionare anche se ci sono spazi nel nome.

    Uso dei backslash: il backslash (\) si dice "carattere di escape", ovvero che il carattere speciale subito dopo il \ viene considerato con il suo valore letterale. Nel caso di stringhe, in PHP i caratteri speciali sono ", ', {, }.
    Codice PHP:
    echo "Ciao!";
    stamperà semplicemente: Ciao!
    Codice PHP:
    echo 'Entrò e salutò dicendo: "Ciao!" e si sedette';
    stamperà la stringa correttamente: la stringa è delimitata da apici, le virgolette in questo caso non sono caratteri speciali
    Codice PHP:
    echo "Entrò e salutò dicendo: "Ciao!" e si sedette";
    darà errore di sintassi: la stringa in questo caso risulta essere [Entrò e salutò dicendo: ]
    Codice PHP:
    echo "Entrò e salutò dicendo: \"Ciao!\" e si sedette";
    stamperà la stringa [Entrò e salutò dicendo: "Ciao!" e si sedette] perchè i \ davanti le virgolette le "escappano" leggendole semplicemente come virgolette e non come delimitatori di stringa!
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da mycarlo Visualizza messaggio
    Cioè a te è bastato leggere:


    Per capire che non modifica il nome del file?
    Complimenti per lo sforzo.... E a dire che ci sono anche gli esempi!

    Codice PHP:
    $bad = array(" ", "^"); // lista di caratteri non consentiti puoi aggiungere quanti elementi vuoi tanto verranno sostituiti tutti con un underscore...
    $nome = str_replace($bad, "_", $nome_vecchio);
    E in $nome avrai il nome del file corretto.

    Saluti!
    io non sono tanto pratico però avevo capito bene quindi la stp_replace() come confermato anche da ageofempiresgif... comunque i primi casi li sapevo tutti l'unico che non conoscevo era l'ultimo che grazie alla tua splendida spiegazione ho capito abbastanza bene! Grazie mille ageofempiresgif !

    per la seconda domanda invece... quella di ottenere un elenco con tutti i nomi dei file presenti in una cartella in modo da potermi fare elencare tutti i rispettivi link dei file uppati su server ? aspetto notizie ....

    PS: dimenticavo :D ... chiudendo l'href con (\") funziona anche con gli spazi

    grazie di novo a ageofempiresgif
    Ultima modifica di flunik : 28-11-2009 alle ore 13.14.43

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per l'elenco dei file in una cartella puoi utilizzare glob.

  13. #13
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Prego, non c'è di che ^^

    PS:
    Citazione Originalmente inviato da mycarlo Visualizza messaggio
    Cioè a te è bastato leggere:


    Per capire che non modifica il nome del file?
    Complimenti per lo sforzo.... E a dire che ci sono anche gli esempi!
    scusa mycarlo, ma che esempi hai visto?! quegli esempi non mostrano mica la modifica di un file
    cmq mycarlo se la gente scrive qui è perchè ha problemi con gli script e/o vuole imparare, inutile dire
    Citazione Originalmente inviato da mycarlo Visualizza messaggio
    Complimenti per lo sforzo....
    soprattutto quando, come in questo caso, il richiedente legge le guide ma non capisce lo stesso... mica siam nati tutti imparati! ^^
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da ageofempiresgif Visualizza messaggio
    Prego, non c'è di che ^^

    PS:

    scusa mycarlo, ma che esempi hai visto?! quegli esempi non mostrano mica la modifica di un file
    cmq mycarlo se la gente scrive qui è perchè ha problemi con gli script e/o vuole imparare, inutile diresoprattutto quando, come in questo caso, il richiedente legge le guide ma non capisce lo stesso... mica siam nati tutti imparati! ^^
    ma ciò che è peggio è che mi ha ripreso su una cosa che avevo capito XD.... vabbè dai fa niente comunque come ho tempo cerco di implementare la sintassi di ricerca con la glob e vi faccio sapere dato che ora è un po tardino per provare :D....
    grazie ancora delle risposte ... appena provo vi faccio sapere :D

  15. #15
    Guest

    Predefinito

    ok ragazzi fatto nessun problema ... volevo solo sapere come faccio per far apparire la finestra di download al click su un link che fa riferimento ad una immagine, perchè se il link è riferito ad una immagina me la apre nel browser ed io voglio che me la faccia scaricare come per esempio cliccando su un link riferito ad un file .rar che appare la finestra di salvataggio.... grazie mille ancora siete gentilissimi !!!

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Leggi qui: header.
    ho visto un pò ma non ci ho capito molto smanettando un pò mi è sembrato di capire che la ftp_get faccia al caso mio ma anche questa non ho capito molto bene come implementare il suo cadice se potreste farmi un esempio concreto ve ne sono grato ... ancora grazie mille !!!!


    edit:
    comunque ho fatto un copia e incolla di tutto quel codice in una pagiina che ho ciamato download.php andando solamente a sostituire a "$_GET['path']" la mia path "$_GET['mypat']" e se richiamo download.php mi chiede di salvare il file download.php (la pagina stessa) XD
    hihihi ... ripeto non ci ho capito gran che... help :D
    Ultima modifica di flunik : 30-11-2009 alle ore 22.32.02

  18. #18
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    File download.php:
    Codice PHP:
    <?php
    $filename
    = $_GET['path'];
    if(
    file_exists($filename)){

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    header("Content-Disposition: attachment; filename=".basename($filename).";");

    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));

    @
    readfile($filename);
    exit(
    0);
    }
    ?>
    e poi nel file della lista scrivi:
    Codice PHP:
    <a href="download.php?path=img/img1.png">Scarica</a>
    <
    a href="download.php?path=img/img2.png">Scarica</a>
    <
    a href="download.php?path=img/img3.png">Scarica</a>

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    File download.php:
    Codice PHP:
    <?php
    $filename
    = $_GET['path'];
    if(
    file_exists($filename)){

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    header("Content-Disposition: attachment; filename=".basename($filename).";");

    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));

    @
    readfile($filename);
    exit(
    0);
    }
    ?>
    e poi nel file della lista scrivi:
    Codice PHP:
    <a href="download.php?path=img/img1.png">Scarica</a>
    <
    a href="download.php?path=img/img2.png">Scarica</a>
    <
    a href="download.php?path=img/img3.png">Scarica</a>
    ahh ecco ora mi funziona però è troppo chiedere una spiegazione? se non è un fastidio ! grazie della risposta ora funge anche se quando scarico un file .txt all'interno oltre al vero testo mi mettere caratteri "sporchi"(carattere quadratino :D ), e poi per alcuni file di qualsiasi tipo a volte me li scarica come pagine html che però aprendo con l'apposito progamma (in base al file es: img.jpg scaricata come img.html aprendola con il visualizzatore di fax e foto mi da l'immagine, idem per gli altri formati ) comunque che io abbia notato succede ai files che presentano spazi nel titolo es: img 1.jpg .... ci sono soluzioni per risolvere ciò ? comunque ancora grazie mille..grazie a voi sto imparando un bel pò di cose interessanti grazie grazie grazie !!!!

  20. #20
    Guest

    Predefinito

    niente?vbè grazie comunque a tutti quelli che mi hanno risposto fino ad ora!

Regole di scrittura

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