Ciao, sto provando a inserire dei dati in un piccolo DB che provengono da un quiz realizzato con Captivate.
Dal momento che non sono un programmatore mi sono arrangiato a creare gli script con un tutorial che ho trovato nel forum di Captivate e in rete, ma il problema è che non funziona o meglio..se lo provo in locale funziona perfettamente, quando lo metto online un po' meno.
I file che uso sono tre:
File che trasmette i risultati del quiz: in pratica il filmato flash invia i parametri e cliccando alla fine su "Invia e-mail" si apre un pop-up dove inserire il proprio nome e e-mail:
codice:
function sendMail()
{
// strip the word Core Data out of the results
var stripCoreData = gstrEmailBody.replace("Core Data", "");
// remove the double quotes
var stripQuotes = stripCoreData;
while(stripQuotes.indexOf("\"") !=-1){
stripQuotes=stripQuotes.replace("\"", "");
}
// turn results into an array to access single items
var results_array = stripQuotes.split(",");
// assign variables
var RawScore = results_array[7];
var MaxScore = results_array[8];
var MinScore = results_array[9];
var Accuracy = RawScore/MaxScore;
Accuracy = Accuracy*100;
// write html for popup window
var htmlString=
"<html><head><title>Quiz Results</title></head><body>" +
"<form Name='results' method='post' action='insert.php'>" +
"<table cellspacing=1 cellpadding=4 border=0><tr><td bgcolor='#336699'>Punteggio:</td>" +
"<td align='left' bgcolor='#6699cc'>" + RawScore + "</td></tr>" +
"<tr><td bgcolor='#336699'>Punteggio massimo:</td>" +
"<td align='left' bgcolor='#6699cc'>" + MaxScore + "</td></tr>" +
"<tr><td bgcolor='#336699'>Nome:</td><td align='left' bgcolor='#6699cc'><input type='text' Name='name'></td></tr>" +
"<tr><td bgcolor='#336699'>Email:</td><td align='left' bgcolor='#6699cc'><input type='text' Name='email'></td></tr>" +
"<tr><td bgcolor='#336699'>" +
"<input type='hidden' value='" + MaxScore + "' name='total'>" +
"<input type='hidden' value='" + RawScore + "' name='correct'>" +
"</td><td align='left' bgcolor='#6699cc'><input type='submit' name='Submit' value='Invia i risultati'></td></tr></table>" +
"</form></body></html>"
// function for the popup window
function launchwin(htmlString){
newwin = window.open("","flashcamwin","height=300,width=325,scrollbars=0");
newwin.document.open();
newwin.document.write(htmlString);
newwin.document.close();
}
// launch the window
launchwin(htmlString);
}
Una volta cliccato su submit questi dati vengono inviati, al db tramite il file insert.php
Codice PHP:
<?php
$db_host = 'localhost';
$db_user = 'utente';
$db_password = 'password';
$db_name = 'database';
$link = mysql_connect('localhost', 'utente', 'password');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}
$db_selected = mysql_select_db('database', $link);
if (!$db_selected) {
die ("Errore nella selezione del database: " . mysql_error());
}
//echo 'connesso con successo';
//mysql_close($link);
$query = "INSERT INTO captivate_risultati (name,email,correct,total)
VALUES ('$name','$email','$correct','$total')";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
$id_inserito = mysql_insert_id();
// chiudo la connessione a MySQL
mysql_close();
?>
Il problema è che alla fine questi dati non vengono inseriti...in pratica con un file che mi richiama i dati dal DB dovrei avere qualcosa del genere
http://www.ortaggipugliesi.it/temp/vedi.php
Solo che i valori dovrebbero essere
Nome
Email (ed entrambi sono assenti)
Correct (può essere 0 o 10 perché è una sola domanda)
Total: deve essere sempre 10, perché sono 10 punti per la domanda.
Cosa sbaglio?
Perché funziona in locale e non in remoto?