Visualizzazione risultati 1 fino 29 di 29

Discussione: Controllo parole campo form

  1. #1
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito Controllo parole campo form

    Buona sera a tutti, ho ancora bisogno del vostro aiuto scusate,
    come al solito non so se è una cosa fattibile considerando che sono due gg che cerco di sbrigarmela da sola...

    Allora, ho realizzato un semplice guestbook con dati salvati in file txt, nel quale ho inserito dei tasti bbcode per inserimento tag html, anche in caso di inserimento di un url, ora la mia domanda è: Si può fare in modo che un indirizzo url sia inserito solo attraverso il pront del bbcode?

    Vorrei poter evitare di ritrovarmi con url scritte come testo, e immagini giganti postate che mi smembrano la pagina... attraverso il bbcode si visualizza solo il tipico [Link] che uno va ad aprire comodamente quando vuole^^


    Ho inserito un controllo per i vari campi in javascript affinché se viene fatto un errore non occorra riscrivere tutto e pensavo di poter integrare appunto il controllo dell'inserimento url del campo relativo al messaggio ma non mi riesce proprio...

    Ecco il codice che uso x i controlli:

    Codice HTML:
    <script language="javascript"> 
     <!--
    function validate_form() 
    {
        // Variabili associate ai campi del modulo
        var nikname = document.modulo.nikname.value;
        var urlsito = document.modulo.urlsito.value;
        var email = document.modulo.email.value;
        var messaggio = document.modulo.messaggio.value;
        // Espressione regolare dell'email
        
         var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
    
    if (email != "") {//se email è diverso da nullo
    if (!email_reg_exp.test(email)) {//allora controlla che email sia corretto o valido
           alert("Occorre inserire un corretto indirizzo E-mail\n o lasciare il campo vuoto!");
           document.modulo.email.focus();
           return false;
        }
    }
    
    //qui fai lo stesso per l'url, solo http:
    var isUrl_reg_exp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;//solo http
    
    if (urlsito != "") {
    if (!isUrl_reg_exp.test(urlsito))  {
        alert ("Inserisci url del tuo spazio web in modo corretto.\n Assicurati di aver scritto anche http://\n o lascia il campo vuoto.");
        document.modulo.urlsito.focus();
        return false;
        }
    }
     
        if ((nikname == "") || (nikname == "undefined"))  // 1° controllo. Campo Nickname che è obbligatorio
        {
           alert("Hai dimenticato di scrivere\n il tuo nickname ^_^");
           document.modulo.nikname.focus();
           return false;
        }
            
         if ((messaggio == "") || (messaggio == "undefined"))  // 2° controllo. Campo messaggio che è obbligatorio
        {
           alert("Un messaggio senza messaggio...\n che messaggio è!?!");
           document.modulo.messaggio.focus();
           return false;
        }
            
    return true;
    }  
    
     //-->
    </script>
    E questo è il codice per i tastini bbcode:


    Codice HTML:
    <script type="text/javascript">
    function link(){
    var url=prompt("Inserisci url","http://");
    if (url)document.modulo.messaggio.value = document.modulo.messaggio.value +("<a target='_blank' href=" +url+ ">[Link]</a>");
    } 
    function grassetto(){
    var bold=prompt("Testo in grassetto","");
    if (bold)document.modulo.messaggio.value = document.modulo.messaggio.value +("<b>" +bold+ "</b>");
    } 
    function corsivo(){
    var corsivo=prompt("Testo in corsivo","");
    if (corsivo)document.modulo.messaggio.value = document.modulo.messaggio.value +("<i>" +corsivo+ "</i>");
    } 
    function sottolineato(){
    var sottolineato=prompt("Testo sottolineato","");
    if (sottolineato)document.modulo.messaggio.value = document.modulo.messaggio.value +("<u>" +sottolineato+ "</u>");
    } 
    function code(){
    var code=prompt("Codice","");
    if (code)document.modulo.messaggio.value = document.modulo.messaggio.value +("<code>" +code+ "</code>");
    } 
    </script>
    
    *****************************************************
    Tasti:
    
    <input type="button" value="b" style="width:50px;font-weight:bold" onClick="grassetto()" />
    <input type="button" value="i" style="width:50px;font-style: oblique;font-weight:bold" onClick="corsivo()" />
    <input type="button" value="u" style="width:50px;text-decoration: underline;font-weight:bold" onClick="sottolineato()" />
    <input type="button" value="code" style="width:50px;font-weight:bold" onClick="code()" />
    <input type="button" value="url" style="width:50px;font-weight:bold" onClick="link()"><br />
    Mi sapete dire "se e come" si può risolvere questo problema? Grazie

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ciao...

    fai il controllo regex anche per il bbcode var url, se ho capito bene?

    prova se funziona:

    Codice HTML:
    function link(){
    var url=prompt("Inserisci url","http://");
    if (url) {
    if (!isUrl_reg_exp.test(url)) {
    alert ("Inserisci un url per il Link in modo corretto!");
    link();//rimanda al prompt per l'inserimento url
    }
    else {document.modulo.messaggio.value = document.modulo.messaggio.value +("<a target='_blank' href=" +url+ ">[Link]</a>");}
    }//end if (url) 
    }//end function link()
    Ultima modifica di EuroSalute : 23-10-2011 alle ore 22.56.23 Motivo: più info...+ correzzioni
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro sempre gentilissimo,
    forse non mi son spiegata bene, io vorrei che se qualcuno vuole inserire un link lo faccia solo attraverso il pront, non mi riesce di fare un controllo nel campo del messaggio che appunto mi permetta di far sta cosa, perchè se metto un blocco per tag tipo http poi da errore anche con un link inserito con il pront

    Un abbraccio

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    se ho capito bene, vuoi inserire l'url solo tramite il prompt e quindi la funzione link()...

    hai provato il codice che ti ho dato?

    puoi postare il codice del form?
    Ultima modifica di EuroSalute : 24-10-2011 alle ore 18.40.05 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro, si esattamente, vorrei che fosse possibile inserire url solo attraverso il pront x evitare testo con link e che vengano postate immagini che poi rovinano la pagina xchè troppo grandi, con il pront si visualizza solo [link] ^_^

    Ho provato il codice che mi hai postato, ma se provo a scrivere un url nel campo messaggio lo salva e quindi poi lo stampa^^

    Il codice del form è questo:

    Codice HTML:
    <table class="base" cellpadding="0" cellspacing="3" width="520">
    	<tr>
    		<td><form name="modulo" action="insert_mex.php" method="post" onsubmit="return validate_form ( );">
    		<table class="base" cellpadding="3" cellspacing="3" width="100%">
    	<tr>
    		<td><table class="baseleft" cellpadding="2" cellspacing="2" width="88%">
    	<tr>
    		<td>
    		<img border="0" src="images/1328a.gif" width="9" height="12" alt="" /> Nickname</td>
    		<td width="350"><input type="text" size='40' class="memorize" name="nikname" /> # Reguest</td>
    	</tr>
    	<tr>
    		<td>
    		<img border="0" src="images/1329a.gif" width="12" height="12" alt="" /> Site URL</td>
    		<td width="350"><input type="text" size='40' class="memorize" name="urlsito" value="http://" onClick=value="" /> # Optional</td>
    	</tr>
    	<tr>
    		<td>
    		<img border="0" src="images/1326a.gif" width="12" height="12" alt="" /> E-mail</td>
    		<td width="350"><input type="text" size='40' class="memorize" name="email" /> # Optional</td>
    	</tr>
    	</table></td>
    	</tr>
    	<tr>
    		<td><input type="button" value="b" style="width:50px;font-weight:bold" onClick="grassetto()" />
    		<input type="button" value="i" style="width:50px;font-style: oblique;font-weight:bold" onClick="corsivo()" />
    		<input type="button" value="u" style="width:50px;text-decoration: underline;font-weight:bold" onClick="sottolineato()" />
    		<input type="button" value="code" style="width:50px;font-weight:bold" onClick="code()" />
    		<input type="button" value="url" style="width:50px;font-weight:bold" onClick="link()">
    		<a href="javascript:Simboli('^_^')">[ ^_^ ]</a> <a href="javascript:Simboli('=^_^=')">[ =^_^= ]</a> <a href="javascript:Simboli('O_O')">[ O_O ]</a> 
    		<a href="javascript:Simboli('*_*')">[ *_* ]</a> <a href="javascript:Simboli('♥')">[ ♥ ]</a><br />
    		<textarea name="messaggio" rows="7" cols="56"></textarea></td>
    	</tr>
    	<tr>
    		<td>
    		<img border="0" src="images/1899.gif" width="10" height="9" alt="" /> Giffette e smile<br>
    		<table class="bordo2" cellpadding="0" cellspacing="0" width="450">
    	<tr>
    		<td>Qui ci sono le gif^^</td>
    	</tr>
    	</table></td>
    	</tr>
    	<tr>
    		<td><table class="baseleft" cellpadding="1" cellspacing="1" width="440">
    	<tr>
    		<td><input type="submit" name="invia" value="Invia"> <input type="reset" value="Reset">
    		<input style='display:none' name='antispam' type='text' id='antispam' value='cinque-sette-otto-uno'></td>
    	</tr>
    	</table>
    		</td>
    	</tr>
    	</table>
    		</form></td>
    	</tr>
    </table>
    E questo è il codice dell'insert (salvataggio messaggi in db file txt)

    Codice PHP:
    <?php
    $my_database_txt
    = 'xxxxxx.txt';

    //ricavo l'ora e la data odierna
    $data_ora = date("d/m/Y H:i:s");
    $ip = $_SERVER['REMOTE_ADDR']; //ip

    if(isset($_POST['invia']))
    {
    if(!
    is_writable($my_database_txt)){
    exit(
    "il file non ha i permessi di scrittura!");
    }
    // riceviamo i dati e li filtriamo
    $bad_char = array("|", "\r\n", "\r", "\n");
    $nikname = str_replace($bad_char, "", $_POST['nikname']);
    $urlsito = str_replace($bad_char, "", $_POST['urlsito']);
    $email = str_replace($bad_char, "", $_POST['email']);
    $messaggio = str_replace($bad_char, "", $_POST['messaggio']);
    // apriamo il file
    $open = fopen($my_database_txt, "a+");

    // Controllo parolacce interamente realizzato da Bradiposo

    $parolacce=array('cazzo','sesso','stronz','viagra','sex','porco','prozac','valium');

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/commentario/errore_mex.php');
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/commentario/errore_mex.php');
    }
    }

    if(
    $ctrl == false ) {
    $txt = stripslashes($messaggio);
    fwrite($open, $nikname."|".$data_ora."|".$urlsito."|".$email."|".$txt."|".$ip."\r\n");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }

    // chiudiamo il file
    fclose($open);

    // ritorniamo nella pagina di visualizzazione
    header("location: http://www.iltelaiodipenelope.it/commentario/penelope_commentario.php");
    exit;
    }

    }
    ?>

    Grazie x l'aiuto Euro ^_^ un abbraccio

  6. #6
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ciao...

    allora qui a questa pagina:
    http://eurosalute.altervista.org/test-prove/

    ho inserito il codice seguente e ho controllato la variabile url con la regex(per avere un corretto link, come vuoi tu)....
    secondo me è più semplice controllare i prompt input prima che vengano inseriti nel campo textarea messaggio....

    la funzione link() è un esempio e funziona, se non viene inserito un corretto url(in base alla regex) appare un alert e viene richiesto di reinserire l'input:
    Codice HTML:
    <head>
    <script type="text/javascript">
    
    function link(){
    
    var isUrl_reg_exp = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;//solo http
    
    var url=prompt("Inserisci url","http://");
    if (url) {
    if (!isUrl_reg_exp.test(url)) {
    alert ("Inserisci un url per il Link in modo corretto!");
    link();//rimanda al prompt per l'inserimento url
    }
    else {document.modulo.messaggio.value = document.modulo.messaggio.value +("<a target='_blank' href='" +url+ "'>[Link]</a>");}
    }//end if (url) 
    }//end function link()
    
    function grassetto(){
    var bold=prompt("Testo in grassetto","");
    if (bold)document.modulo.messaggio.value = document.modulo.messaggio.value +("<b>" +bold+ "</b>");
    } 
    
    function corsivo(){
    var corsivo=prompt("Testo in corsivo","");
    if (corsivo)document.modulo.messaggio.value = document.modulo.messaggio.value +("<i>" +corsivo+ "</i>");
    } 
    
    function sottolineato(){
    var sottolineato=prompt("Testo sottolineato","");
    if (sottolineato)document.modulo.messaggio.value = document.modulo.messaggio.value +("<u>" +sottolineato+ "</u>");
    } 
    
    function code(){
    var code=prompt("Codice","");
    if (code)document.modulo.messaggio.value = document.modulo.messaggio.value +("<code>" +code+ "</code>");
    } 
    </script>
    
    </head>
    
    <body>
    
    <form action="index.php" method="post" name="modulo">
    <input type="button" value="b" style="width:50px;font-weight:bold" onClick="grassetto()" />
    <input type="button" value="i" style="width:50px;font-style: oblique;font-weight:bold" onClick="corsivo()" />
    <input type="button" value="u" style="width:50px;text-decoration: underline;font-weight:bold" onClick="sottolineato()" />
    <input type="button" value="code" style="width:50px;font-weight:bold" onClick="code()" />
    <input type="button" value="url" style="width:50px;font-weight:bold" onClick="link()"><br />
    <textarea cols="20" rows="20" name="messaggio"></textarea>
    </form>
    
    </body>
    il controllo globale sul textarea messaggio ci deve essere, e va bene, ma puoi migliorarlo inserendo per es. solo i tags html ammessi, un es.:

    Codice PHP:
    $messaggio=strip_tags($messaggio,"<b><i><u><code><a>");
    Ultima modifica di EuroSalute : 25-10-2011 alle ore 18.09.15 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  7. #7
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro mi sa che non mi son spiegata bene, il problema non è che venga scritto un link in modo coretto, io vorrei trovare il modo che si possano inserire solo tramite pront.

    Ho provato a mettere un controllo nel campo messaggio, ma purtroppo poi, annulla o corregge anche i link scritti tramite pront
    >_<'''' un abbraccio e grazie x la pazienza

  8. #8
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    scusami, ma devi spiegarti meglio.....

    vuoi inserire tutti i campi, anche quelli del form tramite prompt?

    dal tuo codice risulta che con il prompt iserisci input solo per il campo messaggio(che è un textarea)

    quindi in teoria basta che controlli il campo messaggio con php, controllando i tags html del bbcode, puoi ammettere solo tags html che vuoi che si possano usare...
    es per le immagini se il tag <img> è escluso, come fa l'utente ad inserire immagini nel messaggio?!

    che tipo di controllo hai provato ad eseguire per il messaggio?
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  9. #9
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Scusami Euro hai ragione, cerco di essere il più chiara possibile,
    ho dato la possibilità di postare dei link nei messaggi, (comodità x segnalarmi pagine e varie^^) ho quindi integrato il commentario con i vari pront per facilitare l'inserimento di vari tag html e quindi anche i link, che appunto se inserito tramite il pront che viene postato nella textarea con il tag completo:
    Codice HTML:
    <a target='_blank' href=" +url+ ">[Link]</a>
    una volta salvato il messaggio si visualizza solo [Link],
    il link è attivo e cliccabile esattamente come volevo io.

    Il "problema" nasce quando mi scrivono i link direttamente nella textarea del commentario perchè ovviamente rimangono bruttissimo testo, inoltre è capitato che postassero delle immagini dalle dimensioni esagerate con il tag completo
    Codice HTML:
    <img src="url immagine">
    e abbiano disfatto la struttura della pagina...

    Quindi la mia domanda è:
    c'è la possibilità di fare in modo che i link vengano inseriti solo con il pront?

    C'è modo di fare un controllo nel campo messaggio ovvero la textarea dove vengono appunto scritti i commenti che si blocchi nel caso ci sia scritto un url, io ho provato, ma nel modo che avevo fatto io poi mi dava errore anche con i link inseriti tramite pront

    Spero di esser riuscita a farti capire cosa vorrei fare^^
    Grazie sempre tantissimo Euro un abbraccio

  10. #10
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    grazie, ora è più chiaro...

    per quanto riguarda le immagini, come ti avevo scrittto nei precedenti post, puoi escludere il tags <img> con la funzione molto utile strip_tags(), manuale:http://php.net/manual/en/function.strip-tags.php

    per quanto riguarda la visualizzazzione dei link, l'utente al posto di [Link] può scriversi quello che vuole in effetti,
    penso che si possa risolvere con una ricerca tramite php nella strtinga di codice per ogni tags html...

    sarebbe più facile se si potesse impostare una regex per ogni tags html, poi si fa un confronto con la funzione preg_match() e si preleva solo la parte del testo, il [Link]

    qui c'è un es. di codice di come potresti fare:
    Codice PHP:

    // <div class="miaclasse" style="miostile">TESTO DA ESTRARRE</div>

    $htmlContentString = ''; // stringa contenente html
    $pattern = "#\<div class=\"miaclasse\" style=\"miostile\"\>(.*?)\</div\>#si";
    preg_match($pattern,$htmlContentString,$matches);
    $result = isset($matches[0]) ? $matches[0] : '';
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  11. #11
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro ^_^ si infatti x le immagini non avevo problemi, avevo già pensato di mettere un blocco del tag <img.....>

    Ora devo capire come utilizzare il tuo suggerimento, perchè considera che chi non usa il pront scrive il link direttamente così:
    Codice HTML:
    http://www.urlpagina.com
    con il pront invece diventa
    Codice HTML:
    <a target=_'blank' href='http://urlpagina.com'>[Link]</a>
    ????? help me non so come devo scrivere il "$pattern"

    >_<'''''

  12. #12
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    il problema in quel codice è l'href che varia da post a post....e per il $pattern cosa scrivi nell'href?!

    si potrebbe usare ajax per inviare l'href cioè la variabile url ad una pagina .php e salvare una variabile php $url come sessione....
    e quindi impostarla nel $pattern....ma non so se funziona...bisogna provare!

    scusa(dimentica ajax per ora), edito qui per dire che basta fare così
    (eccco $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si"; )

    Codice PHP:
    <?
    $htmlContentString
    = $_POST['messaggio']; // stringa contenente html
    $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si";
    preg_match($pattern,$htmlContentString,$matches);
    $result = isset($matches[2]) ? $matches[2] : ''; //1 per l'href , 2 per il testo

    echo "<p>result --> ".$result;

    ?>
    l'ho provato a questa pagina , e funziona:
    http://eurosalute.altervista.org/test-prove/index.php
    Ultima modifica di EuroSalute : 27-10-2011 alle ore 21.43.53 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  13. #13
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro allora ho provato il codice che hai scritto, ma non funge, sia che si scriva un link direttamente nella textarea o che si usi il pront, salva solo i dati inseriti negli altri campi annullando tutto ciò che viene scritto nel campo messaggio ti posto il codice che salva i commenti così magari mi aiuti a capire se ho fatto errori io ad inserire il codice che hai scritto tu, nel doverlo adattare al codice presente per la parte che appunto riguarda il campo messaggi, dove già viene eseguito un controllo x le parolacce e il stripslashes per evitare le backslash nelle parole con gli apostrofi e le virgolette^^

    Codice PHP:
    <?php include ("gif.php"); ?>

    <?php
    $my_database_txt
    = 'xxxxx.txt';

    //ricavo l'ora e la data odierna
    $data_ora = date("d/m/Y H:i:s");
    $ip = $_SERVER['REMOTE_ADDR']; //ip

    if(isset($_POST['invia']))
    {
    if(!
    is_writable($my_database_txt)){
    exit(
    "il file non ha i permessi di scrittura!");
    }
    // riceviamo i dati e li filtriamo
    $bad_char = array("|", "\r\n", "\r", "\n");
    $nikname = str_replace($bad_char, "", $_POST['nikname']);
    $urlsito = str_replace($bad_char, "", $_POST['urlsito']);
    $email = str_replace($bad_char, "", $_POST['email']);
    $messaggio = str_replace($bad_char, "", $_POST['messaggio']);
    // apriamo il file
    $open = fopen($my_database_txt, "a+");

    // Ban ip
    $bannati=array("178.32.96.253");

    if(
    in_array($_SERVER['REMOTE_ADDR'],$bannati)) {
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    $ctrl = 1;
    }


    // Controllo parolacce interamente realizzato da Bradiposo

    $parolacce=array('cazzo','sesso','stronz','viagra','sex','porco','prozac','valium');

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }

    if(
    $ctrl == false ) {
    $txt = stripslashes($messaggio);
    fwrite($open, $nikname."|".$data_ora."|".$urlsito."|".$email."|".$txt."|".$ip."\r\n");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }

    // chiudiamo il file
    fclose($open);

    // ritorniamo nella pagina di visualizzazione
    header("location: http://www.iltelaiodipenelope.it/tutorial/mex/commentario.php");
    exit;
    }

    }

    ?>
    Grazie tantissimo x la tua pazienza davvero Un abbraccio

  14. #14
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    non vedo il codice con la modifica che hai apportato, comunque prova così:

    Codice PHP:
    <?php include ("gif.php"); ?>

    <?php
    $my_database_txt
    = 'xxxxx.txt';

    //ricavo l'ora e la data odierna
    $data_ora = date("d/m/Y H:i:s");
    $ip = $_SERVER['REMOTE_ADDR']; //ip

    if(isset($_POST['invia']))
    {
    if(!
    is_writable($my_database_txt)){
    exit(
    "il file non ha i permessi di scrittura!");
    }
    // riceviamo i dati e li filtriamo
    $bad_char = array("|", "\r\n", "\r", "\n");
    $nikname = str_replace($bad_char, "", $_POST['nikname']);
    $urlsito = str_replace($bad_char, "", $_POST['urlsito']);
    $email = str_replace($bad_char, "", $_POST['email']);
    $messaggio = str_replace($bad_char, "", $_POST['messaggio']);
    // apriamo il file
    $open = fopen($my_database_txt, "a+");

    // Ban ip
    $bannati=array("178.32.96.253");

    if(
    in_array($_SERVER['REMOTE_ADDR'],$bannati)) {
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    $ctrl = 1;
    }


    // Controllo parolacce interamente realizzato da Bradiposo

    $parolacce=array('cazzo','sesso','stronz','viagra','sex','porco','prozac','valium');

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }


    $htmlContentString = $messaggio; // stringa contenente html
    $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si";
    preg_match($pattern,$htmlContentString,$matches);
    $result = isset($matches[2]) ? $matches[2] : ''; //1 per l'href , 2 per il testo

    if (!empty($result) AND $result!='[Link]') {
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }


    if(
    $ctrl == false ) {
    $txt = stripslashes($messaggio);
    fwrite($open, $nikname."|".$data_ora."|".$urlsito."|".$email."|".$txt."|".$ip."\r\n");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }

    // chiudiamo il file
    fclose($open);

    // ritorniamo nella pagina di visualizzazione
    header("location: http://www.iltelaiodipenelope.it/tutorial/mex/commentario.php");
    exit;
    }

    }

    ?>
    Grazie tantissimo x la tua pazienza
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  15. #15
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro,
    prima non ho potuto lasciare la modifica perchè come ti avevo scritto non postava nulla, ti ho postato il codice dell'insert per capire dove smanettare... ora è inserito il tuo corretto ma non va', è come se non effettua il controllo uffff

    Guarda ho lasciato le prove fatte, Link
    Accidenti che rabbia mi spiace tanto farti perdere tutto sto' tempo ma da sola non mi riesce proprio...

  16. #16
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    non va per il semplice fatto che il prompt url stampa questo:
    Codice HTML:
    <a target='_blank' href=http://altervista.org>[Link]</a>
    mentre $pattern controlla l'href racchiuso tra gli apici --> vedi ci sono gli apici --> href='(.*?)'

    Codice PHP:
    $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si";
    a me funziona perchè ho questo nella funzione link():
    Codice HTML:
    ....
    ....
    document.modulo.messaggio.value = document.modulo.messaggio.value +("<a target='_blank' href='" +url+ "'>[Link]</a>");
    ....
    ....
    corretto questa cosa, vedrai che poi funziona...

    ora se vuoi che l'utente inserisca solamente un link, devi aggiungere un altro controllo tipo questo:
    Codice PHP:
    $count_a= substr_count($htmlContentString,'<a');//contiamo quanti <a href.... ci sono

    if ($count_a>1) {
    //vai alla error page
    }
    puoi fare così e blocchi anche gli http diretti....:
    Codice PHP:
    $count_a= substr_count($htmlContentString,'<a');//contiamo quanti <a .... ci sono
    $count_http= substr_count($htmlContentString,'http');//contiamo quanti http ci sono
    if ( ($count_a>1) or ($count_a==0 and $count_http>0) or ($count_a==1 and $count_http>1) ) {
    //vai alla error page
    }
    ciao...
    Ultima modifica di EuroSalute : 28-10-2011 alle ore 20.35.59 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  17. #17
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ciao Euro scusa me non avevo notato gli apici nel pattern, ora li ho inseriti nel pront ma continua a postare i link scritti direttamente nella textarea...

    Non capisco proprio perchè non funziona, ho controllato se ci fossero altri errori ma ho copiato il codice che hai postato qui quindi non saprei cos'altro fare....


    Ho notato che nella tua prova se si inserisce un link nella textarea ti da un avviso che si può inserire un solo link, a me non interessa se inserisco 1 o 10 link l'importante è che lo facciano attraverso il pront

    che dici cosa ho pasticciato????

  18. #18
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per i link diretti nella textarea, bisogna aggiungere un'altra regex, ho fatto così:
    Codice PHP:
    $pattern_http_www = "/^((http)|([w]{2,}))+([^<a']+)$i/";

    preg_match($pattern_http_www,$htmlContentString,$matches);
    $result_http_www = isset($matches[0]) ? $matches[0] : '';

    if (
    trim($result_http_www)){//ci vuole trim perchè togliere gli spazi
    //vai alla error page
    }
    per la regex di <a target='.....ecc
    questa espreaaione regolare funziona soltanto una volta, se posti più link, rileva solo il primo....

    sto cercando di modificare questa regex per farla funzionare sempre:
    Codice PHP:
    $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si";
    ----------------------------------
    ho fatto alcune modifiche al codice per permettere di controllare il testo di più link, il codice è questo:

    Codice PHP:
    $stop=false;
    $htmlContentString = $_POST['messaggio']; // stringa contenente html
    //se si vuole bloccare codice php e tags html:
    //$htmlContentString=strip_tags($htmlContentString,"<b><i><u><code><a>");

    $pattern = "#\<a target='_blank' href='(.*?)'\>(.*?)\</a\>#si";
    //altro pattern :
    /*$pattern = '/<a[^>]*?href=[\'"](.*?)[\'"][^>]*?>(.*?)<\/a>/si';*/

    if (preg_match_all($pattern,$htmlContentString,$array_pattern,PREG_SET_ORDER)){
    //come test:
    echo "<p>array_pattern=";print_r($array_pattern);

    foreach (
    $array_pattern as $val)

    {

    if (
    $val[2] != '[Link]'){
    $stop=true;
    echo (
    "<script>alert('Errore: il [Link] non è corretto!')</script>");
    break;
    }

    //come test:
    echo "<p>val[0]=".$val[0];
    echo
    "<p>val[1]=".$val[1];
    echo
    "<p>val[2]=".$val[2];


    }

    }
    Ultima modifica di EuroSalute : 29-10-2011 alle ore 21.38.12 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  19. #19
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Carissimo Euro sei stato come sempre di una pazienza e gentilezza uniche e io ti ringrazio tantissimo, ma ho provato il codice che mi hai postato e non andava x cui mi son rimessa a smanettare un pochino e ho trovato la soluzione che volevo ^_^

    Posto la parte di codice che ho scritto così magari in futuro potrà essere utile ad altri^^

    Codice PHP:
    $txt = stripslashes($messaggio);

    $pos1 = strpos($txt, "http://");
    $pos2 = strpos($txt, "<a target='_blank' href=");

    if (
    $pos1 !== false && $pos2 === false) {

    echo
    "<br /><br />";
    echo
    "<table class='bordoex' cellpadding='6' cellspacing='10' width='570'>";
    echo
    "<tr>";
    echo
    "<td class='bordoint'>";
    echo
    "<table class='base' cellpadding='0' cellspacing='0' width='100%'>";
    echo
    "<tr>";
    echo
    "<td width='100%'><strong>ERRORE</strong><br /><br>
    Se vuoi inserire url di una pagina o un'immagine devi utilizzare l'apposito bottoncino del BBCode<br /><br />
    <img border='0' src='http://www.iltelaiodipenelope.it/tutorial/mex/img/insert_url.jpg' width='294' height='159' alt='' /><br /><br />
    Grazie... <a href='javascript:history.back()'>Torna indietro per corregere</a></td>"
    ;
    echo
    "</tr>";
    echo
    "</table>";
    echo
    "</td>";
    echo
    "</tr>";
    echo
    "</table>";
    $ctrl = 1;
    }
    In questo modo non si perde neppure il messaggio scritto e chi avrà un po' di pazienza dovrà solo tornare indietro e correggere il messaggio

    Ancora un grazie enorme davvero
    un abbraccio a tutti

  20. #20
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    brava ci sei riuscita, controlli links diretti nel messaggio, ma hai aggiunto il codice per controllare il testo [Link] del bbcode?

    mi riferisco al codice che ho postato con la funzione preg_match_all()

    quel pezzo di codice l'ho provato e riprovato e funziona

    fammi sapere

    ciao
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  21. #21
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    ^______________^ non puoi immaginare che soddisfazione caro Euro il php tanto mi affascina quanto mi fa impazzire ma alla fine è bello davvero trovare le soluzioni ottimali^^

    Sono contenta che hai lasciato un mex anzi ti invito a farlo più spesso anche nella home del sito^^

    Cavolini mi è sfuggito però il controllo di cui parli.... e riguardando i vari messaggi non riesco ad individuare il pezzo di codice "incriminato" saresti così gentile da indicarmi quale e come integrarlo nel codice che ho ora? Ti posto tutto il codice dell'insert così non faccio confusione:

    Codice PHP:
    <?php
    $my_database_txt
    = 'xxxxx.txt';

    //ricavo l'ora e la data odierna
    $data_ora = date("d/m/Y H:i:s");
    $ip = $_SERVER['REMOTE_ADDR']; //ip

    if(isset($_POST['invia']))
    {
    if(!
    is_writable($my_database_txt)){
    exit(
    "il file non ha i permessi di scrittura!");
    }
    // riceviamo i dati e li filtriamo
    $bad_char = array("|", "\r\n", "\r", "\n");
    $nikname = str_replace($bad_char, "", $_POST['nikname']);
    $urlsito = str_replace($bad_char, "", $_POST['urlsito']);
    $email = str_replace($bad_char, "", $_POST['email']);
    $messaggio = str_replace($bad_char, "", $_POST['messaggio']);
    // apriamo il file
    $open = fopen($my_database_txt, "a+");

    // Ban ip
    $bannati=array("178.32.96.253");

    if(
    in_array($_SERVER['REMOTE_ADDR'],$bannati)) {
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    $ctrl = 1;
    }


    // Controllo parolacce interamente realizzato da Bradiposo

    $parolacce=array('cazzo','sesso','stronz','viagra','sex','porco','prozac','valium');

    //controllo url
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $urlsito);
    if (
    $exp[0]!=$urlsito) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }


    //controllo messaggio
    for ($i=0; $i < count($parolacce); $i++) {
    $exp = explode($parolacce[$i], $messaggio);
    if (
    $exp[0]!=$messaggio) {
    $ctrl = 1;
    //pag errore
    header('location: http://www.iltelaiodipenelope.it/tutorial/mex/errore_mex.php');
    }
    }


    $txt = stripslashes($messaggio);

    $pos1 = strpos($txt, "http://");
    $pos2 = strpos($txt, "<a target='_blank' href=");

    if (
    $pos1 !== false && $pos2 === false) {

    echo
    "<br /><br />";
    echo
    "<table class='bordoex' cellpadding='6' cellspacing='10' width='570'>";
    echo
    "<tr>";
    echo
    "<td class='bordoint'>";
    echo
    "<table class='base' cellpadding='0' cellspacing='0' width='100%'>";
    echo
    "<tr>";
    echo
    "<td width='100%'><strong>ERRORE</strong><br /><br>
    Se vuoi inserire url di una pagina o un'immagine devi utilizzare l'apposito bottoncino del BBCode<br /><br />
    <img border='0' src='http://www.iltelaiodipenelope.it/tutorial/mex/img/insert_url.jpg' width='294' height='159' alt='' /><br /><br />
    Grazie... <a href='javascript:history.back()'>Torna indietro per corregere</a></td>"
    ;
    echo
    "</tr>";
    echo
    "</table>";
    echo
    "</td>";
    echo
    "</tr>";
    echo
    "</table>";
    $ctrl = 1;
    }


    if(
    $ctrl == false ) {
    $txt = stripslashes($messaggio);
    fwrite($open, $nikname."|".$data_ora."|".$urlsito."|".$email."|".$txt."|".$ip."\r\n");
    $antispam = $_POST['antispam'];
    if (
    $antispam != "cinque-sette-otto-uno") { die("errore antispam"); }

    // chiudiamo il file
    fclose($open);

    // ritorniamo nella pagina di visualizzazione
    header("location: http://www.iltelaiodipenelope.it/tutorial/mex/commentario.php");
    exit;
    }

    }

    ?>
    Grazie ancora buonissima domenica a tutti

  22. #22
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    il codice è questo...
    ho messo come es. --> Non puoi modificare il testo [Link] dell' url
    Codice PHP:
    $stop=false;
    $htmlContentString = $txt;
    $pattern = '/<a[^>]*?href=[\'"](.*?)[\'"][^>]*?>(.*?)<\/a>/si';

    if (
    preg_match_all($pattern,$htmlContentString,$array_pattern,PREG_SET_ORDER)){
    foreach (
    $array_pattern as $val) {

    if (
    $val[2] != '[Link]'){
    $stop=true;
    break;
    }

    }
    }

    if (
    $stop) {
    echo
    "<br /><br />";
    echo
    "<table class='bordoex' cellpadding='6' cellspacing='10' width='570'>";
    echo
    "<tr>";
    echo
    "<td class='bordoint'>";
    echo
    "<table class='base' cellpadding='0' cellspacing='0' width='100%'>";
    echo
    "<tr>";
    echo
    "<td width='100%'><strong>ERRORE</strong><br /><br>

    Non puoi modificare il testo [Link] dell' url<br /><br />

    <img border='0' src='http://www.iltelaiodipenelope.it/tutorial/mex/img/insert_url.jpg' width='294' height='159' alt='' /><br /><br />
    Grazie... <a href='javascript:history.back()'>Torna indietro per corregere</a></td>"
    ;
    echo
    "</tr>";
    echo
    "</table>";
    echo
    "</td>";
    echo
    "</tr>";
    echo
    "</table>";
    $ctrl = 1;
    }
    inserisci questo controllo dopo il tuo codice che controlla http://

    guardando bene il tuo codice dove effettui il controllo con strpos(), se sono vere tutte e due le condizioni il controllo non funziona....praticamente se per es. inserisco un link diretto con http:// ed inserisco un link con il bbcode, la condizione non è vera ed il messaggio verrebbe postato comunque.
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  23. #23
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Perfetto Euro grazie ora sistemo tutto il codice che tra l'altro avevo pure dimenticato di inserire il controllo url nel pront^^ che stordita

    Si hai ragione il controllo non è perfetto, continuerò a studiare ma al momento è la soluzione migliore e speriamo in un po' di buon senso delle persona che lasciano i commenti ^_^

    Ancora grazie di cuore ^___________^
    Happy Halloween a tutti

  24. #24
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ok, si Happy Halloween anche a te....!

    stasera si esce.....

    nel mentre tenterò di fare una regex che funzioni bene per il controllo del http:// diretto nel messaggio.....non è semplice, ho realizzato alcuni controlli per http:// ma funzionano in parte...c'è da considerare l'href='http://....' del bbcode.

    ciao e buona festa!
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  25. #25
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    ...non lo dire a me sai quante ore ci ho perso x fare quelle 3 righe di codice!?! E poi appunto non è manco perfetto^^ cmq io ogni tanto passo a vedere se tu riesci a sistemarlo, anche io come ti ho scritto continuo a studiare ^_^
    Un abbraccio e spero passi una bellissima serata^^

  26. #26
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ho trovato la soluzione per il controllo diretto http://,ho realizzato una regex funzionante, che è relativamente semplice ....

    Codice PHP:
    $pattern_http_href = '/(http:\/\/|href=[\'"](.*?)[\'"])/si';
    questa regex controlla sia http:// sia href='..il contenuto..' ( o href="..il contenuto..")

    il codice da aggiungere è questo:
    come es. --> Non è ammesso inserire url direttamente, utilizzare il bbcode
    Codice PHP:

    $stop_http
    =false;
    $htmlContentString = $txt;
    $pattern_http_href = '/(http:\/\/|href=[\'"](.*?)[\'"])/si';

    if (
    preg_match_all($pattern_http_href,$htmlContentString,$matches,PREG_SET_ORDER)){
    //come test:
    //echo "<p>matches=";print_r($matches);

    foreach ($matches as $val)

    {

    //come test:
    //echo "<p>val[0]=".$val[0];
    //echo "<p>val[1]=".$val[1];
    //echo "<p>val[2]=".$val[2];

    if ($val[0] == 'http://'){
    $stop_http=true;
    //come test:
    //echo ("<script>alert('Errore: non è ammesso inserire url direttamente, utilizzare il bbcode!')</script>");
    break;
    }
    }
    }

    if (
    $stop_http) {
    echo
    "<br /><br />";
    echo
    "<table class='bordoex' cellpadding='6' cellspacing='10' width='570'>";
    echo
    "<tr>";
    echo
    "<td class='bordoint'>";
    echo
    "<table class='base' cellpadding='0' cellspacing='0' width='100%'>";
    echo
    "<tr>";
    echo
    "<td width='100%'><strong>ERRORE</strong><br /><br>

    Non è ammesso inserire url direttamente, utilizzare il bbcode<br /><br />

    <img border='0' src='http://www.iltelaiodipenelope.it/tutorial/mex/img/insert_url.jpg' width='294' height='159' alt='' /><br /><br />
    Grazie... <a href='javascript:history.back(-1)'>Torna indietro per correggere</a></td>"
    ;
    echo
    "</tr>";
    echo
    "</table>";
    echo
    "</td>";
    echo
    "</tr>";
    echo
    "</table>";
    $ctrl = 1;
    }
    provato e riprovato sulla pagina di prova-test: http://eurosalute.altervista.org/test-prove/ e funziona....

    fammi sapere se hai difficoltà...

    ----------------------------------------------
    edito qui per dire che ho eseguito un ulteriore controllo della regex interessata al controllo del testo [Link]...
    in pratica può succedere che un utente esperto possa chiudere il tag con > ed inserire quello che vuole al posto di [Link]....
    quindi ho modificato la regex in questo modo:

    Codice PHP:
    $pattern = '/<a[^>]*?href=[\'"](.*?)[\'"][^>]*?>(.*[^>]?)<\/a>/si'; // <-- OK
    ho inserito l'esclusione del carattere > qui (.*[^>]?) per il testo dove appare [Link], in questo modo se chiunque inserisce il carattere > per la chiusura del tag ...non viene considerato come chiusura del tag...
    e quindi ora questa regex dovrebbe essere perfetta...

    provato ..funziona
    Ultima modifica di EuroSalute : 01-11-2011 alle ore 13.36.08 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  27. #27
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Capperina Euro fantastico ora risistemo il codice ^_^ ho provato nella tua pagina ed è perfetto grazie di cuore davvero così ora non ci saranno problemi^^
    Ti avevo già inserito nei ringraziamenti/credits della pagina commentario.... meritatissimi
    Un abbraccione alla prossima... che sicuro arriverà quanto prima^^

  28. #28
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    grazie di cuore veramente per i ringraziamenti....

    purtroppo il lavoro sta diminuendo drasticamente e non si sa di preciso come sarà il futuro.....
    devo spostarmi da un'azienda ad un'altra viaggianado giornalmente....è veramente stressante e pesante....

    purtroppo la programmazione web non riesco più a seguirla come prima....

    posso dirti ancora di migliorare il codice inserendo un altro controllo per lo stile nel tag <a href... style=''.....> , possono in effetti inserire nel style quello che vogliono, es.: font-size:300px; e sballarti tutto ......

    ciao

    un caro saluto
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  29. #29
    Data registrazione
    11-07-2009
    Residenza
    Roma
    Messaggi
    163

    Predefinito

    Ci mancherebbe caro Euro, un ringraziamento è il minimo che si possa fare^^
    già purtroppo il lavoro oggi è un'incognita che ci fa' stare davvero poco tranquilli considerando come si va' ad evolvere la situazione in Italia...

    Non avevo pensato allo "style" vedrò di sistemare anche quello magari con un controllo tipo quello x le parole vietate^^ Grazie ^_^

    Un abbraccio a tutti

Regole di scrittura

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