Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Php che crea codice html da form

    Ragazzi, ho un problema relativamente grosso, con uno script php che ho fatto....
    In pratica questo script deve creare una pagina html con molti contenuti statici ed alcuni contenuti presi da un form! Fin qui tutto ok, il mio problema è che in questo codice ci stanno anche delle immagini, quindi un relativo <input dove inserire il link dell'immagine per poi farlo apparire nel codice html, il problema e che gli input sono 4 ed anche se un campo è vuoto lui mi scrive sempre nel codice html i tag [img][/img] <label> INSERISCI DESCRIZIONE PRODOTTO</label>
    <textarea type="text" name="testo" alt="inserisci valore" title="inserisci il valore" cols="30" rows="10"></textarea>

    <label>LINK IMG 1</label><input type="text" name="link1"/>
    <label>LINK IMG 2</label><input type="text" name="link2"/>
    <label>LINK IMG 3</label><input type="text" name="link3"/>
    <label>LINK IMG 4</label><input type="text" name="link4"/>

    <input type="submit" name="send" value="CREA" alt="crea l'inserzione" /> </form> <?php if(isset($_POST['send'])){ $testo = $_POST['testo']; $linkuno = "<img src=\"$_POST[link1]\" style=\"width:320px;\">"; $linkdue = "<img src=\"$_POST[link2]\" style=\"width:320px;\">"; $linktre = "<img src=\"$_POST[link3]\" style=\"width:320px;\">"; $linkquattro = "<img src=\"$_POST[link4]\" style=\"width:320px;\">"; echo "<textarea cols=\"30\" rows=\"20\" ><style type=\"text/css\"> #inserzione { width: 700px; margin:auto; } img { } #textprod{ position:absolute; text-align: center; vertical-align: inherit; height: 220px; font-size: 2.0em; color: red; margin-top: 250px; margin-left: 62px; padding: 10px 10px; max-width: 560px; } #descvar { background-image: url(http://---------------------/layout.png); background-repeat:no-repeat; height:535px; } #tabfoto tr td { cellpadding: 0px; cellspacing: 0px; } #centertd { background-image:url(http://-------------------/fotocenter.png); background-repeat:repeat-y; } #centertd td{ padding: 0px 50px; } #centertd td img{ max-width: 600px; float:left; } #tablehead { background-image:url(http://---------------/fotohead.png); background-repeat:no-repeat; height: 50px; } #imgspaz { margin-left:50px; } </style> </head> <body> <div id=\"inserzione\"> <center><a href=\"http://-------------------/Preventivo.html\"><img src=\"http://----------------------/messaggio.png\" alt=\"Preventivo ricambi\" title=\"preventivo ricambi\" /></a></center> <div id=\"descvar\"> <div id=\"textprod\"> $testo </div> </div> <div id=\"foto\"> <table id=\"tabfoto\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"> <tr id=\"tablehead\"><td></td></tr> <tr id=\"centertd\"><td><div id=\"imgspaz\">
    $linkuno
    $linkdue
    $linktre
    $linkquattro
    </div></td></tr> <tr><td><img src=\"http://----------------------/fotobottom.png\" /></td></tr> </table> </div> <img src=\"http://--------------------------inserzione2.png\" usemap=\"#inser\" /> <map name=\"inser\" id=\"inser\"> <area shape=\"rect\" coords=\"61,2548,615,2569\" href=\"http://as777.bartolini.it/vas/tempi_consegna_parametri.html\" target=\"_new\" alt=\"rintraccia spedizione\" /> <area shape=\"rect\" coords=\"305,3169,396,3239\" href=\"http://www.bartolini.it\" target=\"_new\" alt=\"Sito bartolini\" /> <area shape=\"rect\" coords=\"52,626,364,685\" href=\"https://www.facebook.com/pages--------------------------\" target=\"_new\" alt=\"Link alla pagina di facebook\" /> <area shape=\"rect\" coords=\"51,555,436,607\" href=\"mailto:--------------@virgilio.it\" alt=\"Mandami una E-mail\" /> </map> </div> </textarea>"; } ?>[/PHP]

    grazie mille a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Intanto posta il codice meglio formattato per aver maggior aiuto :), poi...

    ...puoi condizionare la stampa del tag al contenuto del link, qualcosa come:

    Codice PHP:
    ...
    $link1 trim($_POST[link1]); // <----- ATTENZIONE
    $linkuno = (($link1!='')?('[img]'.$link1.'[/img]'):(''));
    ... 
    inoltre dove ho scritto ATTENZIONE: è meglio filtrare i dati ricevuti nel form e applicare gli escaping, altrimenti si può essere attaccati da iniezioni malevoli di codice... (se uno scrive come link virgolette, apici e simili + codice javascript?)...

  3. #3
    Grazie mille per la risposta Si hai ragione scusami . Diciamo che questa pagina non è linkata da nessuna parte e serve solo per creare un codice html da incollare nelle inserzioni ebay...
    cmq ok è giusto non tralasciare la sicurezza!!
    Adesso avevo provato a fare degli if
    Codice PHP:

     $link1 
    trim($_POST['link1']);
        if(empty(
    $link1)){
            
    $linkuno '';
        }
        else{
              
    $linkuno "<img src=\"$_POST[link1]\" style=\"width:320px;\"><br \>";
      
        }
        
    $link2 trim($_POST['link2']);
        if(empty(
    $link2)){
            
    $linkdue '';
        }
        else{
              
    $linkdue "<img src=\"$_POST[link2]\" style=\"width:320px;\"><br \>";
      
        }
       
    $link3 trim($_POST['link3']);
        if(empty(
    $link3)){
            
    $linktre '';
        }
        else{
              
    $linktre "<img src=\"$_POST[link3]\" style=\"width:320px;\"><br \>";
      
        }
        
          
    $link4 trim($_POST['link4']);
        if(empty(
    $link4)){
            
    $linkquattro '';
        }
        else{
              
    $linkquattro "<img src=\"$_POST[link4]\" style=\"width:320px;\"><br \>";
      
        } 
    così funziona..non mi da errore e il codice html non viene stampato..

    però ora voglio capire il tuo codice perche è molto sintetico, solo che nn ho capito bene come funziona

  4. #4
    Ciao,
    puoi fare anche così:

    Codice PHP:
    $linkuno='';
    $linkdue='';
    eccecc.

    if (isset(
    $_POST['link1']))
            
    $linkuno "<img src=\"$_POST['link1']\" style=\"width:320px;\">
    "
    ;

    if (isset(
    $_POST['link2']))
            
    $linkdue "<img src=\"$_POST['link2']\" style=\"width:320px;\">
    "
    ;

    eccecc
    In pratica
    prima crei le sringhe vuote delle variabili che userai ($linkuno ecc.)
    poi prima con isset( ) controlli che sia stato valorizzato il relativo <INPUT> del form e se è così crei il link;


    cmq come ha detto eyien filtra sempre i dati ricevuti, anche se "è solo una pagina che..."
    proprio come buona abitudine di programmazione, perché poi quando ti ritrovi il danno è troppo tardi

  5. #5
    Grazie a tutti, si infatti avete entrambi ragione avrei un altro dubbio riguardo queste protezioni ma per non andare off-topic evito

    Cmq problema risolto

    GRAZIEEEEE!!!!!!!

    ps. e stato di semplice risoluzione

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ti dico solo che ho usato l'operatore ternario php, per cui:

    Codice PHP:
    $x = ($condizione)?($a):($b); 
    corrisponde in sostanza (salvo alcune differenze "tecniche" poco influenti):

    Codice PHP:
    if ($condizione) {
      
    $x $a;
    } else {
      
    $x $b;
    }; 
    e si può anche (come da post dell'altro utente) fare:
    Codice PHP:
    $x $b; if ($condizione$x $a

  7. #7
    Praticamente si scrive tutto in linea e senza le parentesi graffe
    dovrò studiare questo metodo...

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ...se ti riferisci all'ultimo esempio non ci sono "graffe" perché si usa solo un'istruzione nel ramo "then" (e non c'è neanche l'else in questo caso)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.