• User •

    Ok.
    Ti posto tutto il mio elaborato quì.

    Helptool.php
    [php]<title>Help Tool</title>

    <td width="1%" align=""></td>
    </tr>
    </table>

    <table width="720" height="351" border="0" align="center" >
    <!--DWLayoutTable-->
    <td height="104" width="129"> </td>
    <tr>
    <td width="129" height="241"> <td width="430" valign="top"><p> </p>
    <p><b><center>Sei propietario di un personaggio?</center></b></p>
    <p><center><a href="richiesta.php"><font color="#FFCC00">SI </font> </a>   <a href="register.php"><font color="#ffcc00"> NO</font></a></center></p></td>
    <td width="7"> </td>

    <td width="136"><!--DWLayoutEmptyCell--> </td>
    </table>
    [/php]

    richieste.php

    [php]<title>Domanda Help Tool</title>

    <form name="f1" method="post" target="_top" action="elaboro.php" onSubmit="return WLSubmit(this)"><input name="idsbho" id="IDSBHO" value="1" type="hidden"><input name="PwdPad" id="i0340" type="hidden"><input name="LoginOptions" id="LoginOptions" value="3" type="hidden"><input name="CS" id="CS" type="hidden"><input name="FedState" id="FedState" type="hidden"><input name="PPSX" id="i0326" value="Passpo" type="hidden"><input name="type" id="type" type="hidden">

    <td width="1%" align=""></td>
    </tr>
    </table>

    <table width="504" height="386" align="center"
    <!--DWLayoutTable-->
    <td height="91" width="107"> <img height="69" /> </td>
    <tr>
    <td width="107" height="241"> <td width="344" valign="top"><p> </p>

    <label>La tua email<br>
    <input type="text" name="nome" id="nome" width="250"/>
    </label>
    </p>
    <p>
    <label>

      <textarea name='notes' style='background-color:#ffffff;border:1px solid #CCC;width:95%;font-family:verdana;font-size:10px' rows='8' cols='25'></textarea>
    </label>
    

    </p>

    <label>
    <input type="reset" value="Reset" />

        <input type="submit" value="INVIA" />
      </label>
    </td>
    

    <td width="10"> </td>

    <td width="23"><!--DWLayoutEmptyCell--> </td>
    </table>
    </form>[/php]

    Elaboro.php

    [php]<html>
    <head>
    <title>Ajax e gli iframe nascosti: Salvataggio Dati</title>
    <?php
    include('core.php');

    // Recupero i dati inseriti nel form proveniente dalla pagina richiesta.php

    $id = $_POST["id"];
    $email = $_POST["email"];
    $description = $_POST["description"];

    // Accesso al Database
    $sqlhostname;
    $sqlusername;
    $sqlpassword;
    $sqldb;

    // apro la connessione dal database
    $cnn = mysql_connect($server, $username, $password) or die ("Impossibile connettersi al server.");

    // seleziono il database
    @mysql_select_db($sqldb) or die ("Impossibile selezionare il database.");

    // Creo la query sql per l'inserimento dati
    $sql = "INSERT INTO richieste
    SET
    nome = '".$id."',
    telefono = '".$email."',
    email = '".$description."' ";

    // eseguo la query e controllo che non mi restituisca errore
    if($result = mysql_query($sql))
    {
    $messaggio = "Si è verificato un errore nella fase di inserimento;<br> I dati del cliente non sono stati salvati.";
    }

    mysql_close($cnn);
    ?>
    <script type="text/javascript">
    // al caricamento della pagina eseguo la funzione
    window.onload = function ()
    {
    // richiamo la funzione saveResult presnte nel iframe "frame_visibile"
    // e gli assegno come valore il messaggio restituito da PHP
    top.frames["frame_visibile"].visualizza_risultato("<?php echo $messaggio ?>");
    }
    </script>
    </head>
    <body>
    </body>
    </html>[/php]

    ps. Elaboro dovrebbe trascrivere il contenuto in una tabella del database,ma non lo fà.

    ps2. Ho tolto i link quindi sarà un po' malmesso xD


  • Consiglio Direttivo •

    Sei sicuro di aver postato le pagine giuste? :mmm:

    Ti spiego: tu recuperi questi valori POSTati dal form
    [php]$id = $_POST["id"];
    $email = $_POST["email"];
    $description = $_POST["description"];[/php]Ma nel form questi non esistono (l'ho ripulito dell'inutile così non facciam confusione):
    [html]<form name="f1" method="post" target="_top" action="elaboro.php" onsubmit="return WLSubmit(this)">

    <input name="idsbho" id="IDSBHO" value="1" type="hidden" />

    <input name="PwdPad" id="i0340" type="hidden" />

    <input name="LoginOptions" id="LoginOptions" value="3" type="hidden" />

    <input name="CS" id="CS" type="hidden" />

    <input name="FedState" id="FedState" type="hidden" />

    <input name="PPSX" id="i0326" value="Passpo" type="hidden" />

    <input name="type" id="type" type="hidden" />

    <input type="text" name="nome" id="nome" size="250" /> <!-- Questo forse doveva essere name="email" id="email" -->

    <textarea name="notes" style="background-color:#ffffff;border:1px solid #CCC;width:95%;font-family:verdana;font-size:10px;" rows="8" cols="25"></textarea>
    <!-- La textarea forse doveva essere name="description" -->
    <input type="reset" value="Reset" />

    <input type="submit" value="INVIA" />

    </form>[/html]Altra domanda: tutti quegli hidden senza value a che ti servono?

    E poi, questo? :mmm:
    [php]// Accesso al Database
    $sqlhostname;
    $sqlusername;
    $sqlpassword;
    $sqldb;[/php]Ultima domanda: core.php immagino contenga i valori di $server, $username, $password e $sqldb, giusto?

    P.S. hai dimenticato di postare la struttura della tabella richieste. 😉

    EDIT: altra cosa, per l'INSERT non usare SET ma VALUES. 😉


  • User •

    // Accesso al Database
    $sqlhostname;
    $sqlusername;
    $sqlpassword;
    $sqldb;
    L'ho messo perchè altervista non mi riconosceva..

    Le tabelle del database contengono questa struttura

    -- Table structure for richieste


    CREATE TABLE richieste (
    id int(10) NOT NULL auto_increment,
    Email varchar(100) default NULL,
    description varchar(100) default NULL,
    userid int(10) default NULL,
    PRIMARY KEY (id)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


    -- Records


    Elimino gli hidden.

    Poi ho provato a mettere nel form i nomi delle tabelle create nel db solo che non le accetta xD


  • Consiglio Direttivo •

    Beh, vediamo un po'.

    Ammettendo che il form che ti serva sia così strutturato:
    [html]<form name="f1" method="post" target="_top" action="elaboro.php" onsubmit="return WLSubmit(this)">

    <input type="text" name="email" id="email" size="250" />

    <textarea name="description" rows="8" cols="25"></textarea>

    <input type="reset" value="Reset" />

    <input type="submit" value="INVIA" />

    </form>[/html]Metterei i dati di accesso al Db e la relativa connessione nel core.php (variando i dati con quelli tuoi di connessione al Db:
    [php]<?php
    $db_host = "localhost";
    $db_user = "nome_utente";
    $db_psw = "password";
    $db_name = "nome_db";

    $connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");

    $db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
    ?>[/php]E quindi strutturerei così il file richieste.php
    [php]<?
    require_once("core.php");

    // Recupero i dati inseriti nel form proveniente dalla pagina richiesta.php

    $email = trim(htmlentities($_POST["email"], ENT_QUOTES));
    $description = trim(htmlentities($_POST["description"], ENT_QUOTES));

    // Creo la query sql per l'inserimento dati
    $sql = "INSERT INTO richieste (Email, description) VALUES ('$email', '$description')";

    // eseguo la query e controllo che non mi restituisca errore
    if($result = mysql_query($sql))
    {
    $messaggio = "Si è verificato un errore nella fase di inserimento;<br /> I dati del cliente non sono stati salvati.";
    }

    mysql_close($connessione);
    ?>[/php]Ma sia nel form, e quindi nel file richieste, non vedo l'id_user da inserire, per caso lo hai in sessione? 😉


  • User •

    No,non lo metto.. perchè da solo fastidio.
    Ora provo ciò che tu mi hai consigliato e ti faccio sapere.
    Grazie tante


  • User •

    Mi dà un'errore il core.php,esso è strutturato così:

    <?

    define("IN_HOLOCMS", TRUE);

    if(strpos($_SERVER['SERVER_SOFTWARE'],"Win") == false){ $page['dir'] = str_replace('\','/',$page['dir']); }
    chdir(str_replace($page['dir'], "", getcwd()));

    if(strpos($page['dir'],'habblet') && (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') && $page['no_ajax'] != true){ header('Location: ../'); exit; }

    require_once('./includes/config.php');
    define("PREFIX", $conn['main']['prefix']);
    require('./includes/classes.php');
    $db = new $conn['main']'server';
    if($conn['server']['enabled'] == true){ $serverdb = new $conn['server']'server'; }else{ $serverdb = $db; }
    $settings = new HoloSettings;
    $input = new HoloInput;
    $lang = new HoloLocale;

    session_start();

    define("PATH", $settings->find("site_path"));
    define("SHORTNAME", $settings->find("site_shortname"));
    define("FULLNAME", $settings->find("site_name"));
    //define("DEBUG", true); //Uncomment this line to show detailed database error messages.

    require('./includes/data/'.$settings->find("hotel_server").'.php');
    $core = new core_sql;
    require('./includes/functions.php');
    require('./includes/version.php');

    if($page['housekeeping'] != true){ if(is_object($_SESSION['user'])){ $user = $_SESSION['user']; }else{ $user = new HoloUser(null,null); } }else{ if(is_object($_SESSION['hk_user'])){ $user = $_SESSION['hk_user']; }else{ $user = new HoloUser(null,null); } }

    if($user->error > 0 && $page['bypass_user_check'] != true && $_COOKIE['rememberme'] == "true" && $page['housekeeping'] != true){ $_SESSION['page'] = $_SERVER["REQUEST_URI"]; header("Location: ".PATH."/security_check_token"); }

    if($settings->find("site_closed") == "1" && $page['id'] != "maintenance" && $page['housekeeping'] != true && $user->user("rank") < 5){
    header("Location: ".PATH."/maintenance"); exit;
    }

    $db_host = "localhost";
    $db_user = "";
    $db_psw = "
    *****";
    $db_name = "*******";

    $connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");

    $db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
    ?>


  • Consiglio Direttivo •

    Ok, ho capito, è dal core.php che viene incluso il file di configurazione, a questo punto allora non lo devi modificare il core.php. 😉


  • User •

    E cosa modifico? °_° xD

    ps . Dal file elaboro.php tolgo la stringa require_once("core.php");?


  • Consiglio Direttivo •

    No, lascia tutto come è. Devi solo togliere questo pezzo che ti ho fatto mettere nel file core.php dato che non sapevo fosse già incluso lì il file di connessione. 😉

    $db_host = "localhost";
    $db_user = "";
    $db_psw = "
    *****";
    $db_name = "*******";

    $connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");

    $db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");


  • User •

    Ho provato a fare come hai detto, ma il file elaboro.php non elabora e non manda i dati al database.

    Fatal error: main() [function.require]: Failed opening required './includes/config.php' (include_path='.:') in /membri/disext1/core.php on line 25

    ecco l'errore che fà.


  • Consiglio Direttivo •

    Ma sei certo che questa board funzioni?

    Core.php mi pare di capire che sia un file della board che stai utilizzando..:?

    Facciamo così, creati un file config.php così, inserendo i tuoi dati di accesso:
    [php]<?php
    $db_host = "";
    $db_user = "
    ";
    $db_psw = "
    *****";
    $db_name = "*******";

    $connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");

    $db_select = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");
    ?>[/php]

    Ed in elaboro.php inserisci all'inizio:
    [php]require_once ("config.php");[/php]
    Dato che Core.php non funziona lo toglierei.


  • User •

    Ci sono riuscito.

    Adesso dovrei però dal database imprimere in un form tutti i dati, sapresti come fare?


  • Consiglio Direttivo •

    Cosa intendi per imprimere i dati in un form?
    Potresti essere più esplicito :D?


  • User •

    In poche parole,_che i dati che si inviano a richieste poi vanno a scriversi in un'altra pagina.


  • Consiglio Direttivo •

    Cioè, estrarre i dati contenuti nel Database e visualizzarli?


  • User •

    Si, perchè quello che vado a creare è un'adminpannel .


  • Consiglio Direttivo •

    In maniera molto semplice fai una SELECT e quindi cicli il risultato della query.

    [php]<?php
    require_once ("config.php");

    $sql="SELECT * FROM richieste";
    $query=@mysql_query($sql) or die (mysql_error());

    while ($array=mysql_fetch_array($query))
    {
    echo "E-mail: ".$array['email']." - Descrizione: ".$array['description']."<br />";
    }
    ?>[/php];)


  • User •

    Grazie mille, sei un grande 😄 .


  • Consiglio Direttivo •

    Di nulla, buon scripting. 😉