[RISOLTO] inserimento dati db

Marco196943

Utente Attivo
19 Ago 2012
66
0
0
Salve a tutti, ho un problema.
questo script ha funzionato una volta sola poi non dà piu nulla neanche errori, non inserisce dati nel db nè invia più mail sapete dirmi cosa gli è preso? ho provato solo ad inserire un redirect:crying:


PHP:
<?php require_once('../Connections/utenti_irish.php'); ?>
<?php

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "genera")) {
  $insertSQL = sprintf("INSERT INTO login (telefono, tipo_doc, num_doc, email, password, nome, cognome) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['telefono'], "text"),
                       GetSQLValueString($_POST['tipo_doc'], "text"),
                       GetSQLValueString($_POST['num_doc'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['password'], "text"),
                       GetSQLValueString($_POST['nome'], "text"),
                       GetSQLValueString($_POST['cognome'], "text"));

  mysql_select_db($database_utenti_irish, $utenti_irish);
  $Result1 = mysql_query($insertSQL, $utenti_irish) or die(mysql_error());

}

	//Includo Variabili
	include('config_email.php');

	
	session_start();
	
	$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$tipo_doc = $_POST['tipo_doc'];
$num_doc = $_POST['num_doc'];
$password = $_POST['password'];

		$ip			=	$_SERVER['REMOTE_ADDR'];



	//Verifica antispam 
	
	if($_POST['fred2'] != "") {
		echo('<p style="color: #000; font-size: 25px; font-weight: bold;">Sei uno spambot o stai usando tecniche di spam indesiderate, spiancenti ma ci siamo attrezzati. La mail non e stata inviata</p>');    
	}
	
	else {



//Invio la mail

$to 		= $tua_email;
$sbj 		= "Invio User pass per - $nome $cognome";
$msg 		= "
<html>
<head>
<style type='text/css'>
body{
	font-family:'Lucida Grande', Arial;
	color:#333;
	font-size:15px;
}
</style>
</head>
<body>
<table width='600' border='0' cellspacing='0' cellpadding='5'>
  <tr>
    <td width='121' align='right' valign='baseline'><strong>Nome:</strong></td>
    <td width='459'>$nome</td>
  </tr>
  <tr>
    <td width='121' align='right' valign='baseline'><strong>Cognome:</strong></td>
    <td width='459'>$cognome</td>
  </tr>

   
  <tr>
    <td align='right' valign='baseline'><strong>User:</strong></td>
    <td>$email</td>
  </tr>

  
  <tr>
    <td align='right' valign='baseline'><strong>Password:</strong></td>
    <td>$password</td>
  </tr>
       <tr>
    <td align='right' valign='baseline'><strong>IP Tracciato (per motivi di sicurezza):</strong></td>
    <td>$ip</td>
  </tr>
  
   <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  
    <tr>
    <td>&nbsp;</td>
    <td><small>Powered by mdstudioweb.com </small></td>
  </tr>

</table>
</body>
</html>
";

$from 		 = $email;
$headers	 = 'MIME-Version: 1.0' . "\n";
$headers	.= 'Content-type: text/html; charset=iso-8859-1' . "\n"; //In certi casi con aruba se non viene formattata eliminare il \r per i permessi come ho fatto in questo caso
$headers 	.= "From: $from";


mail($to,$sbj,$msg,$headers); //Invio mail principale.

//Fine mail inviata a me




//Inizio email di conferma
$toClient		 = $email;
$msgClient		 = "
<html>
<head>
<style type='text/css'>
body{
	font-family:'Lucida Grande', Arial;
	color:#333;
	font-size:15px;
}
</style>
</head>
<body>

<h1>Flaminia Nobili</h1>
<br />

  <p>Gentile, $nome</p>
  <p>Come da sua richiesta, le inviamo i dati per l'accesso all'istituto Irish Institute, dove potrà effettuare l'accesso utilizzando come: Username $email, e come password $password.
  Restiamo a sua disposizione per qualsiasi infirmazione distinti saluti
  <br />
Flaminia Nobili.</p>  
   
  
  <br />
  <hr>
  
   <p>Thanks for contact us, $nome</p>
    <p>We received your email. We respond as soon as possible.</p>  

</body>
</html>
";
$fromClient 	 = $tua_email;
$sbjClient		 = "Grazie, $nome ";
$headersClient	 = 'MIME-Version: 1.0' . "\r\n";
$headersClient	.= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headersClient 	.= "From: $fromClient";

mail($toClient,$sbjClient,$msgClient,$headersClient); //mail inviata al cliente

//Fine email di conferma

//Resetto errori

session_destroy();

exit;

} //fine else del controllo antispam



?>
 
E' impazzito io o lui?

HO rifatto la pagina eseguo il primo inserimento è ok e invia l'email, faccio il segondo inserimento e non invia mail ne inserisce dati..... :confused:
 
Ciao, metti un var_dump a inizio pagina e controlla di avere sempre i dati che ti aspetti
PHP:
var_dump($_POST);
 
Ciao e grazie per la risposta, ho fatto come mi hai detto e il risultato è questo

array(8) { ["nome"]=> string(5) "Piero" ["cognome"]=> string(8) "Anderson" ["telefono"]=> string(10) "3332542657" ["tipo_doc"]=> string(15) "Carta Identità" ["num_doc"]=> string(16) "DNGMRC69E11E958K" ["email"]=> string(26) "[email protected]" ["password"]=> string(6) "l4CuNg" ["MM_insert"]=> string(6) "genera" }

e praticamente non sò cosa sia... non ha ne inserito nel db ne inviato un email dove pensi che sia l'impiccio?
 
Sono i dati che ti arrivano dal form, pensavo non ci fosse il MM_insert, prova a stampare la query prima di eseguirla e metti un var_dump del risultato
PHP:
echo $insertSQL;
    $Result1 = mysql_query($insertSQL, $utenti_irish) or die(mysql_error());
    var_dump($Result1);
 
forse va in errore il require all'inizio, prova cosi
PHP:
<?php

echo "<br/>inizio";
require_once('../Connections/utenti_irish.php');
echo "<br/>libreria richiamata correttamente"
?>
 
da qualche parte andrà in errore, metti un echo ogni riga e vedi dove si ferma
PHP:
<?php

echo "<br/>inizio";
require_once('../Connections/utenti_irish.php');
echo "<br/>libreria richiamata correttamente";

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "genera")) {
    echo "<br/>entro";
    $insertSQL = sprintf("INSERT INTO login (telefono, tipo_doc, num_doc, email, password, nome, cognome) VALUES (%s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['telefono'], "text"), GetSQLValueString($_POST['tipo_doc'], "text"), GetSQLValueString($_POST['num_doc'], "text"), GetSQLValueString($_POST['email'], "text"), GetSQLValueString($_POST['password'], "text"), GetSQLValueString($_POST['nome'], "text"), GetSQLValueString($_POST['cognome'], "text"));
    echo "<br/>creazione query";
    mysql_select_db($database_utenti_irish, $utenti_irish);
    echo "<br/>selezione db";
    $Result1 = mysql_query($insertSQL, $utenti_irish) or die(mysql_error());
    echo "<br/>esecuzione query";
}
?>
sicuro che la funzione GetSQLValueString() esiste?
 
ho tolto get value il risultato

inizio
libreria richiamata correttamente
entro
creazione query
selezione dbQuery was empty
 
allora lo script va in errore sulla creazione della query, probabilmente non trova la funzione GetSQLValueString();
assicurati che sia presente nel file che includi
 
In questo?

PHP:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_utenti_irish = "+++++";
$database_utenti_irish = "++++++";
$username_utenti_irish = "+++++";
$password_utenti_irish = "+++";
$utenti_irish = mysql_pconnect($hostname_utenti_irish, $username_utenti_irish, $password_utenti_irish) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
 
ho fatto questo....



PHP:
echo "<br/>inizio"; 
require_once('../Connections/utenti_irish.php'); 
echo "<br/>libreria richiamata correttamente"; 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "genera")) { 
    echo "<br/>entro"; 
    $insertSQL = sprintf("INSERT INTO login (telefono, tipo_doc, num_doc, email, password, nome, cognome) VALUES ('$telefono', '$tipo_doc', '$num_doc', '$email', '$password', '$nome', '$cognome')" );
    echo "<br/>creazione query"; 
    mysql_select_db($database_utenti_irish, $utenti_irish); 
    echo "<br/>selezione db"; 
    $Result1 = mysql_query($insertSQL, $utenti_irish) or die(mysql_error()); 
    echo "<br/>esecuzione query";

e il risultato è questo è corretto secondo te?
PHP:
inizio
libreria richiamata correttamente
entro
creazione query
selezione db
esecuzione query
 
Si o li o nella stessa pagina ma la funzione deve esistere
non uso mai qualla sintassi per le query
prova cosi
PHP:
$insertSQL = "INSERT INTO login 
                  SET telefono = '" . $_POST['telefono'] . "', 
                      tipo_doc= '" . $_POST['tipo_doc'] . "', 
                      num_doc= '" . $_POST['num_doc'] . "', 
                      email= '" . $_POST['email'] . "', 
                      password= '" . $_POST['password'] . "', 
                      nome= '" . $_POST['nome'] . "', 
                      cognome = '" . $_POST['cognome'] . "'";
 
cavolo pensavo di essere arrivato invece manda l'email crea un id nel db ma i dati non ci sono:dipser:
 
Te sei un grande.... Io non so dove sei in quale città ti trovi ma sappi che ti devo una cena :quote:
 
ti conviene aggiungere almeno un minimo controllo per evitare errori o sqlinjection
PHP:
$insertSQL = "INSERT INTO login 
                  SET telefono = '" . addslashes($_POST['telefono']) . "', 
                      tipo_doc= '" . addslashes($_POST['tipo_doc']) . "', 
                      num_doc= '" . addslashes($_POST['num_doc']) . "', 
                      email= '" . addslashes($_POST['email']) . "', 
                      password= '" . addslashes($_POST['password']) . "', 
                      nome= '" . addslashes($_POST['nome']) . "', 
                      cognome = '" . addslashes($_POST['cognome']) . "'";
dopo guardo per l'header
 

Discussioni simili