Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60

    codice unito funziona con l'include da' errore??

    sera forum ormai mi siete simpatici per le pronte risposte e avrei bisogno di aiuto....

    ....questa volta è un problema piccolo ma fastidioso...

    avrei questo codice che funziona(testato anche sul mio sito)
    <?php
    $db_host = 'localhost';
    $db_user = 'mccl';
    $db_password = 'password';
    $db_name = 'my_mccl';



    $db = mysql_connect($db_host, $db_user, $db_password);

    //CONTROLLO CONNESSIONE
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri");

    //CONTROLLO DATABASE
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri");




    // CREAZIONE QUERY
    $query = "SELECT * FROM guestbook ORDER BY data DESC,ora DESC";

    //IF PER CONTROLLARE LA VERIDICITA' DELLA QUERY
    if (mysql_query($query, $db))
    {
    $result=mysql_query($query) or die (mysql_error());
    while($array=mysql_fetch_array($result))
    {
    echo "data:".$array['data']."ora:".$array['ora']." ".$array['nome']."-".$array['messaggio'];
    echo "
    ";
    }
    }
    else { echo "Errore durante l'installazione";
    }
    mysql_close($db);

    ?>
    il problema ce l'ho quando, per voler gestire meglio il tutto ho preferito creare un file chiamato accessodatabase.php nel quale mettevo appunto la prima parte...esattamente...
    <?php

    $db_host = 'localhost';
    $db_user = 'mccl';
    $db_password = 'password';
    $db_name = 'my_mccl';



    $db = mysql_connect($db_host, $db_user, $db_password);

    //CONTROLLO CONNESSIONE
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri");

    //CONTROLLO DATABASE
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri");

    ?>
    alla seconda parte ho aggiunto INCLUDE per appunto includere la prima parte ma mi da errore...non capendo pero' il perchè..

    <?php



    include ("accessodatabase.php")

    // CREAZIONE QUERY
    $query = "SELECT * FROM guestbook ORDER BY data DESC,ora DESC";

    //IF PER CONTROLLARE LA VERIDICITA' DELLA QUERY
    if (mysql_query($query, $db))
    {
    $result=mysql_query($query) or die (mysql_error());
    while($array=mysql_fetch_array($result))
    {
    echo "data:".$array['data']."ora:".$array['ora']." ".$array['nome']."-".$array['messaggio'];
    echo "
    ";
    }
    }
    else { echo "Errore durante l'installazione";
    }
    mysql_close($db);

    ?>
    ....qualcuno mi saprebbe dire...

    l'errore è il seguente:
    Parse error: syntax error, unexpected T_VARIABLE in /**/**/***.php on line 16

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    il punto e virgola nell'include l'hai messo vero?

  3. #3
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    Originariamente inviato da Mixio
    il punto e virgola nell'include l'hai messo vero?
    era li l'errore !! strano perchè avevo controllato piu volte...

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Ciao 2 cosette

    Sarebbe piu carino mettere il codice di accesso alla funzione e chiamarla nel main.
    Inoltre visto che faiun accesso al database e senza di esso non funziona nulla è corretto utilizzare la funzione require al posto di include. Ancora meglio require_once.

    Quindi ...
    File da includere
    Codice PHP:
    <?php
    function dbConnect() {
      
    $db_host 'localhost';
      
    $db_user 'mccl';
      
    $db_password 'password';
      
    $db_name 'my_mccl';

      
    $db mysql_connect($db_host$db_user$db_password);

      
    //CONTROLLO CONNESSIONE
      
    if ($db == FALSE)
        die (
    "Errore nella connessione. Verificare i parametri");

      
    //CONTROLLO DATABASE
      
    mysql_select_db($db_name$db)
        or die (
    "Errore nella selezione del database. Verificare i parametri");

      return 
    $db;
    }
    ?>
    Main file ...
    Codice PHP:
    <?php
    require_once("accessodatabase.php");

    // DB CONNECT 
    $db dbConnect();

    // CREAZIONE QUERY
    $query "SELECT * FROM guestbook ORDER BY data DESC,ora DESC";

    //IF PER CONTROLLARE LA VERIDICITA' DELLA QUERY
    if (mysql_query($query$db))
    {
    $result=mysql_query($query) or die (mysql_error());
    while(
    $array=mysql_fetch_array($result))
    {
    echo 
    "data:".$array['data']."ora:".$array['ora']." ".$array['nome']."-".$array['messaggio'];
    echo 
    "
    "
    ;
    }
    }
    else { echo 
    "Errore durante l'installazione";
    }
    mysql_close($db);

    ?>


    In questo modo se gli include aumentano non sei costretto a infilarli nel punto esatto.
    E' sempre meglio utilizzare delle funzioni per dividere il codice.


    Andrea

  5. #5
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    Originariamente inviato da andreamk
    Ciao 2 cosette

    Sarebbe piu carino mettere il codice di accesso alla funzione e chiamarla nel main.
    Inoltre visto che faiun accesso al database e senza di esso non funziona nulla è corretto utilizzare la funzione require al posto di include. Ancora meglio require_once.

    Quindi ...
    File da includere
    Codice PHP:
    <?php
    function dbConnect() {
      
    $db_host 'localhost';
      
    $db_user 'mccl';
      
    $db_password 'password';
      
    $db_name 'my_mccl';

      
    $db mysql_connect($db_host$db_user$db_password);

      
    //CONTROLLO CONNESSIONE
      
    if ($db == FALSE)
        die (
    "Errore nella connessione. Verificare i parametri");

      
    //CONTROLLO DATABASE
      
    mysql_select_db($db_name$db)
        or die (
    "Errore nella selezione del database. Verificare i parametri");

      return 
    $db;
    }
    ?>
    Main file ...
    Codice PHP:
    <?php
    require_once("accessodatabase.php");

    // DB CONNECT 
    $db dbConnect();

    // CREAZIONE QUERY
    $query "SELECT * FROM guestbook ORDER BY data DESC,ora DESC";

    //IF PER CONTROLLARE LA VERIDICITA' DELLA QUERY
    if (mysql_query($query$db))
    {
    $result=mysql_query($query) or die (mysql_error());
    while(
    $array=mysql_fetch_array($result))
    {
    echo 
    "data:".$array['data']."ora:".$array['ora']." ".$array['nome']."-".$array['messaggio'];
    echo 
    "
    "
    ;
    }
    }
    else { echo 
    "Errore durante l'installazione";
    }
    mysql_close($db);

    ?>


    In questo modo se gli include aumentano non sei costretto a infilarli nel punto esatto.
    E' sempre meglio utilizzare delle funzioni per dividere il codice.


    Andrea
    ok grazie ho fatto come mi hai detto....quindi ogni volta mi devo portare dietro solo:
    require_once("accessodatabase.php");

    // DB CONNECT
    $db = dbConnect();


    ..avrei un problema...sto cercando creare un guestbook...e diciamo che per stampare il risultato nella pagina non ho problemi...anche con la query(abbastanza semplice) sono riuscito...

    il mio problema è nell'invio del form...
    ho appunto 2 file... uno "commenti.php" che contiene il form

    <form method="post" action="inviocommento.php">
    Nick:
    <input type="text" id="nome" name="nome">

    Testo:<textarea name="testo" id="testo" cols="45" rows="5"></textarea>


    <input type="submit" value=" Invio ">
    </form>


    l'altro si chiama inviocommento.php ed è questo che mi da l'errore..

    <?php
    require_once("accessodatabase.php");

    // DB CONNECT
    $db = dbConnect();

    $query = 'INSERT INTO `guestbook` (`id`, `nome`, `messaggio`, `data`, `ora`, `ip`) VALUES (NULL, \'carica\', \'messaggio\', CURDATE(), CURTIME(), \'ip\');';

    // questa parte che segue non so se sia necessaria...
    if (mysql_query($query, $db))
    {echo "funziona"}
    else { echo "Errore durante l'installazione";
    }

    mysql_close($db);


    ?>


    io ho lasciato nella query di inserire esattamente la parola carica nel campo nome e la parola messaggio nel campo messaggio, pensando che il problema fosse nel passaggio dei valori delle variabili ma purtroppo nemmeno cosi mi funziona se qualcuno riuscisse a dirmi la sintassi giusta...ho visto in giro e la sintassi sarebbe questa
    $tuavariabile=$_POST['tuavariabile'];
    ma sostituendo non riesco ugualmente...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Ma la domanda quale sarebbe ?

  7. #7
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    non riesco a passare i dati del form al database...
    e l'errore mi viene dato nel file inviocommento.php

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Credo ti manchi un po di teoria ti consiglio di leggerti le guide sul php su html.it

    comunque ...
    1) Se hai fatto una tabella con id chiave primaria e autoincrement non devi passargli null
    questo puo dare errore nella query omettilo; ci pensa mysql a indicizzarlo correttamente.

    2) Vedo non hai messo l'escape dentro la query se vuoi inserire il carattere ' dentro una stringa delimitata da ' devi scrivere \\' o diversamente usi i doppi apici "

    3) Se invii una variabile tramite form a una pagina php devi poi recuperarla.
    A seconda del tipo di passaggio il valore viene inserito in array superglobali diversi.
    $_REQUEST e' il merge di tutte. L'indice dell'array è la stringa corrispondente all'attributo name del tag html nella form.

    n.b. visto che nella forma non sai cosa abbiano inserito è necessaria la funzione mysql_real_escape_string per eliminare eventuali errori dati dall'inserrimento di apici.



    Codice PHP:
    <?php
    require_once("accessodatabase.php");

    // DB CONNECT
    $db dbConnect();

    $nome mysql_real_escape_string($_POST['nome']);

    $query "INSERT INTO `guestbook` (`nome`, `messaggio`, `data`, `ora`, `ip`) VALUES ('".$nome."', 'messaggio', CURDATE(), CURTIME(), 'ip')";

    // questa parte che segue non so se sia necessaria...
    if (mysql_query($query$db))
    {echo 
    "funziona"}
    else { echo 
    "Errore durante l'installazione";
    }

    mysql_close($db);


    ?>

    Cosi forse va manon l'ho provato

    Andrea

  9. #9
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    ho provato a modificare come mi hai detto tu...
    non mi da piu l'errore quando invio il form mi carica appunto la pagina inviocommento.php e rimane vuota...

    ho controllato sul database ma nn la aggiunge...


    EDIT:
    HO LEVATO L'IF FINALE...LASCIANDOLO MI DA ERRORE
    Parse error: syntax error, unexpected '}', expecting ',' or ';' in /membri/mccl/inviocommento.php on line 13
    la riga 13 corrisponde a: {echo "funziona"}

  10. #10
    Utente di HTML.it L'avatar di viri
    Registrato dal
    Jul 2009
    Messaggi
    60
    riepilogo ora il file inviocommenti.php è il seguente...la sintassi sembra corretta ma resituisce un errore..


    <?php
    require_once("accessodatabase.php");

    // DB CONNECT
    $db = dbConnect();

    $nome = mysql_real_escape_string($_POST['nome']);
    $testo = mysql_real_escape_string($_POST['testo']);

    $sql = 'INSERT INTO `guestbook` (`id`, `nome`, `messaggio`, `data`, `ora`, `ip`) VALUES (NULL, '".$nome."', '".$testo."', CURDATE(), CURTIME(), \'k\');';

    mysql_close($db);
    ?>
    mi sapete dire dove sbaglio.....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.