- Home
- Categorie
- Coding e Sistemistica
- Coding
- non inserisce i dati nel db
-
ok, ti ringrazio!
-
però inserisce sempre doppio messaggio nel db..e vedo il titolo attaccato al messaggio anche se metto il br...come posso risolvere?
-
anzi ogni volta che ricarico la pagina mi trovo altri messaggi identici, e lo stesso capita nel db!!
-
Questo è normale, visto che hai unito visualizzazione e inserimento nella stessa pagina, come ti avevo già detto prima dovrebbero essere 2 cose separate.
-
@Thedarkita said:
Questo è normale, visto che hai unito visualizzazione e inserimento nella stessa pagina, come ti avevo già detto prima dovrebbero essere 2 cose separate.
Hai ragione, scusa non avevo ben capito cosa..pensavo si riferisse solo alla stampa a video..provvedo a correggere!
-
Ho creato un'altra pagina..solo che vedo errori di notice, anche se ho richiamato le varibiali...ecco il codice..
Notice: Undefined index: title in C:\xampp\htdocs\prova\annunci.php on line 59Notice: Undefined index: body in C:\xampp\htdocs\prova\annunci.php on line 60
[PHP]<?php
//inizio la sessione utente
session_start();
include("varDB.inc");
//creo una connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");?>
<html> <!-- striscia in alto-->
<head> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
$title=$_POST['title'];
$body=$_POST['body'];
$risultato = mysql_query("SELECT * FROM annunci_cerco WHERE title='$title' AND body='$body' ");
//mostro tutti gli annunci inseriti
while ($riga = mysql_fetch_array($risultato)) {
echo" <font color='black' face='times new roman' size='4px'>";
echo $riga['title'] ;echo"<br>";
echo"<br>";
echo"<br>";
echo"<font color='black' face='times new roman' size='4px'>";
echo $riga['body'];}
mysql_close();
?>
</body></html>
[/PHP]
-
Significa che le 2 variabili POST non hanno quei 2 indici che stai utilizzando al momento dell'accesso alla pagina.
-
@Thedarkita said:
Significa che le 2 variabili POST non hanno quei 2 indici che stai utilizzando al momento dell'accesso alla pagina.
mmm...eppure a me sembra di aver messo gli stessi indici...
-
Si, ma alla pagina ci arrivi mediante il form? Altrimenti non invi nulla con il metodo post ed è normale vedere quei messaggi di avviso.
-
hai ragione..non ci arrivo tramite il form, ma non saprei come altro richiamare le variabili title e body...
-
Ma in questa pagina, a cosa ti servono?
-
[PHP]<?php
//inizio la sessione utente
session_start();
include("varDB.inc");
//creo una connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");
//inizializzo la variabile messaggio
$messaggio="";?>
<html> <!-- striscia in alto-->
<head> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
$risultato = mysql_query("SELECT * FROM annunci_cerco"); //mostro tutti gli annunci inseriti
while ($riga = mysql_fetch_array($risultato)) {
echo" <font color='black' face='times new roman' size='4px'>";
echo $riga['title'] ;echo"<br>";
echo"<br>";
echo"<br>";
echo"<font color='black' face='times new roman' size='4px'>";
echo $riga['body'];} mysql_close();
?>
</body></html>
[/PHP]hai ragione, non mi servono a nulla, perchè prima nella query della select avevo messo le variabili title e body, mentre togliendo tutto funziona alla perfezione!ecco il codice corretto...
però un'altra cosa.. come faccio ad andare a capo?perchè il br non funziona e il body e il titolo successivo sono attaccati...
-
Il br devi metterlo dopo echo $riga['body']; altrimenti non ottieni ciò che vuoi.
È fondamentale che studi un pò di html, perchè lavorando con php si da per scontato di sapere perfettamente come funziona html, altrimenti lavorare con moduli o anche un semplice andare a capo ti fà perdere moltissimo tempo, in quanto vai per tentativi.
-
hai ragione..ti chiedo anche se posso mettere le stringhe in questo modo o c'è un modo per accumunarne?
[PHP]echo $riga['title']; echo"<br> "; echo $riga['body'];
[/PHP]
-
Puoi fare cosi:
[php]
echo $riga['title']."<br>".$riga['body'];
[/php]
-
@Thedarkita said:
Puoi fare cosi:
[php]
echo $riga['title']."<br>".$riga['body'];
[/php]Grazie del tuo prezioso aiuto!!Adesso però vorrei che l'utente visualizzasse l'ultimo annuncio inseritoe poi potesse tornare agli altri..come posso fare?
-
Volevo chiedere come faccio ad inserire il nome dell'autore dei messaggi nella tabella annunci?
perchè quando inserisco gli annunci, non inserisce il username dell'autore nel db, e ogni volta che inserisco l'annuncio lo visualizzo con il nome dell'utente che ha eseguito la sessione...allego il codice...non so se son stata molto chiara...
[PHP]<?php
//inizio la sessione utente
session_start();
//includo i parametri del db
Include("varDB.inc");
//creo una connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","") or die;
mysql_select_db("sito") or die;
//inizializzo la variabile messaggio
$messaggio="";
?><html> <!-- striscia in alto-->
<head> <!-- css esterno --> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <!-- strisci in alto --> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
//controllo che ci sia una sessione utente, altrimenti "sessione scaduta", mostro il form di inserimento dati
if (isset($_SESSION['utente'])){?>
<form method="POST" action="entra.php">
<p>Inserisci i tuoi annunci</p>Titolo<input type="text" name="title" value=""/><br> Testo<textarea name="body" cols="10" rows="10"></textarea> <input type="submit" name="invia" value="inserisci"/>
</form>
<?php}else{
$messaggio="<font color='black' face='times new roman' size='4px'>sessione scaduta";
}
//chiudo la connessione al db
mysql_close();
?></body>
</html>[/PHP]
[PHP]<?php
//inizio la sessione utente
session_start();
include("varDB.inc");
//creo una connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","") or die;
mysql_select_db("sito") or die;
//inizializzo la variabile messaggio
$messaggio="";?>
<html>
<head>
<!-- striscia in alto -->
<title>annunci</title>
<!--css esterno-->
<link rel="stylesheet" type="text/css" href="stile.css">
</head>
<body>
<table>
<tr>
<td>
<p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p></td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio="<font color='black' face='times new roman' size='4px'>sessione scaduta"; }
//richiamo i dati inseriti nel form tramite la variabile superglobale $_POST
$username=$_SESSION['utente'];
$title=$_POST['title'];
$body=$_POST['body'];
//eseguo i controlli relativi alla compilazione dati
if($title=="" ||$body==""){
echo "<font color='black' face='times new roman' size='4px'>Non hai riempito i campi";}else{ //se è tutto ok, inserisco i dati nel db $inserimentoannunci=mysql_query("INSERT INTO annunci_cerco (username,title,body) VALUES ('$username','$title','$body')"); } //se i dati sono inseriti mostro gli annunci inseriti if($inserimentoannunci){ echo"inserimento riuscito"; //header location visualizza.php //?id:articolo=ultimo header("refresh:2; URL=annunci.php"); //se ci sono problemi stampo messaggio di errore }else{ $messaggio="<font color='black' face='times new roman' size='4px'>errore"; } //inteerrrompo la connessione con il db mysql_close(); ?> </ul> </div>
</body>
</html>
[/PHP]
[PHP]<?php
//inizio la sessione utente
session_start();
//includo i parametri del db
include("varDB.inc");
//creo una connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","");
mysql_select_db("sito");
//inizializzo la variabile messaggio
$messaggio="";?>
<html> <!-- striscia in alto-->
<head> <!-- css esterno --> <link rel="stylesheet" type="text/css" href="stile.css"> <title>Inserisci </title> </head> <body> <!-- striscia in alto --> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table> <div id="menu"> <ul> <?php //controllo che ci sia una sessione utente, altrimenti "sessione scaduta" if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
//seleziono gli annunci inseriti del db e li mostro $risultato = mysql_query("SELECT * FROM annunci_cerco"); //mostro tutti gli annunci inseriti
while ($riga = mysql_fetch_array($risultato)) {
echo" <font color='black' face='times new roman' size='4px'>";
echo"<br> ";
echo "<br>";
echo "<br>";
echo"<br>";
echo"<font color='black' face='times new roman' size='4px'>";
?>
<table id="table1"><tr>
<td id="testo1"><?php echo"autore: "; ?></td>
<td id="testo1"><?php echo"" . $_SESSION['utente'] . "";?></td>
<td id="testo1"><?php echo"cancella";?></td>
<td id="testo1"><?php echo"modifica";?></td></tr>
<tr> <td id="testo1"><?php echo "titolo:" ?></td> <td id="testo"><?php echo $riga['title']; ?></td> </tr> <tr> <td id="testo1"> <?php echo "body"; ?></td> <td id="testo"> <?php echo $riga['body']; ?></td> </tr>
</table>
<?php }
//chiudo la connessione al db
mysql_close();
?>
</body></html>
[/PHP]
-
Devi usare $riga['username'] visto che lo hai inserito nella tabella del database.
-
@Thedarkita said:
Devi usare $riga['username'] visto che lo hai inserito nella tabella del database.
grazie funziona perfettamente!!
-
Grazie!!!
Volevo chiedere un'altra cosa..perchè ho un problema...
Quando cerco di cancellare i messaggi inseriti, ho fatto in modo che se non è quell'utente che l'ha inserito legga il messaggio "non sei l'autore del messaggio", fin li funziona, ma quando l'utente che inserisce il messggio cerca di cancellarlo leggo "non sei l'autore del messaggio" però cancella effettivamente il messsaggio dal db, ma perchè non vedo il messaggio "dati cancellati"?
ho fatto un po di confusione...
[PHP]<?php
//inizio la sessione utente
session_start();
//includo i parametri del db
include("varDB.inc");
//apro la connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","") or die;
mysql_select_db("sito");//inizializzo la variabile messaggio
$messaggio="";?>
<html> <!-- striscia in alto-->
<head> <!-- css esterno --> <link rel="stylesheet" type="text/css" href="stile.css"> <title>cancella annunci </title> </head> <body> <!-- striscia in alto --> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table>
<div id="menu">
<ul>
<?php
//controllo che ci sia una sessione utente, altrimenti "sessione scaduta"if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
if (isset($_SESSION['utente'])){
?>
<form method="POST" action="cancellato1.php">
<p><font face="Times new roman" color="black" size="4px">vuoi cancellare il messaggio?</p>Si<input type="radio" name="canc" value="si"/>
No<input type="radio" name="canc" value="no"/>
<br>
<br>
<input type="submit" value="invia" name="invia"/></form>
<?php
}else{$messaggio="sessione scaduta";
}mysql_close();
?>
</body>
</html>[/PHP]questa è la pag che mi da problemi..
[PHP]<?php
//inizio la sessione utente
session_start();
//includo i parametri del db
include("varDB.inc");
//apro la connessione al db e lo seleziono
$conn=mysql_connect("localhost","root","") or die;
mysql_select_db("sito");//inizializzo la variabile messaggio
$messaggio="";?>
<html> <!-- striscia in alto-->
<head> <!-- css esterno --> <link rel="stylesheet" type="text/css" href="stile.css"> <title>cancella annunci </title> </head> <body> <!-- striscia in alto --> <table> <tr> <td> <p><font face="magneto" color="black" size="20px"><center><b><i>"LA BOTTEGA DELL'USATO"</i></b></center></p> </td> </tr> </table>
<div id="menu">
<ul>
<?php
//controllo che ci sia una sessione utente, altrimenti "sessione scaduta"if(isset($_SESSION['utente'])){ echo"<li><font face='georgia' color='red'size='4px'>ciao " . $_SESSION['utente'] . "</li>"; echo"<li><a href='login.php?azione=logout'>logout</a></li>"; echo"<li><a href='cancellato.php'>cancella</a></li>"; echo"<br>"; echo"<br>"; }else{ $messaggio= "<font color='black' face='times new roman' size='4px'>sessione scaduta"; } ?> </ul> </div>
<?php
// recupero i dati della sessione utente in corso
$autore=$_SESSION['utente'];
$c="cancella";
//l'azione cancella prevede l'opzione si/no
$c = isset($_GET['cancella']) ? $_GET['cancella'] : "";if ($autore=$_SESSION['utente']){
if ($_POST["canc"]=="si") { // se sceglie si //eseguo la query per la cancellazione dell'account $query="DELETE FROM annunci_cerco WHERE autore='$autore'"; $res=mysql_query($query) or die("fallita"); // in caso di problemi con la query $messaggio="dati cancellati"; }else{ $messaggio="non sei l'autore del messaggio";
}
//altrimenti se sceglgo no i dati non vengono cancellati
if($_POST["canc"]=="no"){
echo"i dati non sono stati cancellati";}else{ echo"non sei l'autore del messaggio"; }
}
//chiudo la connessione con il db
mysql_close();?>
</body>
</html> [/PHP]