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

Abilitare php da PCA

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.
mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Abilitare php da PCA

Messaggio da mark » 02/04/2012, 14:20

Salve,
sto creando una pagina con dei calcoli in una pagina personalizzata di PhpBB3.
Ho fatto tutto ciò, ma il calcolo non funziona nel forum, mentre se lo provo su una pagina in php funziona.
Per risolvere questo problema mi hanno detto che devo abilitare da PCA il php, ma non so dove e nemmeno che me l'ha consigliato...
Voi lo sapete?
La pagina in questione sarebbe questa: http://www.funivieminiatura.it/forum/giri_motore.php

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Abilitare php da PCA

Messaggio da Barrnet » 02/04/2012, 15:35

Scheda "Generale", sezione "Configurazione server" : clicca su sicurezza, qui trovi "Permetti php negli stili", mettilo su "Si".

mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Re: Abilitare php da PCA

Messaggio da mark » 02/04/2012, 17:08

Fatto, anche aggiornato template e tema, ma purtroppo i calcoli continuano a non funzionare...

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: Abilitare php da PCA

Messaggio da Micogian » 02/04/2012, 20:08

Non serve abilitare il php, cosa tra l'altro sconsigliata.
Bisogna capire la filosofia di phpbb, da un lato c'è un file php che fa delle operazioni e trasforma il risultato in variabili da passare al template. Il Template, dal canto suo, passa i valori necessari al php con un modulo "form".
Il risultato è che il php riceve dal template i valori da utilizzare, fa il calcolo e crea una variabile contenente il risultato che viene passato al template.

In sostanza, ammettendo che nel template ci siano 2 moduli INPUT che si chiamano "alfa" e "beta", il php riceverà i dati in questo modo:

Codice: Seleziona tutto

$alfa = request_var('alfa', '0');
$beta = request_var('beta', '0');

//se alfa e beta sono diversi da 0 viene eseguito il calcolo con i valori ricevuti:
if ($alfa <> '0' && $beta <> '0')
{
$risultato = $alfa * $beta ;
}

//Viene creata la variabile per il template:
$template->assign_var('RISULTATO', $risultato);
A questo punto nel template il valore {RISULTATO} visualizzerà il valore richiesto.

mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Re: Abilitare php da PCA

Messaggio da mark » 02/04/2012, 20:46

Ringrazio micogian della risposta.
Ora: io ho fatto la pagina.php, che si chiama "giri_motore.php" e si trova nella cartella /forum dove sta tutto il forum in phpbb.

Codice: Seleziona tutto

<?php
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();

page_header('Calcolo della velocit&agrave; del motore');

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

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>
E il template "template_motore.html" in /forum/styles/mio_tema/template/

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
<div>
<?
$prim=$_POST['prim'];
$seco=$_POST['seco'];
if ($prim!=null or $seco!=null){
if ($prim==null){ $prim=0;}
if ($seco==null){ $seco=0;}
$vel=$prim;
$diam=$seco;
$vel=$vel*60;
$diam=$diam*3.14;
$risu=$vel/$diam;
}
?> 

<form action="#" method="post">
<strong>Velocit&agrave; in linea <input type="text" name="prim" size="5" maxlength="5" value="<? echo $prim;?>"> cm/s<br>
Diametro puleggia <input type="text" name="seco" size="5" maxlength="5" value="<? echo $seco;?>"> cm<br>
<input type="submit" value="Calcola"><br></strong>
<strong>Il risultato &egrave:</strong>
<?
echo $risu
?>
<strong> rpm (giri al minuto)</strong>
</form>
</div>

<!-- INCLUDE overall_footer.html -->
Sinceramente non ho ben capito cosa dovrei fare...

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: Abilitare php da PCA

Messaggio da Micogian » 02/04/2012, 21:57

Mi sembrava chiaro.
Il file PHP riceve i valori dal template, esegue l'operazione e crea la variabile RISULTATO:

Codice: Seleziona tutto

$prim = request_var('prim', '0');
$seco = request_var('seco', '0');
// request_var sostituisce  $_POST e il valore predefinito è '0'

$vel=$prim;
$diam=$seco;
$vel=$vel*60;
$diam=$diam*3.14;
$risu=$vel/$diam;

// Crea le variabili

$template->assign_vars(array(
    'PRIM'     =>  $prim ,
    'SECO'    => $seco,
    'RISU'     => $risu,
));
Nel template togli il php e la Form diventa:

Codice: Seleziona tutto

<form action="giri_motore.php" method="post">
<strong>Velocit&agrave; in linea <input type="text" name="prim" size="5" maxlength="5" value="{PRIM}"> cm/s<br />
Diametro puleggia <input type="text" name="seco" size="5" maxlength="5" value="{SECO}"> cm<br />
<input type="submit" value="Calcola"><br /></strong>
<strong>Il risultato &egrave:</strong>
{RISU}
<strong> rpm (giri al minuto)</strong>
</form>

mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Re: Abilitare php da PCA

Messaggio da mark » 03/04/2012, 13:59

Grazie micogian, adesso funziona tutto alla perfezione!
Tu sei stato molto chiaro, ma sono io che non sono ancora molto esperto di php.

mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Re: Abilitare php da PCA

Messaggio da mark » 03/04/2012, 17:04

Controllando meglio mi sono accorto di un piccolo errore che mi viene segnalato:
[phpBB Debug] PHP Warning: in file [ROOT]/giri_motore.php on line 26: Division by zero
Questo perché il valore impostato è 0. Se modifico:

Codice: Seleziona tutto

$prim = request_var('prim', '0');
$seco = request_var('seco', '0');
con 1 l'errore scompare.
Però sarebbe meglio lasciare i due campi vuoti, senza un valore predefinito. è possibile?
Ho provato a cancellare i due valori, ma da errore.
Questo è il codice php:

Codice: Seleziona tutto

<?php
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();

page_header('Calcolo della velocit&agrave; del motore');

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

$prim = request_var('prim', '0');
$seco = request_var('seco', '0');
// request_var sostituisce  $_POST e il valore predefinito è '0'

$vel=$prim;
$diam=$seco;
$vel=$vel*60;
$diam=$diam*3.14;
$risu=$vel/$diam;

// Crea le variabili

$template->assign_vars(array(
    'PRIM'     =>  $prim ,
    'SECO'    => $seco,
    'RISU'     => $risu,
));

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

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: Abilitare php da PCA

Messaggio da Micogian » 03/04/2012, 18:07

Questo lo avevo previsto. Qui non centra il php ma la matematica.
Non si può moltiplicare un valore per 0.
Infatti, se guardi il mio primo post io avevo usato una condizione che eseguiva il calcolo solo se i due valori sono diversi da 0.

Codice: Seleziona tutto

if ($alfa <> '0' && $beta <> '0')
Al limite sostituisci 0 con 1 nelle variabili iniziali.

mark
Utente
Utente
Messaggi: 34
Iscritto il: 23/03/2012, 14:45
Sesso: Maschio
Versione: 3.0.11
Server: UNIX/Linux
PHP: 5.3.3-7+sq
Database: MySQL(i) 5.1.49-3

Re: Abilitare php da PCA

Messaggio da mark » 03/04/2012, 19:15

Messo. Adesso è tutto ok, l'unica cosa è che compare ancora quell'errore quando i due campi sono vuoti, ma tanto nessuno li lascerà vuoti... credo...

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti