Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script traduttore
#31
Dando un'occhiata veloce mi sembra corretto (dovresti provare a eseguirlo per vedere se c'è qualche errore), però mi sono dimenticato di dirti di cancellare questa riga (altrimenti poi non puoi stampare la variabile $text):
Codice PHP:
unset($text); //Elimino dalla memoria il testo 
Mattia!
Cita messaggio
#32
Ciao, ho fatto le modifiche ma non funziona ancora.
-il file tradduttore.php adesso si chiama index.php:
Codice:
?php
$text = isset($_POST['testo']) && is_string($_POST['testo']) ? $_POST['testo'] : ''; //Assegno a una variabile il testo da tradurre
$trans = array();
$res = @sqlite_query('SELECT * FROM tabella_traduzioni');
if ($res) {
    while ($r = sqlite_fetch_all($res)) {
        $trans[$r['word']] = $r['translation'];
        unset($r);
    }
}
unset($res);
$text = strtr($text,$trans); //Sostituisco nel testo le parole traducibili (cioè presenti nell'array delle traduzioni)
unset($trans); //Visto che non mi servono più le traduzioni, le elimino dalla memoria
?>
<html>
<head>
<title>Il Traduttore Dal Siciliano al Veneziano</title>
</head>
<body>
<form action="index.php" method="post">
    <textarea class="input" name="testo" rows="16" cols="50">Scrivi il testo</textarea>
    <input class="input" type="submit" value="Traduci">
</form>
<textarea class="input" name="testo" rows="16" cols="50"><?php echo htmlentities($text);?></textarea><br>
</body>
</html>
quando inserisco una parola da tradurre e clicco su traduci, mi trovo la parola DA TRADURRE (non tradotta) nella seconda textarea (quella delle parole tradotte), mentre nella textarea in alto compare "Scrivi il testo".
-visto che mi hai fatto mettere il codice di "translate.php" in "index php" (che è la pagina col form), il file translate.php ha ancora un'utilità o devo eliminarlo??
-la pagina "edit_trad.php" al momento punta su translate.php... ma anche qui dovremmo capire prima quali file tenere e quali no... inoltre se provo ad aggiungere una parola con la rispettiva traduzione dopo che clicco su "invia" mi reindirizza, ovviamente, su translate.php ma non mi stampa il msg "Traduzione salvata correttamente" che vedo nello script php in alto...ne a questo punto sono sicuro che i dati che ho inserito fin ora siano stati salvati nel "traduzioni.db"
Cita messaggio
#33
Penso che non faccia la traduzione perché non estrae nessun valore dal database SQLite visto che manca la connessione.
Per far vedere il testo che hai inserito, devi modificare:
Codice:
<textarea class="input" name="testo" rows="16" cols="50">Scrivi il testo</textarea>

Con questo:
Codice:
<textarea class="input" name="testo" rows="16" cols="50"><?php echo isset($_POST['testo']) && is_string($_POST['testo']) ? htmlentities($_POST['testo']) : 'Scrivi il testo';?></textarea>

Il file "translate.php" non serve più, visto che il codice viene eseguito all'inizio del file "index.php".
Il file "edit_trad.php" non mi ricordo come è fatto, ma deve puntare al file che esegue il salvataggio nel database come spiegato nei messaggi precedenti.
Per controllare che i dati siano stati salvati nel database puoi utilizzare l'Adminer.
Mattia!
Cita messaggio
#34
Il file edit_trad è questo:
Codice:
<?php
if(isset($_POST['word']) && is_string($_POST['word']) && trim($_POST['word'])!='' && isset($_POST['translation']) && is_string($_POST['translation']) && trim($_POST['translation'])!=''){ //Controllo che vengano mandate dal form le parole e le relative traduzioni
    sqlite_open(/*Dati di connessione al database*/); //Ti conviene fare un file esterno dove effettui la connessione al database e includerlo all'inizio di ogni pagina dove ti serve
    if (@sqlite_query('REPLACE tabella_traduzioni SET word = "'.sqlite_escape_string($_POST['word']).'", translation = "'.sqlite_escape_string($_POST['translation']).'"')) {
        echo '<p>Traduzione salvata correttamente.</p>';
    }
}
?>
<html>
<form action="translate.php" method="post">
    <fieldset>
        <p>Parola: <input type="text" name="word" /></p>
        <p>Traduzione: <input type="text" name="translation" /></p>
        <p><input type="submit" value="Invia" /></p>
    </fieldset>
</form></html>
ed è, appunto, il file che DOVREBBE eseguire il salvataggio nel database... ma a parte puntare su translate.php credo che ci sia qualcosa che non va...
Cita messaggio
#35
Il form deve puntare a "edit_trad.php" per poter funzionare.
Inoltre devi modificare la connessione al database. Il mio era solo un esempio, ma credo che per risolvere ti basti sostituire:
Codice PHP:
sqlite_open(/*Dati di connessione al database*/); //Ti conviene fare un file esterno dove effettui la connessione al database e includerlo all'inizio di ogni pagina dove ti serve 

Con:
Codice PHP:
sqlite_open('traduzioni.db'); //Ti conviene fare un file esterno dove effettui la connessione al database e includerlo all'inizio di ogni pagina dove ti serve 
Mattia!
Cita messaggio
#36
Nada, ho controllato da adminer per vedere se le nuove parole venivano salvate ma nada...e poi non mi da neanche il msg "Traduzione salvata correttamente"...c'è ancora qualcosa che non va.
Anche index.php da problemi...non traduce la parola che inserisco, ma la copia nella textarea sottostante.
Cita messaggio
#37
Hai controllato la connessione al database e l'hai inserita anche nel file che fa la traduzione?
Mattia!
Cita messaggio
#38
intendi da adminer?? come controllo la connessione al db??
E come inserisco la connessione al db nell'index?? cioè che codice devo utilizzare esattamente?
Cita messaggio
#39
No, intendo la connessione nello script. Il codice è quello che ti ho già scritto in precedenza.
Mattia!
Cita messaggio
#40
ma tutto il blocco?? o soltanto
Codice:
<? sqlite_open('traduzioni.db'); ?>
Cita messaggio
#41
Per effettuare la connessione al database basta utilizzare la funzione sqlite_open.
Mattia!
Cita messaggio
#42
Quindi una cosa tipo:
Codice:
<?php
if ($db = sqlite_open('traduzioni.db'))
}
?>
ho provato a semplificarlo eprchè non mi interessa il controllo che crea il database coi permessi 666 se non dovesse esistere... ho fatto bene?
Cita messaggio
#43
Basta che scrivi:
Codice PHP:
sqlite_open('traduzioni.db'); 
Mattia!
Cita messaggio
#44
messo, ma non cambia nulla... Sad
Cita messaggio
#45
Togli la "@" prima di sqlite_query così che possa stampare eventuali errori. Altre soluzioni per trovare il problema non me ne vengono in mente.
Mattia!
Cita messaggio
#46
niente da fare...
evidentemente c'è qualcosa di sbagliato!! Ti riposto il codice di index.php:
Codice:
<?php
sqlite_open('traduzioni.db');
$text = isset($_POST['testo']) && is_string($_POST['testo']) ? $_POST['testo'] : ''; //Assegno a una variabile il testo da tradurre
$trans = array();
$res = sqlite_query('SELECT * FROM tabella_traduzioni');
if ($res) {
    while ($r = sqlite_fetch_all($res)) {
        $trans[$r['word']] = $r['translation'];
        unset($r);
    }
}
unset($res);
$text = strtr($text,$trans); //Sostituisco nel testo le parole traducibili (cioè presenti nell'array delle traduzioni)
unset($trans); //Visto che non mi servono più le traduzioni, le elimino dalla memoria
?>
<html>
<head>
<title>Il Traduttore Dal Siciliano al Veneziano</title>
</head>
<body>
<form action="index.php" method="post">
    <textarea class="input" name="testo" rows="16" cols="50"><?php echo isset($_POST['testo']) && is_string($_POST['testo']) ? htmlentities($_POST['testo']) : 'Scrivi il testo';?></textarea>
    <input class="input" type="submit" value="Traduci">
</form>
<textarea class="input" name="testo" rows="16" cols="50"><?php echo htmlentities($text);?></textarea><br>
</body>
</html>
Cita messaggio
#47
Prova a sostituire:
Codice PHP:
<?php
sqlite_open
('traduzioni.db');
$text = isset($_POST['testo']) && is_string($_POST['testo']) ? $_POST['testo'] : ''//Assegno a una variabile il testo da tradurre
$trans = array();
$res sqlite_query('SELECT * FROM tabella_traduzioni');
if (
$res) {
    while (
$r sqlite_fetch_all($res)) {
        
$trans[$r['word']] = $r['translation'];
        unset(
$r);
    }
}
unset(
$res);
$text strtr($text,$trans); //Sostituisco nel testo le parole traducibili (cioè presenti nell'array delle traduzioni)
unset($trans); //Visto che non mi servono più le traduzioni, le elimino dalla memoria
?>

Con:
Codice PHP:
<?php
var_dump
(sqlite_open('traduzioni.db'));
$text = isset($_POST['testo']) && is_string($_POST['testo']) ? $_POST['testo'] : ''//Assegno a una variabile il testo da tradurre
$trans = array();
$res sqlite_query('SELECT * FROM tabella_traduzioni');
var_dump($res);
if (
$res) {
    while (
$r sqlite_fetch_all($res)) {
        
$trans[$r['word']] = $r['translation'];
        unset(
$r);
    }
}
unset(
$res);
var_dump($trans);
$text strtr($text,$trans); //Sostituisco nel testo le parole traducibili (cioè presenti nell'array delle traduzioni)
unset($trans); //Visto che non mi servono più le traduzioni, le elimino dalla memoria
?>

Cosa stampa?
Mattia!
Cita messaggio
#48
stampa:
Citazione:bool(false) NULL array(0) { }
Cita messaggio
#49
Il problema è che non riesce a connettersi al database.
Il database è nella stessa cartella del file PHP? Via FTP controlla che permessi ha il file del database.
Mattia!
Cita messaggio
#50
Si, il db è nella stessa cartella!! Come faccio a controllare i permessi via ftp? Se vado sulle proprietà del db mi dice che ha i permessi 644...
Cita messaggio
#51
I permessi sono proprio quelli (644). Prova a modificarli in 777.
Mattia!
Cita messaggio
#52
Dal mio software ftp mi da errore
Citazione:ERROR:> Requested action not taken (e.g., file or directory not found, no access).
come faccio a modificare questi permessi?
Cita messaggio
#53
Ecco una guida per modificare i permessi ai file tramite FileZilla.
Mattia!
Cita messaggio
#54
Ho installato filezilla e seguito le istruzioni della tua guida ma continua a darmi errore:
Citazione:Comando: SITE CHMOD 774 traduzioni.db
Risposta: 550 Errore impostazione permessi su questo file: traduzioni.db
p.s. il problema si verifica solo col db (con gli altri file mi modifica i permessi senza problema)
Cita messaggio
#55
Forse dovresti provare a modificare i permessi direttamente tramite PHP. Crea un file con il contenuto qui di sotto e prova ad eseguirlo:
Codice PHP:
<?php
chmod
('traduzioni.db'0777);
?>
Mattia!
Cita messaggio
#56
Ok, sono riuscito a modificare i permessi... ma l'index stampa ancora:
Citazione:bool(false) NULL array(0) { }
e continua a non funzionare... Sad
Cita messaggio
#57
Prova a modificare:
Codice PHP:
var_dump(sqlite_open('traduzioni.db')); 

Con:
Codice PHP:
var_dump(sqlite_open('traduzioni.db'0777$err));
var_dump($err); 
Mattia!
Cita messaggio
#58
ecco cosa stampa:
Citazione:bool(false) string(38) "file is encrypted or is not a database" NULL array(0) { }
Cita messaggio
#59
Prova a cancellare e a ricreare il database tramite Adminer. Se dà ancora lo stesso messaggio ("file is encrypted or is not a database"), prova a crearlo con una versione diversa di SQLite (se hai usato SQLite 2, prova a usare la 3 o viceversa).
Mattia!
Cita messaggio
#60
Ciao Mattia,
mi scuso per la mia assenza ma sono stato fuori per un pò...
ho fatto le prove da te elencate, ho eliminato il db e ricreato in sqlite 3, ma mi dava lo stesso problema...ho quindi provato con sqlite2 e adesso il msg che mi stampa è il seguente:
Citazione:resource(2) of type (sqlite database) NULL NULL array(0) { }

Dici che ci siamo??
Cita messaggio


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Script PHP per testare sicurezza Wifi Chandler 112 224.402 23/04/2018 18:18
Ultimo messaggio: Mattia
  shortlink con script di riconoscimento device Chandler 7 10.035 01/02/2017 16:09
Ultimo messaggio: Chandler
  script per generazione immagine da template Chandler 135 278.586 18/07/2015 08:19
Ultimo messaggio: Mattia
  estrarre script Chandler 4 11.708 22/01/2015 20:06
Ultimo messaggio: Chandler
  Erroe di parsing nell'esecuzione di uno script filippo9639 1 8.171 25/01/2009 22:09
Ultimo messaggio: Mattia
  Problemo con script per importare dati di una tabella su un altro hosting filippo9639 7 20.525 27/12/2008 17:43
Ultimo messaggio: Mattia
  Script Upload Chandler 43 102.409 10/12/2008 16:22
Ultimo messaggio: Mattia
  Errore parziale su script PHP filippo9639 12 47.405 30/11/2008 16:17
Ultimo messaggio: filippo9639
  Problema con script PHP per trasferimento tabelle dati filippo9639 10 32.061 23/11/2008 18:08
Ultimo messaggio: filippo9639
  porzione di Codice PH che invalida script filippo9639 2 6.998 25/10/2008 18:49
Ultimo messaggio: filippo9639

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)