Visualizzazione risultati 1 fino 7 di 7

Discussione: Non riesco a modificare un codice..

  1. #1
    Guest

    Question Non riesco a modificare un codice..

    salve raga.. sono sempre alle prese con quel maledetto testo scorrevole e avrei due cosette..

    1) Ho improvvisato questo codice riportato qui sotto, ma non risolve tutti i problemi e quindi vorrei che i messaggi vengano inviati.. direttamente dal file mess.php
    Codice HTML:
    <FORM name="modulo" method="post" action="http://folliacity.altervista.org/testoscorrevole/mess.php"> 
    <table border="0" cellspacing="0" class="posting-table"><tr><td align="left"> Nick:- <input type="text" name="autore" size="10" maxlength="50"  value="
    
    <?php
     
    $testo = $_GET['testo1'];
    print ''.$testo;
    ;
     
    ?>
    
    " readonly></td><td align="left"> Messaggio:- <input type="text" name="testo"  size="25" maxlength="200"> </td><td align="left"><input type="submit" value="Invia!!" name="invia"> </td></tr></table></form>
    ma vorrei inserire il:-
    Codice PHP:
    <?php

    $testo
    = $_GET['testo1'];
    print
    ''.$testo;
    ;

    ?>
    Dentro il file mess.php riportato qui sotto..

    Codice PHP:
    <?
    define
    ('DBHOST', "localhost");
    define('DBNAME', "my_folliacity");
    define('DBUSER', "folliacity");
    define('DBPASS', ""); //questo campo lascialo vuoto!

    $conn=mysql_connect(DBHOST,DBUSER,DBPASS)
    or die(
    "Errore nella connessione");
    mysql_select_db(DBNAME)
    or die(
    "Database non trovato");

    // TI CONSIGLIO VIVAMENTE DI CAMBIARE GLI STYLES!!!!!!!!

    $body = "background-color:white;color:black;font-family:verdana;font-size:11;margin:2px";

    //inserisci
    if ($_POST["invia"])
    {
    foreach(
    $_REQUEST as $key => $value)
    $
    $key=$value;

    $data=time();

    $testo=str_replace("\"", "&quot;", $testo);
    $testo=str_replace("<", "&lt;", $testo);
    $testo=str_replace(">", "&gt;", $testo);
    $testo=str_replace("& ", "&amp; ", $testo);
    $testo=addslashes($testo);

    $query="
    INSERT INTO `effebox` (`id` , `data` , `autore` , `testo`)
    VALUES
    (
    '',
    '
    $data',
    '
    $autore',
    '
    $testo'
    );"
    ;

    $esegui=@mysql_query($query);

    if (
    $esegui) $stato="Messaggio inserito<br>[ <a href=\"javascript:self.close();\">Chiudi</a> ]";
    else die(
    "ERRORE!!");

    mysql_close($conn);


    echo
    "<html>
    <head>
    <title>Invia un messaggio</title>
    </head>

    <body style=\"
    $body\">
    <table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"5\">
    <tr>
    <td align=center><b>
    $stato</b></td>
    </tr>
    </table></body></html>
    "
    ;


    }

    else


    //pagina inserimento
    {
    echo
    "
    <html>
    <head>
    <title>Invia un messaggio</title>
    <style type=\"text/css\">
    <!--
    a:link {
    color:blue; text-decoration: none;
    }
    a:visited {
    color:blue; text-decoration: none;
    }
    a:hover {
    color:red; text-decoration: underline;
    }
    a:active {
    color:blue; text-decoration: none;
    }
    -->
    </style>
    <script language=\"JavaScript\">
    <!--
    function calcCharLeft(f,l1) {
    var msgLen;
    var MaxLength;
    MaxLength = 100;
    msgLen=document.modulo.testo.value.length;
    if (msgLen >= MaxLength ){
    document.modulo.charsleft.value= \"0\";
    window.alert(\"Messaggio troppo lungo!\");
    document.modulo.testo.value=document.modulo.testo.value.substring(0,MaxLength);
    }
    else {
    document.modulo.charsleft.value = MaxLength - msgLen;
    }
    }
    // -->
    </script>
    </head>

    <body style=\"
    $body\">


    <!-- INIZIO CODICE TESTO SCORREVOLE -->
    <FORM name=\"modulo\" method=\"post\" action=\"mess.php\">
    <table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"5\">
    <tr>
    <td align=center><b>Pubblica il tuo messaggio!</b></td>
    </tr>
    <tr>
    <td align=center>
    Autore: <input type=\"text\" name=\"autore\" size=\"30\" maxlength=\"15\" ></td>
    </tr>
    <tr>
    <td align=center>
    <textarea name=\"testo\" rows=\"3\" cols=\"20\" OnKeyUp=\"calcCharLeft()\" OnChange=\"calcCharLeft()\"></textarea>
    </td>
    </tr>
    <tr>
    <td align=center>
    <input type=\"text\" readonly name=\"charsleft\" size=\"3\" value=\"100\"> caratteri rimanenti.
    </td>
    </tr>
    <tr>
    <td align=center>
    <input type=\"submit\" value=\"Invia!!\" name=\"invia\"></td>
    </tr>
    </table>

    </body>
    </html>
    "
    ;

    }

    ?>
    2) Aggiungendo delle righe di codice tipo "$testo=str_replace("\"", "&quot;", $testo); " sarebbe possibile censurare alcune parole? se si.. mi potete fare un esempio?

    Grazie a tutti in anticipo.. :)
    Ultima modifica di folliacity : 07-07-2010 alle ore 23.22.33

  2. #2
    Guest

    Predefinito

    Io metterei un $_GET[] qui:
    Codice PHP:
    //inserisci
    if ($_POST["invia"])
    {
    che diventerebbe così:
    Codice PHP:
    if(isset($_GET['testo1']){
    $testo = $_GET['testo1'];
    }

    //inserisci
    if ($_POST["invia"])
    dopodichè sostituisci questo codice:
    Codice PHP:
    <td align=center>
    Autore: <input type=\"text\" name=\"autore\" size=\"30\" maxlength=\"15\" ></td>
    </tr>
    Con questo:
    Codice PHP:
    <td align=center>
    Autore: <input type=\"text\" name=\"autore\" size=\"30\" maxlength=\"15\" value=\"".$testo."\"></td>
    </tr>
    se non ho capito male la variabile $testo è il nome dell'autore, no?
    Comunque il tuo codice è un tantino confuso e costruire l'intera pagina con php mi sembra un poco esagerato, il codice dinamico deve essere gestito via php quello statico è meglio che rimanga in html anche per questione di prestazioni
    comunque per prima cosa separerei css da html e php, mettendolo in un foglio di stile, poi farei lo stesso per le funzioni javascript da mettere in un file .js

    dovrebbe rendere il tutto un po' più chiaro e gestibile.
    Se più avanti ti trovassi a fare pagine molto più dinamiche ti troveresti davanti un codice ingestibile e dovresti rifarti tutto.
    Se mentre lo realizzi ci capisci qualcosa, è possibile che a riguardarlo più avanti il codice sembri scritto in cinese (sopratutto se passano dei mesi) quindi più è modulare, più è commentato e meglio è!

    per il punto 2 sì, si può fare basta crivere ad esempio:
    Codice PHP:
    $testo=str_replace("tette", "t***e", $testo);
    uno per ogni parola da censurare ed il gioco è fatto!
    Se poi usi str_ireplase() al posto di str_replace() possono scriverle (le parole) anche con lettere maiuscole o mescolate e vengono comunque censurate (str_replace() è case sensitive, str_ireplace(), invece è case insensitive).

    ciao
    Ultima modifica di opens : 09-07-2010 alle ore 11.41.25

  3. #3
    Guest

    Predefinito

    Grazie! è tutto perfetto..

    c'è solo una cosetta, ma niente di che.. non mi prende il str_ireplace() e invece il str_replace() funziona benissimo..
    come posso fare?
    Fatal error: Call to undefined function: str_ireplace() in /membri/folliacity/testoscorrevole/mess.php on line 29
    Ultima modifica di folliacity : 09-07-2010 alle ore 17.32.31

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

  5. #5
    Guest

    Predefinito

    e come si fa per fare ciò?

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

  7. #7
    Guest

    Predefinito

    Grazie!

Regole di scrittura

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