Spulciando online sono riuscito a scrivere una cosa di questo tipo però lo script non riesce a connettersi al database, come posso fare?
Grazie
Ecco il codice (come vedete è molto corto, sta tutto in una pagina):
Codice PHP:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
label, input, textarea {
margin: 1em;
}
</style>
<title>Bacheca elettronica</title>
</head>
<body>
<form method="post" action="">
<label for="name">Nome</label>
<input type="text" name="name" id="name"/><br>
<label for="mail">Email</label>
<input type="text" name="mail" id="mail"/><br>
<label for="message">Messaggio</label><br>
<textarea rows="5" cols="40" name="message" id="message"></textarea><br>
<input type="submit" value="Invia"/>
</form>
<?php
//Parametri del database
$db_host = "localhost";
$db_user = "admin";
$db_password = "password";
$database = "bacheca";
$db_bacheca = "Bacheca";
//Controllo dati
$error= "";
if(isset($_POST['name']) and $_POST['name'] != ""){//<- controllo nome
$nome = strip_tags($_POST['name']);
}
elseif(isset($_POST['name'])){
$error .= "Nome mancante.<br />";
}
if(isset($_POST['mail']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['mail'])){//<- controlla se la mail è presente e se è in un formato valido
$mail = $_POST['mail'];
}
elseif(isset($_POST['mail'])){
$error .= "Email mancante o non valida.<br />";
}
if(isset($_POST['message']) and $_POST['message'] != ""){//<- controllo messaggio
$messaggio = strip_tags($_POST['message']);
}
elseif(isset($_POST['message'])){
$error .= "Inserire un messaggio.<br/>";
}
//Salvataggio messaggio
if(isset($nome,$mail,$messaggio)){
//Inizio Connessione al DB
$db = mysql_connect($db_host, $db_user, $db_password);
$err_database = mysql_error()."<p>Errore di accesso al database. Riprovare più tardi, nel caso, contattare il web master</p>";
$db_select = mysql_select_db($database, $db) or die ($err_database);
//Invio dati al database
$insert = mysql_query("INSERT INTO ".$db_bacheca." (NOME,MAIL,MESSAGGIO) VALUES ('".$nome."','".$mail."','".$messaggio."')") or die ($err_database);
mysql_close();
}
else{
echo "<p>".$error."</p>";
}
$err_database = mysql_error()."<p>Al momento non sono presenti avvisi in bacheca.</p>";
$bacheca = mysql_query("SELECT * FROM ".$db_bacheca." ORDER BY DATA DESC") or die ($err_database);
$n = 0;
$max = 10;
while($estrazione = mysql_fetch_array($bacheca) and $n < $max){
echo"
<div>
<p>".$estrazione['MESSAGGIO']."<br/>
Autore: ".$estrazione['NOME']."<br/>
Data: ".date('d/m/Y',$estrazione['DATA'])."</p>
</div>
";
$n++;
}
?>
</body>
</html>
Ecco il database:
codice:
CREATE TABLE Bacheca (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
messaggio TEXT NOT NULL,
data_messaggio DATE
) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;