<?php
// inizializzazione della sessione
session_start();
// valorizzazione delle variabili con i parametri dal form
if (isset($_POST['submit'])) {
if(isset($_POST['titoletto'])){
$titoletto = addslashes(filter_var($_POST['titoletto'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['titolo'])){
$titolo = addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['testo'])){
$testo = addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['posizione'])){
$posizione = addslashes(filter_var($_POST['posizione'], FILTER_SANITIZE_STRING));
}
// inclusione del file della classe
include "config.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// form per l'inserimento immagine
define('UPLOAD_DIR', './uploads/');
$t = "screen"; # nome della tabella
$v = array ($titoletto,$titolo,$testo,$immagine,$posizione); # valori da inserire
$r = "titoletto,titolo,testo,immagine,posizione"; # campi da popolare
//funzione per l'inserimento dei dati in tabella
public function inserisci($t,$v,$r = null)
{
if(isset($this->attiva))
{
$istruzione = 'INSERT INTO '.$t;
if($r != null)
{
$istruzione .= ' ('.$r.')';
}
25/05/2015 22:47 (Questo messaggio è stato modificato l'ultima volta il: 25/05/2015 22:50 da Chandler.)
quindi la pagina config.php è così:
Codice:
<?php
class MysqlClass
{
// parametri per la connessione al database
private $nomefile = 'template.db';
// controllo sulle connessioni attive
private $attiva = false;
// funzione per la connessione a SQLite
public function connetti()
{
if(!$this->attiva)
{
$connessione = sqlite_open($this->nomefile);
}else{
return true;
}
}
}
//funzione per l'inserimento dei dati in tabella
public function inserisci($t,$v,$r = null)
{
if(isset($this->attiva))
{
$istruzione = 'INSERT INTO '.$t;
if($r != null)
{
$istruzione .= ' ('.$r.')';
}
$query = sqlite_query($istruzione) or die (mysql_error());
}else{
return false;
}
}
}
?>
mentre edit.php è così:
Codice:
<?php
// inizializzazione della sessione
session_start();
// valorizzazione delle variabili con i parametri dal form
if (isset($_POST['submit'])) {
if(isset($_POST['titoletto'])){
$titoletto = addslashes(filter_var($_POST['titoletto'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['titolo'])){
$titolo = addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['testo'])){
$testo = addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['posizione'])){
$posizione = addslashes(filter_var($_POST['posizione'], FILTER_SANITIZE_STRING));
}
// inclusione del file della classe
include "config.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// form per l'inserimento immagine
define('UPLOAD_DIR', './uploads/');
$t = "screen"; # nome della tabella
$v = array ($titoletto,$titolo,$testo,$immagine,$posizione); # valori da inserire
$r = "titoletto,titolo,testo,immagine,posizione"; # campi da popolare
// chiamata alla funzione per l'inserimento dei dati
$data->inserisci($t,$v,$r);
echo "Template generato con successo.";
// disconnessione
$data->disconnetti();
}else{
ok, adesso nn mi da più errore ma mi porta ad una pagina bianca. Se provo a vedere dentro la cartella upload non vengono ancora caricate le immagini delle prove...
<?php
class MysqlClass
{
// parametri per la connessione al database
private $nomefile = 'template.db';
// controllo sulle connessioni attive
private $attiva = false;
private $connessione = null;
// funzione per la connessione a SQLite
public function connetti()
{
if(!$this->attiva)
{
$this->connessione = sqlite_open($this->nomefile);
}else{
return true;
}
}
//funzione per l'inserimento dei dati in tabella
public function inserisci($t,$v,$r = null)
{
if(isset($this->attiva))
{
$istruzione = 'INSERT INTO '.$t;
if($r != null)
{
$istruzione .= ' ('.$r.')';
}
$query = sqlite_query($this->connessione, $istruzione) or die (mysql_error());
}else{
return false;
}
}
}
?>
mentre edit è così:
Codice:
<?php
// inizializzazione della sessione
error_reporting(E_ALL);
session_start();
// valorizzazione delle variabili con i parametri dal form
if (isset($_POST['submit'])) {
if(isset($_POST['titoletto'])){
$titoletto = addslashes(filter_var($_POST['titoletto'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['titolo'])){
$titolo = addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['testo'])){
$testo = addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING));
}
if(isset($_POST['posizione'])){
$posizione = addslashes(filter_var($_POST['posizione'], FILTER_SANITIZE_STRING));
}
// inclusione del file della classe
include "config.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// form per l'inserimento immagine
define('UPLOAD_DIR', './uploads/');
$t = "screen"; # nome della tabella
$v = array ($titoletto,$titolo,$testo,$immagine,$posizione); # valori da inserire
$r = "titoletto,titolo,testo,immagine,posizione"; # campi da popolare
// chiamata alla funzione per l'inserimento dei dati
$data->inserisci($t,$v,$r);
echo "Template generato con successo.";
// disconnessione
$data->disconnetti();
}else{
28/05/2015 18:57 (Questo messaggio è stato modificato l'ultima volta il: 28/05/2015 19:00 da Chandler.)
eccolo:
Citazione:Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access ./uploads/11053712_10202851485208568_5147537098448516724_n.jpg in /membri/indamecs/templates/edit.php on line 36
Warning: sqlite_query() [function.sqlite-query]: no such table: screen in /membri/indamecs/templates/config.php on line 40
SQL logic error or missing database
però la cartella che ho creato si chiama "upload". Adesso che l'h rinominata effettivamente l'upload funziona e quindi mi da indietro solo la seconda parte dell'errore...
Se non è specificata da nessuna parte (guide, F.A.Q., ecc...), puoi verificare la versione di SQLite installata creando un file PHP con il seguente codice (con la funzione phpinfo è possibile mostrare le configurazioni di PHP, le estensioni installate e molte altre informazioni):
03/06/2015 21:27 (Questo messaggio è stato modificato l'ultima volta il: 03/06/2015 21:27 da Chandler.)
(03/06/2015 10:33)Mattia Ha scritto: Se non è specificata da nessuna parte (guide, F.A.Q., ecc...), puoi verificare la versione di SQLite installata creando un file PHP con il seguente codice (con la funzione phpinfo è possibile mostrare le configurazioni di PHP, le estensioni installate e molte altre informazioni):
05/06/2015 07:50 (Questo messaggio è stato modificato l'ultima volta il: 05/06/2015 07:50 da Mattia.)
Sembrerebbe che sul server ci siano installate sia la versione 2 che 3 di SQLite, ma, usando le funzioni e non la classe SQLite3, dovresti star utilizzando la versione 2.
(05/06/2015 07:50)Mattia Ha scritto: Sembrerebbe che sul server ci siano installate sia la versione 2 che 3 di SQLite, ma, usando le funzioni e non la classe SQLite3, dovresti star utilizzando la versione 2.
Quindi dovresti ricreare il database nella versione 2 di SQLite oppure modifichi il codice PHP in modo da usare la classe SQLite3 invece delle funzioni.
ho ricreato il db in sqlite2 e adesso provando a creare un template mi da questo errore:
Citazione:Warning: sqlite_query() [function.sqlite-query]: screen.Id may not be NULL in /membri/indamecs/templates/config.php on line 40
constraint failed
Il problema che il campo "id" della tabella "screen" dovrebbe essere AUTOINCREMENT, cioè ogni volta che inserisci un record in quella tabella l'"id" avrà un valore superiore a quello precedente (1, 2, 3, 4, 5, ecc...) senza assegnargli un valore a mano.
Devi modificare il campo "id" della tabella "screen" in modo che sia AUTOINCREMENT. Se utilizzi Adminer e se non ricordo male, devi selezionare "AI" per assegnare l'AUTOINCREMENT a un campo di una tabella.