- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Inserire codice PHP in un post
-
Inserire codice PHP in un post
Ciao, avrei la necessità di inserire uno script in php da me scritto in un post e in una pagina di wordpress.
Ho quindi un qualcosa tipo:
<?php
$response_template='
<br>
<center>
<div align="center">
<table border="0" cellspacing="1" cellpadding="2" width="570">
<tr>
<td align="center">
%%ACTION%% %%LIST%%@%%DOMAIN%%
</td>
</tr>
<tr>
<td style="color:red; font-weight:normal; font-family:verdana, arial, helvetica, serif;">
Riceverai una mail a breve su "%%ADDRESS%%" L'unica cosa che ti rimane da fare e' usare la funzione "Rispondi" del tuo client di posta
ed inviare la risposta: non e' necessario aggiungere altro al messaggio. Questo e' necessario per evitare che qualcuno utilizzi indirizzi email che non possiede realmente.
</td>
</tr>
</table>
</div>
</center>
';?>
<center><div align="center">
<table border="0" cellspacing="0" cellpadding="0" width="75%">
<form method="post">
<tr>etc... etc... (l'ho riportato solo per rendere l'idea di quello che voglio fare).
IL problema è che non riesco a trovare il modo di far capire a wordpress quello che voglio fare... ho provato a mettere tutto fra i tag <code> e </code> ma non c'è niente da fare, qualunque cosa provi sembra non capire mai che si tratta di uno script in php... che posso farci?
-
risolto: bisogna utilizzare n plugin come PHP-exec
-
Oppure runPHP
-
azz purtroppo in realtà il codice smette di funzionare correttamente con entrambi i plugin.. a prima vista sembra tutto ok, in realtà c'è qualcosa che non funziona...
Questo è il mio codice:
<?php
$DOMAIN='miosito.it';
$LISTS[]='nomelista';$response_template='
<br />
<center>
<div align="center">
<table border="0" cellspacing="1" cellpadding="2" width="99%">
<tr>
<td align="center">
%%ACTION%% %%LIST%%@%%DOMAIN%%
</td>
</tr>
<tr>
<td style="color:red; font-weight:normal; font-family:verdana, arial, helvetica, serif;">
Riceverai una mail a breve su "%%ADDRESS%%" L'unica cosa che ti rimane da fare è usare la funzione "Rispondi" del tuo client di posta
ed inviare la risposta a questa email: non è necessario aggiungere altro al messaggio, semplicemente clicca su "Rispondi" e invia. Questa procedura è necessaria per evitare che qualcuno utilizzi indirizzi email che non possiede realmente.
</td>
</tr>
</table>
</div>
</center>
';?>
<center>
<div align="center">
<table border="0" cellspacing="0" cellpadding="0" width="99%">
<form method="post">
<tr>
<td align="center">Indirizzo email</td>
<td align="center"><input type="text" name="addy" size="30"></td>
</tr>
<tr>
<td align="center">Nome Lista</td>
<td align="center"><select name="list"><?php
if ( is_array($LISTS)) {
foreach ( $LISTS as $val ) {
echo '<option value="'.$val.'">'.$val.'@'.$DOMAIN.chr(10);
}
}
?></select>
</tr>
<tr>
<td align="center">Azione</td>
<td><select name="action"><option value="subscribe">Iscriviti<option value="unsubscribe">Rimuovi iscrizione</select></td>
</tr>
<tr><td colspan="3" align="center"><input type="submit" value="GO!"></td>
</tr>
</form>
</table>
</center></div>
<?php
switch ( $_POST['action'] ) {
case 'subscribe':
if ( !empty($_POST['addy']) ) {
if ( mail($list.'-subscribe-'.str_replace('@', '=', $_POST['addy']).'@'.$DOMAIN ,'iscrizione', 'iscrizione') ) {
show_tpl($response_template, 'ISCRITTO A: ', $list, $DOMAIN, $_POST['addy']);
}
}
break;case 'unsubscribe': if ( !empty($_POST['addy']) ) { if ( mail($list.'-unsubscribe-'.str_replace('@', '=', $_POST['addy']).'@'.$DOMAIN ,'annulla iscrizione', 'annulla') ) { show_tpl($response_template, 'RIMOSSO DA: ', $list, $DOMAIN, $_POST['addy']); } } break; } function show_tpl($tpl, $action, $list, $domain, $address) { $tpl=str_replace('%%ACTION%%', $action, $tpl); $tpl=str_replace('%%LIST%%', $list, $tpl); $tpl=str_replace('%%DOMAIN%%', $domain, $tpl); $tpl=str_replace('%%ADDRESS%%', $address, $tpl); echo $tpl; }
?>
una volta compilato il form, se il codice in questione è in una pagina php separata, allora tutto va a buon fine, altrimenti pare che non ottenga correttamente il nome della lista, in quando al posto di
ISCRITTO A: [EMAIL="[email protected]"][email protected][/EMAIL]
ottengo solo
ISCRITTO A: @miodominio.it
-
Ho dovuto aggiungere un $list = $_POST e ora tutto pare funzionare correttamente.
Come nell'altro mio post in questa sezione, penso che rimarrà il mistero (qualcuno sa risolverlo?), ma almeno funziona