[PHP] email con inserimento dati nel database

sal88

Utente Attivo
25 Giu 2019
22
0
1
salve ragazzi essendo un neofita del codice php volevo qualche suggerimento riguardo a un form di invio email, con inserimento rispettivo di nome email messaggio e data sul database mysql ; sono riuscito solo ad eseguire l' invio email ma senza riuscire all' inserimento dei dati inviati sul proprio database avendo effettuato una query insert into.
Attendo vostri consigli grazie.
 

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
ma senza riuscire all' inserimento dei dati inviati sul proprio database avendo effettuato una query insert into
noi conosciamo perfettamente
il codice che hai scritto,
il database che hai usato,
le operazioni che hai fatto,
l'eventuale errore che ti ha dato

sicuramente ti sarà arrivato il mio suggerimento per risolvere
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
Posta il codice che hai prodotto finora così potremo aiutarti
PHP:
include 'conn.php';


//Controllo dati
$error= "";

if(isset($_POST['nome']) and $_POST['nome'] != ""){//<- controllo nome
    $nome= strip_tags($_POST['nome']);
}
elseif(isset($_POST['nome'])){
    $error .= "Nome mancante.<br />";
}

if(isset($_POST['email']) and preg_match('/^[a-z0-9&\'\.\-_\+][email protected][a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['email'])){//<- controlla se la mail è presente e se è in un formato valido
    $mail = $_POST['email'];
}
elseif(isset($_POST['email'])){
    $error .= "Email mancante o non valida.<br />";
}

if(isset($_POST['messaggio']) and $_POST['messaggio'] != ""){//<- controllo messaggio
    $messaggio = strip_tags($_POST['messaggio']);
}
elseif(isset($_POST['messaggio'])){
    $error .= "Inserire un messaggio.<br/>";
}

//Invio mail
if(isset($nome,$mail,$messaggio)){
    $destinatario = "[email protected]";//<- ricorda di cambiarla!
    $intestazione = "From: ".$mail."\r\n";
    $messaggio .= "\n\nMittente: ".$nome."\nEmail: ".$mail."";

    mail($destinatario, $messaggio, $intestazione);

    echo "<p class='success'>Messaggio inviato con successo!</p>";
}
else{
    echo "<p class='error'>".$error."</p>";
}

//VOGLIO PERO' CHE NON SI INVII SOLO ALLA MIA EMAIL MA CHE VENGA SALVATA ANCHE SUL DATABASE

?>
 

Tommy03

Utente Attivo
6 Giu 2018
600
55
28
17
Vicenza
Prova così:
PHP:
include 'conn.php';


//Controllo dati
$error= "";

if(isset($_POST['nome']) and $_POST['nome'] != ""){//<- controllo nome
    $nome= strip_tags($_POST['nome']);
}
elseif(isset($_POST['nome'])){
    $error .= "Nome mancante.<br />";
}

if(isset($_POST['email']) and preg_match('/^[a-z0-9&\'\.\-_\+][email protected][a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['email'])){//<- controlla se la mail è presente e se è in un formato valido
    $mail = $_POST['email'];
}
elseif(isset($_POST['email'])){
    $error .= "Email mancante o non valida.<br />";
}

if(isset($_POST['messaggio']) and $_POST['messaggio'] != ""){//<- controllo messaggio
    $messaggio = strip_tags($_POST['messaggio']);
}
elseif(isset($_POST['messaggio'])){
    $error .= "Inserire un messaggio.<br/>";
}

//Invio mail
if(isset($nome,$mail,$messaggio)){
  $inserisci=mysqli_query($conn," INSERT INTO nome_tabelle (campo_nome,campo_mail,campo_messaggio) VALUES ('$nome','$mail','$messaggio')");
$destinatario = "[email protected]";//<- ricorda di cambiarla!
    $intestazione = "From: ".$mail."\r\n";
    $messaggio .= "\n\nMittente: ".$nome."\nEmail: ".$mail."";

    mail($destinatario, $messaggio, $intestazione);

    echo "<p class='success'>Messaggio inviato con successo!</p>";
}
else{
    echo "<p class='error'>".$error."</p>";
}

//VOGLIO PERO' CHE NON SI INVII SOLO ALLA MIA EMAIL MA CHE VENGA SALVATA ANCHE SUL DATABASE

?>
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
Prova così:
PHP:
include 'conn.php';


//Controllo dati
$error= "";

if(isset($_POST['nome']) and $_POST['nome'] != ""){//<- controllo nome
    $nome= strip_tags($_POST['nome']);
}
elseif(isset($_POST['nome'])){
    $error .= "Nome mancante.<br />";
}

if(isset($_POST['email']) and preg_match('/^[a-z0-9&\'\.\-_\+][email protected][a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['email'])){//<- controlla se la mail è presente e se è in un formato valido
    $mail = $_POST['email'];
}
elseif(isset($_POST['email'])){
    $error .= "Email mancante o non valida.<br />";
}

if(isset($_POST['messaggio']) and $_POST['messaggio'] != ""){//<- controllo messaggio
    $messaggio = strip_tags($_POST['messaggio']);
}
elseif(isset($_POST['messaggio'])){
    $error .= "Inserire un messaggio.<br/>";
}

//Invio mail
if(isset($nome,$mail,$messaggio)){
  $inserisci=mysqli_query($conn," INSERT INTO nome_tabelle (campo_nome,campo_mail,campo_messaggio) VALUES ('$nome','$mail','$messaggio')");
$destinatario = "[email protected]";//<- ricorda di cambiarla!
    $intestazione = "From: ".$mail."\r\n";
    $messaggio .= "\n\nMittente: ".$nome."\nEmail: ".$mail."";

    mail($destinatario, $messaggio, $intestazione);

    echo "<p class='success'>Messaggio inviato con successo!</p>";
}
else{
    echo "<p class='error'>".$error."</p>";
}

//VOGLIO PERO' CHE NON SI INVII SOLO ALLA MIA EMAIL MA CHE VENGA SALVATA ANCHE SUL DATABASE

?>
mi fa inviare l' email ma i dati non si salvano su database
 

Tommy03

Utente Attivo
6 Giu 2018
600
55
28
17
Vicenza
Ma hai già provato a fare semplici inserimenti nel database per vedere se è un errore a livello di connessione o dello script dell'email?
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
o provato a eseguire la query direttamente su phpadmin myqsl ma mi da questo errore:
#1364 - Field 'id' doesn't have a default value
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
non prende la query provato con un altro esercizio e non so perché il database non prende la query
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
no no messo , sto uscendo pazzo ... l 'ho provato pure con un esercizio più semplice ma non prende il database
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
no no messo , sto uscendo pazzo
Senti, se non funziona stai sbagliando approccio, meglio cancellare e rifare da zero se non sei pratico....
La gestione degli errori dovrebbe essere la prima cosa da imparare!

Ipotizzando che tu abbia fatto un mapping dei dati dal DB, ipotizzando che tu abbia i dati nella variabile POST corretti, prova con questo...
PHP:
$conn=new mysqli($host,$user,$pass,$db);
try{
    $conn->query('INSERT INTO TABELLA (`'.join('`,`',array_keys($_POST)).'`) VALUES ("'.join(",",$_POST).'")');
}catch(Exception $e){
    print_r($e);
}
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
PHP:
<?php
$host = 'localhost';
$user = 'root';
$pass = 'root';
$db = 'esercitazione';

$conn=new mysqli($host,$user,$pass,$db);
try{
    $conn->query('INSERT INTO 'tabella' (`'.join('`,`',array_keys($_POST)).'`) VALUES ("'.join(",",$_POST).'")');
}catch(Exception $e){
    print_r($e);
}



 ?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <form class="" action="index.php" method="post">
      <input type="text" name="nome">
      <input type="submit" name="submit">
    </form>
  </body>
</html>

database nome esercitazione , nome tabella = tabella , colonne: id int auto_increment , nome varchar 255...
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
Quindi? con questo stai comunicando che è andato in errore appena l'hai lanciato?
Se è questo il motivo dell'intervento, basterebbe leggere più attentamente il codice per vedere dove hai sbagliato.

L'attivatore dell'action dove sta? lo stai eseguendo ad ogni caricamento della pagina!
$conn=new mysqli($host,$user,$pass,$db);
try{
$conn->query('INSERT INTO 'tabella' (`'.join('`,`',array_keys($_POST)).'`) VALUES ("'.join(",",$_POST).'")');
}catch(
Exception $e){
print_r($e);
}
 

sal88

Utente Attivo
25 Giu 2019
22
0
1
alla fine non mi fa collegare al database al server si... non capisco il perchè...
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [PHP] modifica del body email con checked PHP 8
Tommy03 Errore invio email con PHP PHP 1
Tommy03 Invio email con PHP PHP 3
M redirect php email inviata con successo PHP 2
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
Y INVIO AUTOMATICO EMAIL CON PHP PHP 4
A [PHP] Autorisponditore con email in formato html PHP 18
Shyson Camuffare email con php PHP 5
M Tabella PHP con sorgente dati csv: selezionare le riche e compilare Form eMail PHP 1
N Problema Email con php PHP 1
R Ricerca Email in database mysql con php PHP 2
R invio email php con allegato PHP 1
P Non riesco più ad inviare email con il php PHP 82
Z Email Php con frame PHP 4
M Inviare email con allegati usando PHP PHP 2
C Email e allegato con PHP PHP 3
M invio email con php PHP 1
G Script php per invio email con controllo sintassi e record MX PHP 0
G Script php per invio email con controllo sintassi e record MX PHP 7
C Form email php su pagina index.html? PHP 21
ANDREA20 [PHP] Modulo email invio PHP 5
C [PHP] Problema Invio Email Elseif PHP 2
V [PHP]indirizzo email è protetto dagli spambots PHP 4
S [PHP] estrarre le email da un elenco di url PHP 21
A [PHP] Invio email quando viene visitata una pagina PHP 7
Michaelweb93 [PHP] [HTML] Creazione offerte - email PHP 8
A [PHP] Url pagamento paypal in email PHP 2
K [PHP] Validazione email e password PHP 1
E [PHP] [HTML] Codice che gestisce l'input e la trasmissione dei dati alla mia email PHP 1
otto9due [PHP] Dubbio esistenzaile: Regex email e stampa valori trovati.. PHP 5
ANDREA20 [MySQL] [PHP] Invio email ordine MySQL 12
ANDREA20 [PHP] Non riesco ad impostare reset password invio via email PHP 6
ANDREA20 [PHP] Invio ordine via email PHP 14
elpirata [PHP] Script reminder email PHP 11
CristianB72 [PHP] Controllo sintassi indirizzo email non funziona PHP 13
ANDREA20 [PHP] Controllo email se e valida PHP 5
CoyotesSon [PHP] Form via email PHP 10
P [PHP] Confrontare due password e due email PHP 4
S PHP: inviare via email contenuto di una funzione PHP 4
M Continua da "posta elettronica" - Configurazione email php su servizio hosting PHP 2
L Problema Bootstrap Modulo Email + php PHP 1
G email da javascript a php Javascript 1
G Script php estrazione email PHP 8
F Problema form invio email php PHP 3
F form invio email php PHP 5
anton Nascondere indirizzo email agli spambot in un form php PHP 21
P Problema invio email da php PHP 9
S Invio Email Tramite Php PHP 2
A php msql invio dati per email PHP 2
P [PHP] Inserire email in un database PHP 2

Discussioni simili