- Home
- Categorie
- Coding e Sistemistica
- PHP
- Come faccio a inviare dei dati al database?
-
// Accesso al Database
$sqlhostname;
$sqlusername;
$sqlpassword;
$sqldb;
L'ho messo perchè altervista non mi riconosceva..Le tabelle del database contengono questa struttura
-- Table structure for richieste
CREATE TABLE
richieste
(
id
int(10) NOT NULL auto_increment,
Email
varchar(100) default NULL,
description
varchar(100) default NULL,
userid
int(10) default NULL,
PRIMARY KEY (id
)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-- Records
Elimino gli hidden.
Poi ho provato a mettere nel form i nomi delle tabelle create nel db solo che non le accetta xD
-
Beh, vediamo un po'.
Ammettendo che il form che ti serva sia così strutturato:
[html]<form name="f1" method="post" target="_top" action="elaboro.php" onsubmit="return WLSubmit(this)"><input type="text" name="email" id="email" size="250" />
<textarea name="description" rows="8" cols="25"></textarea>
<input type="reset" value="Reset" />
<input type="submit" value="INVIA" />
</form>[/html]Metterei i dati di accesso al Db e la relativa connessione nel core.php (variando i dati con quelli tuoi di connessione al Db:
[php]<?php
$db_host = "localhost";
$db_user = "nome_utente";
$db_psw = "password";
$db_name = "nome_db";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");
$db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
?>[/php]E quindi strutturerei così il file richieste.php
[php]<?
require_once("core.php");// Recupero i dati inseriti nel form proveniente dalla pagina richiesta.php
$email = trim(htmlentities($_POST["email"], ENT_QUOTES));
$description = trim(htmlentities($_POST["description"], ENT_QUOTES));// Creo la query sql per l'inserimento dati
$sql = "INSERT INTO richieste (Email, description) VALUES ('$email', '$description')";// eseguo la query e controllo che non mi restituisca errore
if($result = mysql_query($sql))
{
$messaggio = "Si è verificato un errore nella fase di inserimento;<br /> I dati del cliente non sono stati salvati.";
}mysql_close($connessione);
?>[/php]Ma sia nel form, e quindi nel file richieste, non vedo l'id_user da inserire, per caso lo hai in sessione?
-
No,non lo metto.. perchè da solo fastidio.
Ora provo ciò che tu mi hai consigliato e ti faccio sapere.
Grazie tante
-
Mi dà un'errore il core.php,esso è strutturato così:
<?
define("IN_HOLOCMS", TRUE);
if(strpos($_SERVER['SERVER_SOFTWARE'],"Win") == false){ $page['dir'] = str_replace('\','/',$page['dir']); }
chdir(str_replace($page['dir'], "", getcwd()));if(strpos($page['dir'],'habblet') && (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') && $page['no_ajax'] != true){ header('Location: ../'); exit; }
require_once('./includes/config.php');
define("PREFIX", $conn['main']['prefix']);
require('./includes/classes.php');
$db = new $conn['main']'server';
if($conn['server']['enabled'] == true){ $serverdb = new $conn['server']'server'; }else{ $serverdb = $db; }
$settings = new HoloSettings;
$input = new HoloInput;
$lang = new HoloLocale;session_start();
define("PATH", $settings->find("site_path"));
define("SHORTNAME", $settings->find("site_shortname"));
define("FULLNAME", $settings->find("site_name"));
//define("DEBUG", true); //Uncomment this line to show detailed database error messages.require('./includes/data/'.$settings->find("hotel_server").'.php');
$core = new core_sql;
require('./includes/functions.php');
require('./includes/version.php');if($page['housekeeping'] != true){ if(is_object($_SESSION['user'])){ $user = $_SESSION['user']; }else{ $user = new HoloUser(null,null); } }else{ if(is_object($_SESSION['hk_user'])){ $user = $_SESSION['hk_user']; }else{ $user = new HoloUser(null,null); } }
if($user->error > 0 && $page['bypass_user_check'] != true && $_COOKIE['rememberme'] == "true" && $page['housekeeping'] != true){ $_SESSION['page'] = $_SERVER["REQUEST_URI"]; header("Location: ".PATH."/security_check_token"); }
if($settings->find("site_closed") == "1" && $page['id'] != "maintenance" && $page['housekeeping'] != true && $user->user("rank") < 5){
header("Location: ".PATH."/maintenance"); exit;
}$db_host = "localhost";
$db_user = "";
$db_psw = "*****";
$db_name = "*******";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");
$db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
?>
-
Ok, ho capito, è dal core.php che viene incluso il file di configurazione, a questo punto allora non lo devi modificare il core.php.
-
E cosa modifico? °_° xD
ps . Dal file elaboro.php tolgo la stringa require_once("core.php");?
-
No, lascia tutto come è. Devi solo togliere questo pezzo che ti ho fatto mettere nel file core.php dato che non sapevo fosse già incluso lì il file di connessione.
$db_host = "localhost";
$db_user = "";
$db_psw = "*****";
$db_name = "*******";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");
$db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
-
Ho provato a fare come hai detto, ma il file elaboro.php non elabora e non manda i dati al database.
Fatal error: main() [function.require]: Failed opening required './includes/config.php' (include_path='.:') in /membri/disext1/core.php on line 25
ecco l'errore che fà.
-
Ma sei certo che questa board funzioni?
Core.php mi pare di capire che sia un file della board che stai utilizzando..:?
Facciamo così, creati un file config.php così, inserendo i tuoi dati di accesso:
[php]<?php
$db_host = "";
$db_user = "";
$db_psw = "*****";
$db_name = "*******";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");
$db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
?>[/php]Ed in elaboro.php inserisci all'inizio:
[php]require_once ("config.php");[/php]
Dato che Core.php non funziona lo toglierei.
-
Ci sono riuscito.
Adesso dovrei però dal database imprimere in un form tutti i dati, sapresti come fare?
-
Cosa intendi per imprimere i dati in un form?
Potresti essere più esplicito :D?
-
In poche parole,_che i dati che si inviano a richieste poi vanno a scriversi in un'altra pagina.
-
Cioè, estrarre i dati contenuti nel Database e visualizzarli?
-
Si, perchè quello che vado a creare è un'adminpannel .
-
In maniera molto semplice fai una SELECT e quindi cicli il risultato della query.
[php]<?php
require_once ("config.php");$sql="SELECT * FROM richieste";
$query=@mysql_query($sql) or die (mysql_error());while ($array=mysql_fetch_array($query))
{
echo "E-mail: ".$array['email']." - Descrizione: ".$array['description']."<br />";
}
?>[/php];)
-
Grazie mille, sei un grande .
-
Di nulla, buon scripting.