Store in PHP nel Database

CoraggioIndomito

Nuovo Utente
5 Giu 2020
3
0
1
Salve a tutti. Io ho riscontrato un problema, ma credo sia comune.

Sto scrivendo un libro e in base a le scelte del lettore la trama si modifica. Così ho da una parte il database [innoDB] nel quale ho inserito tutti i testi con un relativo codice ID. Nella pagina, invece, faccio la query di elezione in base all'ID della pagina datami con una variabile GET dall'URL. Tutto bene fino a quando devo inserire del codice PHP nel testo conservato nel database.
Supponiamo che debba inserire la variabile $nomeUtente in mezzo al testo conservato nel DB,
"Così lo chiamarano. <?PHP echo $nomeUtente?>".
Il risultato è che nell'HTML mi viene printato come se fosse un commento html.
"Così lo chiamarono. <!-- ? PHP echo $nomeUtente ?-->"

Come è possibile storare del codice PHP in un database, mantenendolo sempre utilizzabile?
 
..... semantica carina, ma ....

Utilizzando un template engine, lato server...

Oppure un template engine lato client
 
Infatti è errato salvare come stai facendo, si utilizzano i template engine per questo motivo....

Nulla vieta creare una sintassi tutta tua....!
 
1 - ci metterei un punto e virgola al termine perché il risultato é un errore di php
2 - php lo metterei minuscolo, magari con il carattere maiuscolo non viene riconosciuto
<?php echo $nomeUtente; ?>
3 - lo script con cui viene attivato il processo, deve avere estensione php non html

prova, se va ... ha le gambe
 
1 - ci metterei un punto e virgola al termine perché il risultato é un errore di php
2 - php lo metterei minuscolo, magari con il carattere maiuscolo non viene riconosciuto
<?php echo $nomeUtente; ?>
3 - lo script con cui viene attivato il processo, deve avere estensione php non html

prova, se va ... ha le gambe
messo il punto e virgola al termine del comando PHP, ho cambiato il <?PHP in <?php ed ovviamente la pagina ha estensione .php e non .html
risultato: non è cambiato nulla.
 
risultato: non è cambiato nulla.
Si comporta in modo coerente e giusto (per quanto concerne la parte interpretata)....

Prova un tpl engine vedrai che ne gioverà di velocità e stabilità...

Se vuoi scrivere una sintassi tua prova preg_match_all sostituendo le diciture <?php-... con semplici parentesi graffe e/o quadre tipo questo:
{{$utente}} (like blade), e sostituisci con la variabile associata all'istanza corrente....
Mi rendo conto che forse è un salto abbastanza lungo, ma con 20 minuti di studio lo si fa egregiamente!
Altra soluzione potrebbe essere l'utilizzo di una mixin, e/o una substitution js...
 
Ultima modifica:
questo il database (sql server)
1591363499529.png


questo il codice

PHP:
$nome = "XYZ";

$sql = "SELECT nome FROM province WHERE id=999999";

$res = $db->queryS( $sql );

$text = eval("?>".$res[0][0]."<?");

echo $text."<br /><br />"; var_dump($res); echo "<br /><br />";
die;

questo quanto visualizzato

1591363624243.png
 
eval("?>".$res[0][0]."<?");
Esatto, occhio ad eval .....

NB: Si dovrebbe anche menzionare la possibilità distruttiva della stessa e la pericolosità nel non inibire tale funzione.

praticamente è come se uno sprovveduto modifica i dati della centralina auto... Il concetto è uguale..

@marino51 si che la si usa (altro che, preferibilmente M2M), ma tu come altri hai conoscenze per l'utilizzo corretto della stessa, non si dovrebbe consigliare/incentivare l'uso di eval-system-passthru etc, a chi ne sa poco....

Parere personale....
 

Discussioni simili