Visualizzazione risultati 1 fino 24 di 24

Discussione: Errore nell'istruzione

  1. #1
    Guest

    Predefinito Errore nell'istruzione

    Il codice sottostante dovrebbe inserire nel database l'id dell'utente e il post inserito in una textarea, ma in realtà non inserisce nulla Cosa ho sbagliato, secondo voi?
    Codice PHP:
    <head>
    <title>Aggiungi un nuovo post</title>
    </head>
    <body>
    <?php
    define
    ('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../f/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include(
    $phpbb_root_path . 'common.' . $phpEx);

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    if (
    $user->data['user_id'] == ANONYMOUS)
    {
    echo
    '<b>Esegui il login o <a href="../f/ucp.php?mode=register">Registrati</a> per aver ancora di più da altutto!<br><iframe src="../f/ucp.php?mode=login" width="100%" height="90%">';
    }

    else
    {
    if(
    $_POST['diario']==""){echo 'Nessuno può vedere i tuoi post.<br>
    <b>Scrivi qui sotto la tua pagina di diario</b>
    <form action="nuovo.php" method="POST">
    <textarea rows="30" cols="100" name="diario" id="diario"></textarea>
    <input type="submit" value="salva">
    </form>'
    ;}
    else{
    $utente="data['user_id']";
    $diario= htmlspecialchars($_POST['diario']);
    $inserimento='INSERT INTO diario(id_utente,post_diario) VALUES("$utente","$diario")';
    echo
    'Ecco fatto! La tua pagina di diario è stata salvata!';
    }
    }
    ?>
    </body>

  2. #2
    Guest

    Predefinito

    Non esegui la query e c'è un errore interno ad essa, prova così:
    Codice PHP:
    $inserimento='INSERT INTO diario(id_utente,post_diario) VALUES("'.$utente.'","'.$diario.'")';
    if(
    $connessione->query($inserimento)){
    echo
    'Ecco fatto! La tua pagina di diario è stata salvata!';
    }
    ---EDIT---
    $connessione=new mysqli("localhost","username","password","db");
    Ultima modifica di mathis : 09-09-2013 alle ore 19.16.39

  3. #3
    Guest

    Predefinito

    Nooooo avevo dimenticato di connettermi al database DX ma si può essere più stupidi? D:
    Ok, ora salva i posts, però sono visibili a tutti gli utenti registrati, visto che salva indistintamente 0 come id...
    Grazie mille per il tuo aiuto :D

  4. #4
    Guest

    Predefinito

    Sei sicuro di aver impostato il campo ID come autoincrement?

  5. #5
    Guest

    Predefinito

    No, perchè servirebbe per identificare l'utente e poi fargli visualizzare i suoi posts...
    Però non ho inserito nessun auto-increment, lo faccio subito!

  6. #6
    Guest

    Predefinito

    Ma non puoi identificare l'utente direttamente tramite un ID autoincrement?
    Il primo a registrarsi avrà ID=1
    Il secondo avrà ID=2
    e cosi via...

    In questo caso il tuo ID cosa contiene?

  7. #7
    Guest

    Predefinito

    L'id dell'utente è acquisito da avphpbb_users (il login che ho inserito è integrato con il mio forum): ogni utente del forum (e di conseguenza del sito), ha una sua ID (che ovviamente è auto-increment).
    Quindi, l'utente è già identificato con un ID auto-increment :D
    id_utente contiene, appunto, l'ID dell'utente che ha inviato il post.
    Nella pagina di visualizzazione, vengono mostrati i post che hanno l'ID uguale a quella dell'utente corrente

  8. #8
    Guest

    Predefinito

    E' ovvio l'errore, tu hai scritto:
    Codice PHP:
    $utente="data['user_id']";
    Leva gli apici e scrivi:
    Codice PHP:
    $utente=data['user_id'];

  9. #9
    Guest

    Predefinito

    Fatto, però php non è d'accordo :(
    Dice Parse error: syntax error, unexpected '[' on line 29

  10. #10
    Guest

    Predefinito

    E se provi così?:
    Codice PHP:
    $utente=$user->data['user_id'];

  11. #11
    Guest

    Predefinito

    Siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii funziona :D grazie mille!

  12. #12
    Guest

    Predefinito

    Di niente
    E' un piacere essere utile.

  13. #13
    Guest

    Predefinito

    Grazie :D

  14. #14
    Guest

    Predefinito

    Scusa ancora...
    Ho aggiornato il codice aggiungendo la data, ora però dice a prescindere "Noi hai ancora scritto nessuna pagina di diario"... Però le pagine di diario vengono salvate correttamente nel database!

    Codice PHP:
    <head>
    <title>Diario</title>
    </head>
    <body>
    <?php
    define
    ('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../f/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include(
    $phpbb_root_path . 'common.' . $phpEx);

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    if (
    $user->data['user_id'] == ANONYMOUS)
    {
    echo
    '<b>Esegui il login o <a href="http://forum.it.altervista.org/f/ucp.php?mode=register">Registrati</a> per aver ancora di più da altutto!<br><iframe src="../f/ucp.php?mode=login" width="100%" height="90%">';
    }

    else
    {
    $connessione= mysqli_connect(localhost,altutto,pw,my_altutto) or die('Ooops! Non sono riuscito a connettermi al database! Contatta altutto@altervista.org se il problema persiste');
    $utente=$user->data['user_id'];
    $query='SELECT post_diario FROM diario WHERE id_utente=".$utente."';
    $risultato = $connessione->query($query);
    $num=mysqli_num_rows($risultato);
    if(
    $num==0){echo 'Non hai ancora scritto nessuna pagina di diario<br>';
    die();
    }
    echo
    '<div> Il';
    $query_data='SELECT giorno FROM diario WHERE id_utente="$id_utente"';
    $risultato_data = $connessione->query($query_data);
    while(
    $array_data = mysqli_fetch_array($risultato_data, MYSQLI_ASSOC)){
    echo
    $array['post_diario'];
    }
    echo
    'hai scritto';
    while(
    $array = mysqli_fetch_array($risultato, MYSQLI_ASSOC)){
    echo
    $array['post_diario'];
    echo
    '</div>';
    }
    }
    ?>
    </body>
    Ho provato a stampare i risultati passo a passo...
    Però quando arriva alla variabile $num rileva 0 pagine inviate, infatti poi esce l'avviso e il caricamento si interrompe... Cosa ho sbagliato?

  15. #15
    Guest

    Predefinito

    Perché hai sbagliato nelle query: $query e $query_data
    Devi scrivere così:
    Codice PHP:
    $query='SELECT post_diario FROM diario WHERE id_utente="'.$utente.'"';

  16. #16
    Guest

    Predefinito

    Gli apici mi vogliono male DX
    Ho corretto entrambe le query:
    Codice PHP:
    $query='SELECT post_diario FROM diario WHERE id_utente="'.$utente.'"';
    Codice PHP:
    $query_data='SELECT giorno FROM diario WHERE id_utente="'.$id_utente.'"';
    Ma il risultato rimane lo stesso :(

  17. #17
    Guest

    Predefinito

    Ti consiglio di controllare meglio l'oggetto della tua connessione.. (Anche se credo sia sbagliato, dovrebbe darti altri errori :confused).

  18. #18
    Guest

    Predefinito

    Ho già eseguito un controllo mettendo un echo dopo ogni operazione... La connessione è corretta (anche perchè altrimenti spunterebbe "oops ecc. ecc.')

  19. #19
    Guest

    Predefinito

    Ma senza apici dovrebbe essere scorretto:
    Codice PHP:
    $connessione = new mysqli("localhost","altutto","pass","my_altutto");
    Prova a scrivere così, sinceramente sono dubbioso sul fatto che come avevi scritto sia corretto.

  20. #20
    Guest

    Predefinito

    Ho scritto quello che mi hai detto, niente da fare! :(

  21. #21
    Guest

    Predefinito

    Sinceramente mi sembra strano perché a me funziona correttamente.
    Sei sicuro di aver inserito i corretti riferimenti alla tabella e/o ai campi?

  22. #22
    Guest

    Predefinito

    No! Ditemi che non è vero! Avevo scritto una variabile sbagliata DDD:
    Ultimo problema: non visualizza la data, ma solo
    "Il hai scritto [post]"

  23. #23
    Guest

    Predefinito

    L'importante è che te ne sia accorto
    Ciao! :)

  24. #24
    Guest

    Predefinito

    Ok, grazie :D
    Ultima modifica di altutto : 10-09-2013 alle ore 19.09.44 Motivo: Problema risolto ;D

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •