[php]Variabile in textbox via post

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
40
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
 

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
40
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
 

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
40
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
 

bubino8

Utente Attivo
28 Apr 2017
343
19
18
27
BZ
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.
 

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
40
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 .
 

bubino8

Utente Attivo
28 Apr 2017
343
19
18
27
BZ
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:

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
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
 

bubino8

Utente Attivo
28 Apr 2017
343
19
18
27
BZ
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]".
 

tonio.32

Nuovo Utente
27 Mag 2017
6
0
1
40
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 ;-)