Estrarre dati dal DB e inviare mail

  • Creatore Discussione Creatore Discussione efisio
  • Data di inizio Data di inizio

efisio

Utente Attivo
5 Ago 2008
95
0
0
Salve a tutti,
stò diventando matto cercando di realizzare l'invio di una mail dal sito.
La cosa mi sembra infattibile...

vi posto il codice


?>
include("dbassociati.php");
//campi hidden
$nomea =($_POST['nomeass']);
$cognomea =($_POST['cognomeass']);
$professione =($_POST['professione']);
//campi form obbligatori
$nome = isset($_POST['nome']) ? trim($_POST['nome']) : '';
$cognome = isset($_POST['cognome']) ? trim($_POST['cognome']) : '';
$testo = isset($_POST['testo']) ? trim($_POST['testo']) : '';
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$db_conn = @mysql_connect($host,$user,$password);
mysql_select_db($database, $db_conn);
$query = mysql_query("SELECT email FROM $professione WHERE nome=$nomea AND cognome=$cognomea ");
$result= mysql_query ($query);
$maila = $result;
$mittente = 'From:*"prova invio"*<$email>*\r\n';
$destinatario = "\$maila\";
$oggetto = "informazioni";
$messaggio = '$testo';*
mail($destinatario, $oggetto, $messaggio, $mittente);
?>

al momento mi dà sempre un errore del tipo:
Parse error: syntax error, unexpected $end in D:\Inetpub\webs\risorseumane\prova\form_contatto.php on line 37

che corrisponde alla chiusura del file " ?>"
Ma che vuol dire?

GRAZIE

Efisio
 
Ultima modifica:
innanzitutto quel:
PHP:
?>
iniziale non va bene, dovrebbe essere:
PHP:
<?php
poi semplifica un pò il codice, ad esempio:
PHP:
$nome = if(isset($_POST['nome'])){ $nome = trim($_POST['nome']);}
 
Ciao Eliox,
ho corretto e modificato quanto mi hai detto e il risultato è cambiato.
Ora mi dà il seguente errore:
Parse error: syntax error, unexpected T_IF in D:\Inetpub\webs\psywisecom\prova\form_contatto.php
, in corrispondenza della riga: $nome = if(isset($_POST['nome'])){ $nome = trim($_POST['nome']);}

Proprio non capisco????
di seguito il codice modificato e corretto:

<?php
include("dbassociati.php");
//campi hidden
$nomea =($_POST['nomeass']);
$cognomea =($_POST['cognomeass']);
$professione =($_POST['professione']);
//campi form obbligatori
$nome*=*if(isset($_POST['nome']){*$nome*=*trim($_POST['nome']);}*
$cognome*=*if(isset($_POST['cognome'])){*$cognome*=*trim($_POST['cognome']);}*
$testo*=*if(isset($_POST['testo'])){*$testo*=*trim($_POST['testo']);}*
$email*=*if(isset($_POST['email'])){*$email*=*trim($_POST['email']);}*
$db_conn = @mysql_connect($host,$user,$password);
mysql_select_db($database, $db_conn);
$query = mysql_query("SELECT email FROM $professione WHERE nome=$nomea AND cognome=$cognomea ");
$result= mysql_query ($query);
$maila = $result;
$mittente = 'From:*"prova invio"*<$email>*\r\n';
$destinatario = "\$maila\";
$oggetto = "informazioni";
$messaggio = '$testo';*
mail($destinatario, $oggetto, $messaggio, $mittente);
?>

Ciao Efisio
 
Ultima modifica:
Il codice che hai postato è tutto incasinato...
ci sono una valanga di errori... credo tu sia all'inizio con PHP...
prova ad usare questo:
PHP:
<?php
include("dbassociati.php");

//campi hidden
$nomea = $_POST['nomeass'];
$cognomea = $_POST['cognomeass'];
$professione = $_POST['professione'];

//campi form obbligatori
if (isset($_POST['nome'])) $nome = trim($_POST['nome']); 
if (isset($_POST['cognome'])) $cognome = trim($_POST['cognome']);
if (isset($_POST['testo'])) $testo = trim($_POST['testo']);  
if (isset($_POST['email'])) $email = trim($_POST['email']);

// estraggo da database
$db_conn = @mysql_connect($host,$user,$password);
mysql_select_db($database, $db_conn);
$result = mysql_query("SELECT email FROM ".$professione." WHERE nome = '".$nomea."' AND cognome = '".$cognomea."'");
if (mysql_num_rows($result)
{
  $row = mysql_fetch_assoc($result);

  // preparo la mail 
  $destinatario =  $row['email'];
  $oggetto = "informazioni"; 
  $messaggio = $testo; 
  $mittente = "From: " . $email;
  // spedisco 
  mail($destinatario, $oggetto, $messaggio, $mittente); 
}else{
  echo "Nessun record!";
}
?>
Ciao
 
Buon pomeriggio MAX,
stò seguendo le tue indicazioni, in quanto sono un principiante ma, una volta che eseguo l'invio mi compare a video questo messaggio: Parse error: syntax error, unexpected '{' in D:\Inetpub\webs\risorseumane\prova\form_contatto.php on line 20
La linea numero 20 corrisponde alla parentesi graffa subito dopo IF.
Come potrei proseguire per la risoluzione del problema?

Grazie

Efisio
 
manca la parentesi di chiusura nella riga:
...
if (mysql_num_rows($result)
...
nel codice suggerito da Maxbossi. Può darsi che è per questo che ti dia l'errore
 
Ciao Mediasteno,
ho chiuso con la parentesi tonda quanto era stato lasciato aperto da MAX e il risultato è il seguente:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Inetpub\webs\risorseumane\prova\form_contatto.php on line 20
Nessun record!


Sembra che non trovi nessun record nel DB e in più continua a darmi errore sulla linea numero 20 dove si trova la parentesi graffa?????
 
Prova a sostituire queste righe:
PHP:
$result = mysql_query("SELECT email FROM ".$professione." WHERE nome = '".$nomea."' AND cognome = '".$cognomea."'"); 
if (mysql_num_rows($result) 
{ 
  $row = mysql_fetch_assoc($result);

con queste:

PHP:
$sql = "SELECT email FROM ".$professione." WHERE nome = '".$nomea."' AND cognome = '".$cognomea."'"
$result = @mysql_query("$sql",$db_conn) or die ("Errore query database: ". mysql_error());
$num_righe = mysql_num_rows($result);
if ( $num_righe == 0 ) {
echo "Nessun risultato!";
}
else
{
  $row = mysql_fetch_assoc($result);

e vedi che succede
 
Ho provato a seguire le tue indicazioni e mi dà il seguente errore:
Parse error: syntax error, unexpected T_VARIABLE in D:\Inetpub\webs\risorseumane\prova\form_contatto.php on line 19

Alla linea 19 ho il seguente codice:

$result = @mysql_query("$sql",$db_conn) or die ("Errore query database: ". mysql_error());

Come posso provare?
Ciao
Efisio
 

Discussioni simili