Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    strpos... suggerimenti?

    Eccomi tornata a rompervi le scatole ^_^
    sempre a che fare con la mia chat ma questa volta il problema è diverso... spero riucirò a spiegarvelo nella maniera più giusta e comprensibile.

    Allora... io ho una chat composta da due iframes, uno che visualizza i messaggi, l'altro con il form

    <form name="INform" method="post" action="Chatdaemon.php" onSubmit="javascript:location.reload();">
    <input type="text" name="message" size="45">
    <select name="azione">
    <option name="normale">normale</option>
    <option name="sussurra">sussurra</option>
    <option name="prova">prova</option></select>
    <input type="submit" value="Invia" name="inviato" onclick="javascript:document.INform.message.focus( );">
    </form>

    come potete vedere c'è un option che, a seconda del tipo di option inviato, visualizza il messaggio in maniera diversa.

    In particolare, mi interessa l'option prova... questo dovrebbe funzionare così:
    l'utente imposta il select su prova e scrive nel form solo la parola "carisma".
    La pagina di elaborazione dati dovrebbe quindi riconoscere i due imput e stampare di un altro colore il messaggio.

    $azione=$_POST['azione'];
    if ($azione=='prova') {
    $prova=strpos($chat_text,'carisma');
    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font color="blue" face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars($prova) . '</font></p>';
    };

    ora sorgono alcuni problemi ^_^ che purtoppo io non sono riuscita a risolvere.

    1) ciò che strpos stampa in questo caso è il numero che indica la posizione in cui si trova nella frase la parola carisma... io invece avevo bisogno di altro. Ad esempio di stampare una variabile decisa precedentemente.
    Il problema è che se io sostituisco dalla stringa "htmlspecialchars($prova)" la variabile prova e ne metto un'altra mi da errore... come posso risolvere? esistono altri mezzi in php che individuano una parola in una frase?

    2)se l'utente si sbaglia a scrivere (per esempio inserisce ciao e mette come option "prova") esce fuori un messaggio vuoto... avevo pensato ad un if (se p presente la parola carisma fai questo) e poi else (se non è presente fai quest'altro) ma con strpos non è possibile... o meglio, io non ci riesco! XD

    Spero di essere stata abbastanza chiara..... =)
    grazie in anticipo
    .: Charlotte :.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Charlotte17
    Spero di essere stata abbastanza chiara..... =)
    Io non ho capito niente ma forse sono i postumi del sabato.

    Comunque nelle option devi mettere value e non name

    <option value="normale">normale</option>
    ecc.

    se devi evidenziare una sola parola prova questa. se la parola non è presente non succede niente.
    codice:
    $frase = "con questa frase dimostro il mio carisma carismatico";
    $parola = "carisma"; 
    echo preg_replace("/\b$parola\b/i", "<span style=color:blue>$0</span>", $frase);
    come puoi vedere ti mette in blu solo carisma e non carismatico anche se quest'ultima contiene la prima. Cerca solo la parola intera.

  3. #3
    ehm... probabilmente sono io che non mi sono fatta per niente capire XD

    allura... ^_^
    intanto grazie per l'option... mi sbaglio sempre XD
    per quanto riguarda la soluzione che mi hai proposto purtoppo non è adatta al mio scopo... o se no non riesco ad utilizzarla come dovrei! XD
    vediamo se riesco a spiegarmi per bene...
    nella chat si dovrebbero poter fare delle prove su varie caratteristiche. Per farle nel form della chat c'è il comando "prova" (quello del select) e poi nello spazio l'utente dovrebbe scrivere il nome della caratteristica su cui si fa la prova.

    La pagina di codifica riconosce l'utilizzo del select "prova", individua la parola e stampa sulla chat un messaggio tipo: "hai effettuato una prova sul carisma con risultato tot" XD

    io ho provato a fare così:

    $chat_text=$_POST['message'];
    $azione=$_POST['azione'];

    (ricevo il comando del select ^^ e il testo)

    if ($azione=='prova') {
    $prova=strpos($chat_text,'carisma');

    cerca la parola carisma nel testo

    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font color="blue" face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars($prova) . '</font></p>';}

    e stampa un messaggio che deve sostituire ciò che l'utente ha scritto ^_^

    in questo caso però il comando strpos utilizzato mi fa stampare un numero... allora ho provato a sostituire $prova con qualcos'altro

    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font color="blue" face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars(ciao) . '</font></p>';}

    naturalmente ciao è solo un esempio! e fin qui funziona! solo che provando a scrivere qualche altra frase che non abbia la parola carisma mi stampa sempre ciao! XDDD

    dov'è l'errore?

    spero di essere stata più chiara stavolta

    .: Charlotte :.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Io la butto ma non sono ancora sicuro di aver capito. Se ho frainteso ancora scrivimi un esempio di stringa che può inserire l'utente e cosa devi ottenere come risultato.

    Codice PHP:
    $fra 'cerco carisma nella frase';
    if (
    strpos($fra,'carisma') === false)
    echo 
    'carisma non trovato';
    else
    echo 
    'hai effettuato una prova sul carisma con risultato tot'

  5. #5
    hai capito perfettamente ^__^ il problema è che mi da errore

    Parse error: syntax error, unexpected T_ELSE in /home/admin/domains/pslove.net/public_html/charlotte/Chatdaemon.php on line 21

    questo è ciò che mi appare utilizzando il codice che mi hai scritto tu ^^
    .: Charlotte :.

  6. #6
    risolto quel problema ^_^ ora provo ad adattare lo script per il mio utilizzo ^__^ in caso di problemi continuo a postare qui (già vedo che mi da errore ma provo a lavorarci su ^_^)

    grazie per l'aiuto
    .: Charlotte :.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Il mio era solo un esempio per accertarmi di aver capito cosa vuoi fare. E' ovvio che lo devi adeguare al tuo script, $fra sarà da te $char_text che recuperi via post.

    Una cosa del genere

    if ($azione == 'prova')
    {
    if (strpos($char_text,'carisma') === false)
    echo 'carisma non trovato';
    else
    echo 'hai effettuato una prova sul carisma con risultato tot';
    }

  8. #8
    perfetto ^___^ ti chiedo solo l'ultima cosa sperando di non risultare rompi balle XDD

    il nostro codice quindi è questo:

    if ($azione == 'prova')
    {
    if (strpos($char_text,'carisma') === false)
    echo 'carisma non trovato';
    else
    echo 'hai effettuato una prova sul carisma con risultato tot';
    }

    al posto di hai effettuato una prova sul carisma con risultato tot devo mettere questo codice:

    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font color="red" face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars(hai effettuato una prova sul carisma con risultato tot) . '</font></p>';

    significa che se si effettua la prova la variabile contente il messaggio si modifica dal punto di vista colore e contenuto (tra cui viene inserita anche la frase "hai effettuato la prova sul carisma con risultato tot) e poi verrà inserita nel database da un altro codice...

    il problema sta nel fatto che non posso scrivere echo '$chat_text ecc...' perchè ovviamente mi stampa così il testo, non mi crea la variabie ^^ ho provato anche a togliere echo ma in qualsiasi modo mi da errore....

    consigli?


    (scusa la rottura...... )

    .: Charlotte :.

  9. #9
    Originariamente inviato da Charlotte17
    perfetto ^___^ ti chiedo solo l'ultima cosa sperando di non risultare rompi balle XDD

    il nostro codice quindi è questo:

    if ($azione == 'prova')
    {
    if (strpos($char_text,'carisma') === false)
    echo 'carisma non trovato';
    else
    echo 'hai effettuato una prova sul carisma con risultato tot';
    }

    al posto di hai effettuato una prova sul carisma con risultato tot devo mettere questo codice:

    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font color="red" face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars(hai effettuato una prova sul carisma con risultato tot) . '</font></p>';

    significa che se si effettua la prova la variabile contente il messaggio si modifica dal punto di vista colore e contenuto (tra cui viene inserita anche la frase "hai effettuato la prova sul carisma con risultato tot) e poi verrà inserita nel database da un altro codice...

    il problema sta nel fatto che non posso scrivere echo '$chat_text ecc...' perchè ovviamente mi stampa così il testo, non mi crea la variabie ^^ ho provato anche a togliere echo ma in qualsiasi modo mi da errore....

    consigli?


    (scusa la rottura...... )

    non ho assolutamtne capito cosa vuoi fare ma.. puoi fare cosi:

    $chat_text='eccecc';
    echo $chat_text;

  10. #10
    semplicemente voglio che il codice che abbiamo (anzi XD ha) ottenuto Nicola75 da così:

    if ($azione=='prova')
    {
    if (strpos($chat_text,'carisma') === false)
    {
    echo 'carisma non trovato';
    }
    else
    {
    echo 'hai effettutato una prova sul carisma';
    }
    }

    diventi così:

    if ($azione=='prova')
    {
    if (strpos($chat_text,'carisma') === false)
    {
    echo 'carisma non trovato';
    }
    else
    {
    $chat_text='<p align=justify>' . $time[0]. ' - ' . '<font face=arial size=2>'.$chatter.'' . ': ' . htmlspecialchars(hai effettuato una prova sul carisma) . '</font></p>';
    }
    }

    solo che così mi da questo errore

    Parse error: syntax error, unexpected T_STRING in /home/admin/domains/pslove.net/public_html/charlotte/Chatdaemon.php on line 25

    e io non capisco cosa devo modificare per renderlo valido


    .: Charlotte :.

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.