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
 
1.jpg
2.jpg
 
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