Quello che non ho ancora capito è se scaricare MySQL o se è già dentro.ciao
non devi configurarlo.
a sx vedi (se presenti) i database esistenti, ti convine lasciarli così come sono.
per prima cosa devi crerati un database "crea nuovo database" dandogli un nome che ti piace, dentro quel db poi andrai a costruire la/le tabella/e che ti serviranno.
qando hai creato il db apparirà il suo nome nella colonna a sx, per fare poi le tabelle lo selezioni (apri) e vedrai (a sx se esistono le tabelle fatte) se iniziarne una nuova "crea tabella"
intanto prova a creare il db, poi passiamo alla/e tabella/e.
Se vedi PhpMyAdmin è proprio perché MySQL è attivo, PhpMyAdmin è infatti un'interfaccia grafica per MySQL.Quello che non ho ancora capito è se scaricare MySQL o se è già dentro..
SQL query
CREATE TABLE `messaggi` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data_locale` INT( 12 ) NOT NULL ,
`nome` VARCHAR( 50 ) NOT NULL ,
`citta` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 250 ) NOT NULL ,
`ip` VARCHAR( 20 ) NOT NULL ,
`bandierina` VARCHAR( 50 ) NOT NULL ,
`messaggio` TEXT NOT NULL
) ENGINE = MYISAM ;
A me i campi risultano 8ciao
per crere la tabella che ti serve con phpmyadmin (per ora ti dico senza molte spiegazioni) e segui
1) selezioni il db che hai creato e trovi (a sx le tabelle se ci sono già create) e il campo per il nome di una tabella nuova con il pulsante "crea" o "GO"
2) dai un nome alla tabella (es.) messaggi e ti chiede di quanti campi è composta nel tuo caso se guardi cosa mettevi nel file
$mess_da_ins=$data_localeS."|".$nomeS."|".$cittaS."|".$suoemailS."|".$ip."|".$bandierina."|".$messaggioS.
ti accorgi che ti servono 7 campi da aumentare di 1 quindi gli dirai 8 campi.
3) fatto questo vedrai l'elenco dei campi da definire: nome, tipo e altre opzioni
4) partiamo dal primo (metti i nomi sempre tutti in minuscolo si evitano poi errori) che comporta qualche passaggio in più
su field scrivi id (questo è il campo in più che poi gestira i record)
su type selezioni INT (numero intero)
su lenght/value scrivi 12 (grandezza del numero = num max di record archiviabili = 999999999999)
ti sposti a dx fino alla colonna Extra e selezioni autoincrement
appena a dx (iconcina con la chiave) e la spunti (= primary key), tutto il resto non serve toccarlo
passiamo ai campi successivi (per ora ci limitiamo solo alle prime tre colonne), ti metto nell'ordine cosa devi scrivere/selezionare in field, type e lenght/value
data_locale INT 12 (per ora scrivila così poi questa te la spiego in php)
nome VARCHAR 50 (dove 50 è il numero mmassimo di caratteri, il massimo dei massimi è 250)
citta VARCHAR 50
email VARCHAR 250
ip VARCHAR 20
bandierina VARCHAR 50
messaggio TEXT (e non serve altro il campo tipo text serve per scrivere messaggio anche molto lunghi)
fatto questo dai SAVE e, se non hai fatto errori, phpmyadmin crea la tabella e ti appare il messaggio
e il nome della tabella appare nell'elenco a sxCodice:SQL query CREATE TABLE `messaggi` ( `id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `data_locale` INT( 12 ) NOT NULL , `nome` VARCHAR( 50 ) NOT NULL , `citta` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 250 ) NOT NULL , `ip` VARCHAR( 20 ) NOT NULL , `bandierina` VARCHAR( 50 ) NOT NULL , `messaggio` TEXT NOT NULL ) ENGINE = MYISAM ;
a questo punto puoi chiudere phpmyadmin, tanto volendo potrai sempre tornare alla tabella selezionando prima il db dove si trova e poi il suo nome e fare (se serve) tutte la modifiche che ti pare
tutto ora è pronto per passare a php dove col form (uguale a quello che hai fatto) potrai riempirla e visualizzare cosa contiene
prova, tanto come detto, se sbagli qualcosa si puo sempre ritornare indietro e eliminare/aggiungere/modificare (senza i problemi dell'a capo)
per ora si, poi vedrai quante molte meno righe diventano per salvare/visualizzare i messaggima non ho ancora capito se i vecchi codici devo tenerli o no
Attualmente si presenta cosìciao
mi ero dimenticato |".$oggettoS."|
quindi campi 9 poi non ho seguito l'ordine (mi sono basato su un tuo passato script)
id INT (12) AUTO_INCREMENT PRIMARY KEY
data_locale id INT (12)
oggetto VARCHAR 250
messaggio TEXT
nome VARCHAR 50
citta VARCHAR 50
suoemail VARCHAR 250
ip VARCHAR 20
bandierina VARCHAR 50
vedo che hai una versione leggermente diversa dalla mia (e in italiano) quindi per autoincrement e primarykey devi vedere tra le selezioni dove si trovano
per ora si, poi vedrai quante molte meno righe diventano per salvare/visualizzare i messaggi
Tutto è iniziato quando ho creato il db, prima non cera niente, anche qui guarda che roba sopraciao
non so cosa voglia dire l'immagine, dovrei vedere il codice del form. in particolare la riga 263 e le precedenti
<?php
//---variabili di connessione----------------------------------------
$host = 'localhost'; //nome host in questo caso locale
$username = 'root'; //user name che utilizzi per accedere a phpmyadmin
$password = 'password'; //password che utilizzi per accedere a phpmyadmin
$db = 'nome_che_hai_dato_al_db'; // nome che hai dato data base
//---connessione----------------------------------------------------
$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
//---e selezione del db----------------------------------------------------
$sel = @mysql_select_db($db) or die (mysql_error());
?>
<?php
//.....
require_once "connessione.php";
//.......
?>
<?php
session_start();
require_once "connessione.php";//se in un'altra cartella devi scrivere anche il percorso
/*
qui dopo mettermo la visualizzazione dei messaggi
*/
if(isset($_POST['invia'])){
//$data_localeS = $_POST['WebDate_ScrivimiS']; // Questo codice richiama la funzione che si trova in questa pagina - WebDate_ScrivimiS()
// per la data usa questa istruzione è meglio
$data_localeS=time();
$nomeS = stripslashes(htmlentities(ucfirst(trim($_POST['nomeS']))));
$cittaS = stripslashes(htmlentities(ucfirst(trim($_POST['cittaS']))));
$suoemailS = htmlentities($_POST['suoemailS']);
$messaggioS = stripslashes(htmlentities(trim($_POST['messaggioS'])));
$validatorS = stripslashes(htmlentities(trim($_POST['validatorS'])));
//?? da dove provengono i dati per oggetto, ip e bandierina ????
//*** INIZIO CONTROLLI
$errori="";
// come quanto gia fatto
if($errori==""){
//qui costruisco la query di inserimento del messaggio
//divido le istruzioni per capirsi meglio
//scrivo la query che servira per inserire nella tabella messaggi nei relativi campi i valori provenienti dal form
//comunque verifica che i nomi dei campi che scrivo qui siano identici ai nomi che hai in tabella
//compreso maiuscole/minuscole
$q="INSER INTO messaggi(
datalocaleS,
oggettoS,
messaggioS,
nomeS,
cittaS,
suaemailS,
ip,
bandierina)
VALUES(
'$data_localeS',
'$oggettoS',
'$messaggioS',
'$nomeS',
'$cittaS',
'$suaemailS',
'$ip',
'$bandierina'");
//come detto non so da dove provengono alcuni valori
//poi se al posto delle variabile (esempio) '$bandierina' scrivi un testo 'italia.gif'
//nella tabella troverai italia.gif
//nota che non ho indicato il campo id, avendolo definito autoincrement ci pensa
//in automatico mysql ad incrementarlo ad ogni messaggio che viene inserito
//quindi ogni messaggio avrà il suo id numerico unico
//scritta la stinga di querry do l'istruzione di inserimento nella tabella
$ris=mysql_query($q);
session_destroy();
echo "<meta http-equiv='REFRESH' content='0; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
//l'utente ha commesso errori quindi mostro il messaggio (in un div che farai) e torno al form dopo qulche secondo
echo "<div class=\"pinco\">$errori</div>";
echo "<meta http-equiv='REFRESH' content='4; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}
}else{
?>
<!-- FORM CON IL TEXTAREA -->
<?php
}
?>
Lo devo ancora provare, ma allora questi controlli della lunghezza non vanno messi? Nel campo $messaggioS vorrei mettere max 2000ciao
guarda che se non hai modificato lo script quelle notifiche non c'entrano nulla con il db.
non so cosa hai modificato, ma es. l'avviso per l'include vuol dire che non trova il file 1.php
...
if (strlen($messaggioS) > 2000) {
$erroreS .= "<span class=\"puntoS\">• MESSAGGIO: max 2000 caratteri</span><br /><br />";
}
...
if (strlen($nomeS) > 20) {
$erroreS .= "<span class=\"puntoS\">• NOME: max 20 caratteri</span><br /><br />";
}
...
Devo proprio lasciarlo sopra il !doctype altrimenti non si apre la pagina.ciao
prona del doc devi mettere solo session_start il resto puoi metterlo dopo
//$erroreS=""; // Questo non so se serve
// come quanto gia fatto
if($erroreS==""){
$q="INSER INTO messaggi(data_localeS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,bandierina)";
//VALUES('$data_localeS','$oggettoS','$messaggioS','$nomeS','$cittaS','$suoemailS','$ip','$bandierina'");
$ris=mysql_query($q);