phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Variabile text input

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 17/05/2011, 20:19

Ci sono diversi modi per farlo, quello che non ho capito è in che contesto deve essere inserita questa funzione ?
In una pagina del Forum, in una pagina esterna, un popup, e infine, a cosa serve ?
Non per sapere il motivo di tutto questo ma per capire meglio qual'è la strada migliore per realizzarla.
Puoò essere una pura pagina php come una Custom Page, ma sempre in php.

DownloadBay
Utente
Utente
Messaggi: 85
Iscritto il: 26/04/2011, 9:47
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL 5.1.58-community-log
Contatta:

Re: Variabile text input

Messaggio da DownloadBay » 17/05/2011, 20:53

L'idea sarebbe di avere una specie di quiz, in una pagina esterna al forum.
In questa pagina ci sarà la domanda, affianco un text input dove scrivere la risposta, se la risposta è corretta, reinvio alla domanda successiva, tranquillamente messa in un' altra pagina, se sbagliata finestra una finestra con scritto che è sbagliata.
Mi affido a voi

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 17/05/2011, 21:02

Crea un file prova.php con questo codice e prova ad aprire il file prova.php:

Codice: Seleziona tutto

<?php
$testo = "stringa parasole compresa nel testo";
$valore = "sole" ;
if (preg_match("/\b$valore\b/i",$testo))
    echo "il termine \"$valore\" è presente nella frase: \"" . $testo . "\" <br />";
else
    echo "il termine \"$valore\" NON è presente nella frase: \"" . $testo . "\" <br />";
$testo1 = "sole inserito all'inizio del testo";
$valore = "sole" ;
if (preg_match("/\b$valore\b/i",$testo1))
    echo "il termine \"$valore\" è presente nella frase: \"" . $testo1 . "\" <br />";
else
    echo "il termine \"$valore\" NON è presente nella frase: \"" . $testo1 . "\" <br />";
?>

DownloadBay
Utente
Utente
Messaggi: 85
Iscritto il: 26/04/2011, 9:47
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL 5.1.58-community-log
Contatta:

Re: Variabile text input

Messaggio da DownloadBay » 17/05/2011, 21:06

L'ho creato, ma devo aprire il file php in se, oppure richiamarlo dentro l'altro file?
Perchè se apro il file php in se mi viene solo scritto

Codice: Seleziona tutto

il termine "sole" NON è presente nella frase: "stringa parasole compresa nel testo"
il termine "sole" è presente nella frase: "sole inserito all'inizio del testo" 

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 17/05/2011, 21:12

Certo, questa è una prova di come funziona la funzione preg_match().
La parola "parasole" non viene considerata valida.
Nel secondo esempio invece la parola "sole" è valida anche se è all'inizio della frase.
Ovviamente devi sfruttare queste condizioni: se la parola è corretta invece di visualizzare un messaggio apri l'altra pagina, altrimenti visualizzi un messaggio di errore.
Il tutto lo puoi fare con una Pagina personalizzata (Custom Page). Vedi nel Forum che c'è una Guida in proposito.

DownloadBay
Utente
Utente
Messaggi: 85
Iscritto il: 26/04/2011, 9:47
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL 5.1.58-community-log
Contatta:

Re: Variabile text input

Messaggio da DownloadBay » 17/05/2011, 21:14

Grandissimo, se per caso avessi altri problemi ti farò sapere *__*

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 17/05/2011, 21:19

L'importante è che nella funzione preg_match() tu inserisca il tag \b all'inizio e alla fine della parola da cercare. In questo modo viene cercata solamente la parola completa, non parte di essa.

DownloadBay
Utente
Utente
Messaggi: 85
Iscritto il: 26/04/2011, 9:47
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL 5.1.58-community-log
Contatta:

Re: Variabile text input

Messaggio da DownloadBay » 17/05/2011, 21:25

Scusa, rileggendo ho visto che mi avevi già risposto :D

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 17/05/2011, 21:41

La risposta ce l'hai nella Custom Page.
Una Custom Page è una pagina php che si connette al phpbb e quindi a tutte le funzioni previste nel Forum.
La Custom Page è associata a un file html (template) che visualizza la pagina e i dati ricavati con il file php.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Variabile text input

Messaggio da Micogian » 18/05/2011, 13:38

Se hai problemi a creare una Custom Page fai così:

Crea un file "mod_quiz.php" che metterai nella root del Forum, questo il contenuto:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup('viewforum');

$livello_cor = $_POST['livello'];
if ($livello_cor == '')
{
$livello_cor = '1' ;
}
$valore_cor = $_POST['valore'];

$titolo_cor = "Rispondi alla domanda della fase" . $livello_cor;

$domanda[1] = "Domanda del primo livello" ;
$domanda[2] = "Domanda del secondo livello" ;
$domanda[3] = "Domanda del terzo livello" ;
$domanda[4] = "Domanda del quarto livello" ;
$domanda[5] = "Domanda del quinto livello" ;
$risposta[1] = "uno" ;
$risposta[2] = "due" ;
$risposta[3] = "tre" ;
$risposta[4] = "quattro" ;
$risposta[5] = "cinque" ;

if ($user->data['user_id'] == ANONYMOUS)
{
    login_box('', $user->lang['LOGIN']);
}

page_header('pagina quiz');
if ($valore_cor <> '')
{
	if (preg_match("/\b$valore_cor\b/i",$risposta[$livello_cor]))
	{
		if ($livello_cor < '5')
		{
    		$livello_cor = $livello_cor + 1 ;
		$titolo_cor = "<b>Risposta esatta.</b> Rispondi alla domanda della fase $livello_cor";
		}else{
		$template->assign_vars(array(
		'RISULTATO' => true ,
		));
		}
	}else{
	$titolo_cor = "<b>Spiacente, risposta errata.</b> Riprova a rispondere alla domanda della fase $livello_cor";
	}
}

$template->assign_vars(array(
	'TITOLO_COR'	=> $titolo_cor,
	'LIVELLO_COR'	=> $livello_cor ,
	'DOMANDA_COR'	=> $domanda[$livello_cor],
	'RISPOSTA_COR'	=> $risposta[livello_cor]
	));
	

$template->set_filenames(array(
	'body' => 'mod_quiz_body.html')
);

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();

?>
In questo file ci sono le variabili $domanda e $risposta che andrai a modificare.
Il sistema prevede un livello di 5 domande ma puoi adattarlo come ti pare.
Nel template del tuo style crea il file "mod_quiz_body.html" con il seguente contenuto:

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
<div class="forabg">
   <div class="inner"><span class="corners-top"><span></span></span>
   <ul class="topiclist">
      <li class="header">
         <dl class="icon" style="color: #FFFFFF; padding: 5px;">&bull; QUIZ</dl> 
      </li>
   </ul>
   <ul class="topiclist">
      <li class="row" style="text-align: center;">
	  <!-- IF RISULTATO -->
	  <span style="font-size: 20px; font-weight: bold; color: #FF0000;">HAI RISPOSTO CORRETTAMENTE ALLE DOMANDE</span><br /><br />
	  Vai alla pagina <a href="#">LINK</a><br /><br />
	  <!-- ELSE -->
	  <span style="font-size: 12px; color: #000000; padding: 5px;">Per accedere alla fase successiva devi rispondere ad alcune domande.<br />
		Ad ogni risposta corretta verrà visualizzata la domanda successiva. Al termine della serie di domande, se le risposte saranno corrette verrai indirizzato alla pagina successiva.</span>
	  <hr>
	  <span style="font-size: 14px; color: #FF0000;">{TITOLO_COR}</span><br />
	  
        <div style="float: left; width: 60%; padding: 5px; font-size: 14px; text-align: left;">{DOMANDA_COR}</div>
		<div style="float: left; padding-top: 10px;">
		<form action="<?php echo $_server['php_self']; ?>" method="post">
			<input type="hidden" name=livello value="{LIVELLO_COR}">
			<label><b>Risposta</b>
			<input type="text" name="valore" size="20"></label>
			<input type="submit" value="CONFERMA">
		</form>
		</div>
		<div style="clear: both;"></div>
		<br />
		<!-- ENDIF -->
      </li>
   </ul>
   <span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE overall_footer.html -->
Al termine del ciclo di domande compare un messaggio di ciclo effettuato correttamente e un link a una pagina che devi mettere tu.

Attenzione, se modifichi il template devi aggiornare la cache (o da PCA o cancellando il file nella cartella cache tramite FTP)

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 54 ospiti