[php]Variabile in textbox via post

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
45
Buona sera a tutti ,
ho un problemino da porvi , ho la necessità di far leggere al php una variabile che passa via get.
mi spiego meglio.
ho un textbox dove scrivo :

questo è il teso di $username

e vorrei che quando ho il passaggio della variabile post mi legga anche la variabile $username che è specificata es :

username = "prova" ;
contenutotextbox = $_POST['contenuto'];
$nome = "file";
$file = fopen("source/".$nome.".txt","w+");
fwrite($file, "$contenutotextbox");

quando crea il file mi scrive esattamente : questo è il testo di $username
invece io vorrei che mi leggesse la variabile e che quindi mi scrivesse : questo è il testo di prova
 
esatto era proprio quello che cercavo , eppure mi ero spulciato google e php.it mannaggia che ceco che sono .
Grazie mille per la risposta veloce :) ti sono debitore :D
 
qui trovi il modo più semplice per risolvere
http://php.net/manual/en/function.eval.php
con un esempio fotocopia della tua domanda
"Example #1 eval() example - simple text merge"
leggi anche il primo post di "Anonymous"

ciao , sono di nuovo qui perchè ho un problemino , allora praticamente inserendo il testo e le variabili tutto funziona , ma il problema si pone se inserisco un testo con " , enval da errore , invece se inserisco solo l'apostrofo ' va bene , ma ho la necessità di usare " , nel link ho fatto varie prove ma nulla non riesco , il codice che uso è questo :

$file = fopen("source/".$nome.".txt","w+");
eval("\$contenuto = \"$contenuto\";");
fwrite($file, "$contenuto");

ora mi rimane solo come fargli leggere e doppie virgolette " senza errore .

Parse error: syntax error, unexpected '$user' (T_VARIABLE) in /membri2/....../site/pagine/test.php(19) : eval()'d code on line 1

ps: aggiornamento

ho notato che inserento un testo del tipo :
prova " " l 'errore esce invece facendo solo le doppie virgolette tipo : "" il problema non c'è , non so se può essere di aiuto

comunque il mi ofiles deve essere del tipo :

#inizio: primo-conto="$variabile" , gener=$variabile1
 
Ciao non ho capito bene cosa devi fare.
Inserisci in un form tag<textarea> il contenuto compreso di " che all'invio viene scritto nel file .txt
La variabile $username come intendi passarla? un campo <input type="text" name="user">, la prende in automatico da una sessione oppure la setti fissa prima di scrivere nel file.txt

In sostanza nel file.txt tu vuoi vedere qualcosa di simile?
es.: ciao ecco il testo inserito da Pincopallino.

Se capisco meglio cosa tenti di fare posso provare ad aiutarti.
 
ciao , grazie mille per l'aiuto , scusami per essermi espresso male allora , i nomi delle variabili sono in un array gia nel file php , quello che voglio fare e mettere un testo nel texbox con delle variabili , e lui mi crei 3 o piu file sostituen do man mano le variabili , ti metto il codice della pagina che attualmente funziona l'unico problema e che quando metto nel texbox un nome con delle virgolette va in errore :

<?
$contenuto = $_POST['contenuto'];
if($contenuto == false){echo("<p class='topic' align='center'>Incolla il tuo codice!</p><br>
<form action='liste.php?mod=nopaste' method='POST'>
<center>
<textarea class='textarea' rows='30' cols='60' name='contenuto'></textarea><br><br>
<input type='submit' value='Invia'></center></form>");}
else{
$i = "1" ;
$user[1] = "carlo" ;
$pass[1] = "la tua paddword" ;
$user[2] = "gennaro";
$pass[2] = "la tua password caro gennaro";
for ($i = 1; $i <= 2; $i++) {
$nome = "file_$user[$i]_plus";
$file = fopen("source/".$nome.".txt","w+");
eval("\$contenuto = \"$contenuto\";");
fwrite($file, "$contenuto");
}
}
?>

Praticamente lo script prende il testo dal texbox , sostituisce le varie variabili e crea per ogni variabile un nuovo files , in questo caso ci sarà un file per carlo e uno per gennaro , se per esempio avessimo scritto nel texbox un testo :
la password dell'user $user[$i] e $pass[$i]

lui creerebbe due files txt con uno carlo scritto :
la password dell'user carlo e la tua paddword

e l'altro file gennaro con le stesse regole , ma il problema nasce quando inserisco un testo tipo :
la password "sospetta" dell'user $user[$i] e $pass[$i]
cioè inserendo le doppie virgolette .
 
Ciao prova così ho ordinato un po il codice e cambiato gli array che sono più puliti e comodi
PHP:
<?
if(isset($_POST['contenuto'])){
    $user = array("carlo", "gennaro");
    $pass = array("123", "12345");
    $nruser = count($user);
    for ($i = 0; $i < $nruser; $i++) {
        $contenuto = $_POST['contenuto'];
        $nome = "file_".$user[$i]."_plus";
        $file = fopen($nome.".txt","w+");
        eval("\$contenuto = \"$contenuto\";");
        fwrite($file, "$contenuto");
      
        $nomefile = $nome.'.txt';
        if (file_exists($nomefile)) {
            echo "File ".$nomefile." CREATO<br>";
        }else {
            echo "File ".$nomefile." non creato<br>";
        }
    }
}
else{
?>
    <p class='topic' align='center'>Incolla il tuo codice!</p><br>
    <form action='#' method='POST'>
        <center>
            <!--Es.: Ciao $user[$i]  la tua password è \"$pass[$i]\".-->
            <textarea class='textarea' rows='30' cols='60' name='contenuto'>Ciao $user[$i] la tua password è \"$pass[$i]\".</textarea><br><br>
            <input type='submit' value='Invia'>
        </center>
    </form>
<?php
}
?>

Esempio di testo da inserire nella <textarea>
HTML:
Ciao $user[$i] la tua password è \"$pass[$i]\".

Ho aggiunto un controllo se il file esiste
 
Ultima modifica:
non so a che ti serve, ma prova a mettere prima di eval,
PHP:
$TextBox = str_replace('"', '&quot;', $TextBox);
se vuoi provarne il funzionamento puoi con,
PHP:
$TextBox = 'prova "prova" prova';
$TextBox = str_replace('"', '&quot;', $TextBox);
echo $TextBox;
in questo modo hai caratteri già pronti per la visualizzazione senza altre conversioni
 
Dipende cosa deve fare con il file .txt se no gli viene stampato &quot;
a questo punto conviene così
PHP:
$contenuto = str_replace('"', '\"', $contenuto);
$contenuto = str_replace("'", '\'', $contenuto);
In modo da evitarlo nella <textarea>
da cosi:
HTML:
Ciao $user[$i] la tua password è \"$pass[$i]\".
a cosi:
HTML:
Ciao $user[$i] la tua password è "$pass[$i]".
 
ciao , grazie a tutti raga alla fine sono arrivato a una soluzione omologa a quella data da bubino8 , e ho diciamo bypassato il problema , grazie a tutti ;-)
 

Discussioni simili