-
Php e database
Salve a tutti.
Sono alle prese con un form html.
Prendo i dati da esso e tramite una pagina php, invio il tutto ad un database.
Sto usando workbanch, e credo che il problema che ho è che non riesco a metterlo online.
Mi potete dare una mano?
Premetto che il codice html postato, è funzionante per quanto riguarda l'invio di email, dunque penso che non ci siano problemi..
Codice:
<?php
$con = mysql_connect("localhost","Giuseppe","20081990");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("prova", $con);
$sql="INSERT INTO persona (nome,cognome, professione,email) VALUES ('$_POST[nome]','$_POST[cognome]','$_POST[professione]','$_POST[email]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
?>
Codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="iso-8859-1">
<title>Giuseppe</title>
</head>
<body bgcolor="orange" text="green" >
<form name="dati utente" action="prova.php" method="post">
<fieldset>
<legend>Dati Utente</legend>
<label>Nome:</label> <input name="nome" type="text" size="20" maxlength="30" />
<label>Cognome:</label> <input name="cognome" type="text" size="20" maxlength="30" />
<label>Professione:</label> <input name="professione" type="text" size="20" maxlength="30" />
<label>Email:</label> <input name="email" type="text" size="20" maxlength="30" />
</fieldset>
<br/>
<br/>
<br/>
<button type="reset">annulla</button>
<button type="submit">invia</button>
</form>
</body>
</html>
-
Il locale puoi usare tutti i tools che vuoi, ma su AV questi avranno la strada sbarrata poichè non é possibile l'accesso al DB dall'esterno. Quindi se il ruo problema è che workbench non si collega al db è naturale.
-
E allora come faccio a provare se le mie due pagine funzionano bene?
il codice php non deve funzionare per forza sul web?
-
Il codice PHP viene interpretato da un interprete PHP appunto.
Scusa per evitare confusione, ma stiamo parlando del tool workbench quale GUI per MySQL?
-
-
Ecco. Allora ti confermo che tramite quel tool non puoi interagire col DB di AV.
Puoi usare phpMyAdmin, lo trovi tra gli strumenti presenti nel pannello di controllo.
-
Se volessi fare in un solo colpo, inserimento in DB e invio email? cosa devo fare? ecco la mia idea?
P.s tutto quello di prima era funzionante e ti ringrazio per l'aiuto
Così insiersce solo in DB ma non inoltra l'email.
Codice:
<?php
$con = mysql_connect("localhost","zanettiinter","xxxxx");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_zanettiinter", $con);
$sql="INSERT INTO persona (nome,cognome, professione,email) VALUES ('$_POST[nome]','$_POST[cognome]','$_POST[professione]','$_POST[email]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
//Raccolta informazioni da form
session_start();
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$professione = $_POST['professione'];
$email = $_POST['email'];
//Fine raccolta informazioni
//Invio mail al Webmaster
$to = "pelatodifiducia@hotmail.it";
$sbj = "Hai ricevuto dei dati dal sito ";
$msg = "
<html>
<head>
<style type='text/css'>
p.stile {font-weight:bold;
font-family:arial, sans-serif;
}
p {font-family:arial, sans-serif;
}
</style>
</head>
<body>
<p>Hai ricevuto i seguenti dati da $nome $cognome</p>
<p class='stile'>E-Mail:</p><p>$email</p>
<p class='stile'>Professione:</p><p> $professione</p>
</body>
</html>
";
$from = $email;
$headers = 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headers .= "From: $from";
mail($to, $sbj, $msg, $headers);
//Fine invio messaggio al Webmaster
//Inizio invio email all'utente
$toclient = $email;
$sbjclient = "Hai ricevuto una mail dal sito ";
$msgclient = "Inserisci il messaggio";
$fromclient = "Nome del sito";
$headersclient = 'MIME-Version: 1.0' . "\n";
$headersclient .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
$headersclient .= "From: $fromclient";
mail($toclient, $sbjclient, $msgclient, $headersclient);
session_destroy();
exit;
?>
-
Fai molta confusione e mescoli troppo codice.
1. Se ti servono le sessioni, metti session_start() come prima istruzione. (Non capisco cmq perchè crei la sessione e poi la distruggi. se non ti serve non crearla)
2. raggruppa il codice evitando un po' di ripetizione e non spezzare il flusso.
3. Regola d'oro: Non ti fidare mai. Bonifica IN OGNI CASO i valori passati. Non usare mai direttamente $_POST ma verifica che le variabili contengano ciò che ti aspetti