-
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 :incavolat 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>
-
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");
-
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
-
Sei sicuro di aver impostato il campo ID come autoincrement? :tongue
-
No, perchè servirebbe per identificare l'utente e poi fargli visualizzare i suoi posts...
Però non ho inserito nessun auto-increment, lo faccio subito!
-
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?
-
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
-
E' ovvio l'errore, tu hai scritto:
Codice PHP:
$utente="data['user_id']";
Leva gli apici e scrivi:
Codice PHP:
$utente=data['user_id'];
-
Fatto, però php non è d'accordo :(
Dice Parse error: syntax error, unexpected '[' on line 29
-
E se provi così?:
Codice PHP:
$utente=$user->data['user_id'];
-
Siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii funziona :D grazie mille!
-
Di niente :mrgreen:
E' un piacere essere utile.
-
-
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?
-
Perché hai sbagliato nelle query: $query e $query_data
Devi scrivere così:
Codice PHP:
$query='SELECT post_diario FROM diario WHERE id_utente="'.$utente.'"';
-
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 :(
-
Ti consiglio di controllare meglio l'oggetto della tua connessione.. (Anche se credo sia sbagliato, dovrebbe darti altri errori :confused).
-
Ho già eseguito un controllo mettendo un echo dopo ogni operazione... La connessione è corretta (anche perchè altrimenti spunterebbe "oops ecc. ecc.')
-
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.
-
Ho scritto quello che mi hai detto, niente da fare! :(
-
Sinceramente mi sembra strano perché a me funziona correttamente.
Sei sicuro di aver inserito i corretti riferimenti alla tabella e/o ai campi? :tongue
-
No! Ditemi che non è vero! Avevo scritto una variabile sbagliata DDD:
Ultimo problema: non visualizza la data, ma solo
"Il hai scritto [post]"
-
L'importante è che te ne sia accorto :tongue
Ciao! :)
-