• ModSenior

    $title="" sovrascrive il contenuto di title, manca un = nell'if.

    Devi fare un'altra query per recuperare l'annuncio cosi da mostrarlo di base ogni volta accedi alla pagina.


  • User

    @Thedarkita said:

    $title="" sovrascrive il contenuto di title, manca un = nell'if.

    Devi fare un'altra query per recuperare l'annuncio cosi da mostrarlo di base ogni volta accedi alla pagina.

    Oh vero, grazie tante!!! 🙂

    mi potresti fare un esempio, cosi da capire meglio?...chiedo perchè non sono pratica...


  • ModSenior

    Dipende di preciso come vuoi fare, di norma inserimento e modifica non vengono mischiati in questo modo.


  • User

    Non voglio mischiare l'inserimento e la modifica in una query, ma solo far si che un utente loggato veda il contenuto..

    Dovrei prima usare SELECT e poi richiamare e stampare tutto con il mysql_fetch_array?


  • ModSenior

    Si, devi fare in quel modo.


  • User

    @Thedarkita said:

    Si, devi fare in quel modo.

    grazie mille, ho fatto come hai detto..funziona!!
    Però non capisco perchè mi inserisce gli annunci doppi..non solo nella pagweb, ma anche nel db..il codice delle due pagine...una solo per il form e l'altra contenente le query

    [PHP]<?php

    session_start();

    Include("varDB.inc");

    $conn=mysql_connect("localhost","root","");
    mysql_select_db("sito");
    $messaggio="";
    ?>

    <html>

    <head>
    

    <script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
    <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
    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= "sessione scaduta";
                                }
    ?>
       </ul>
                            </div>
    

    <?php

    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{

    echo"sessione scaduta";

    }
    ?>

        <script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b473294f5","550561","M1QBYUMCDUAEWkRfWgoeNkdYTAVcF0xdGUMGQgZaHxMLQw==",0,61,new Date().getTime(),"","","","",""]);</script>
    

    <script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b473294f5","550561","M1QBYUMCDUAEWkRfWgoeNkdYTAVcF0xdGUMGQgZaHxMLQw==",0,59,new Date().getTime(),"","","","",""]);</script>
    </body>

    </html>[/PHP]

    [PHP]<?php
    session_start();
    include("varDB.inc");
    $conn=mysql_connect("localhost","root","");
    mysql_select_db("sito");

    ?>

    <html>

    <head>
    <!-- striscia in alto -->
    <title>annunci</title>
    <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
    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= "sessione scaduta";
                                }
    
    
    
    $title=$_POST['title'];
    

    $body=$_POST['body'];

    if($title=="" ||$body==""){
    echo "Non hai riempito i campi";

        }else{
    
    $inserimentoannunci=mysql_query("INSERT INTO annunci_cerco (title,body) VALUES ('$title','$body')");
    }
    
    if($inserimentoannunci){
    echo"".$title.""; 
    echo"<br>";
    echo"".$body."" ;
    
    
    
    }else{
    $messaggio="errore";
    }
    
    
    $risultato = mysql_query("SELECT * FROM annunci_cerco");
    

    while ($riga = mysql_fetch_array($risultato)) {
    echo $riga['title'];
    echo"<br>";
    echo"<br>";
    echo"<br>";
    echo"<br>";
    echo $riga['body'];

    }

    mysql_close();
    ?>
       </ul>
                            </div>
    

    </body>

    </html>

    [/PHP]


  • ModSenior

    Il problema è che tu per inserire mandi alla pagina X, che non inserisce solamente, ma visualizza anche. Basta refleshare quella pagina per avere un altro inserimento identico.


  • User

    no, ho cambiato destinazione e creato due pagine diverse, una per il form che invia i dati ad un'altra pagina..se non errro, perchè mettendo in commento questa parte di codice non si pone piùil problema...ma vorrei sapere se è giusto fare così...

    [PHP]<?php
    session_start();
    include("varDB.inc");
    $conn=mysql_connect("localhost","root","");
    mysql_select_db("sito");

    ?>

    <html>

    <head>
    <!-- striscia in alto -->
    <title>annunci</title>
    <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
    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= "sessione scaduta";
                                }
    
    
    
    $title=$_POST['title'];
    

    $body=$_POST['body'];

    if($title=="" ||$body==""){
    echo "Non hai riempito i campi";

        }else{
    
    $inserimentoannunci=mysql_query("INSERT INTO annunci_cerco (title,body) VALUES ('$title','$body')");
    }
    
    if($inserimentoannunci){
    
    $risultato = mysql_query("SELECT * FROM annunci_cerco");
    

    while ($riga = mysql_fetch_array($risultato)) {
    echo $riga['title'];
    echo"<br>";
    echo"<br>";
    echo"<br>";
    echo"<br>";
    echo $riga['body'];

    }
    //echo"".$title."";
    //echo"<br>";
    //echo"".$body."" ;

    }else{
    $messaggio="errore";
    }
    
    
    
    
    mysql_close();
    ?>
       </ul>
                            </div>
    

    </body>

    </html>

    [/PHP]

    Dove si vede la parte messa in commento...è giusto così o non si può fare?


  • ModSenior

    Cioè vorresti togliere i commenti?


  • User

    DOvrei togliere la parte in commento, perchè altrimenti mi stampa due volte quello che scrivo...però non so se posso mettere dentro un if while...


  • ModSenior

    Allora non inseriva 2 volte, semplicemente stampava 2 volte. È normale che se tu inserisci nella tabella, e dopo dici stampami la tabella, hai già stampato 1 volta ciò che hai appena inserito. Per cui non c'è motivo che fai altri echo.


  • User

    Però inseriva lo stesso due volte nel db, lo stesso messaggio...allora posso togliere quello che ho già messo in commento?


  • ModSenior

    Si lo puoi togliere tranquillamente, visto che non ti serve a nulla.


  • User

    ok, ti ringrazio!


  • User

    però inserisce sempre doppio messaggio nel db..e vedo il titolo attaccato al messaggio anche se metto il br...come posso risolvere?


  • User

    anzi ogni volta che ricarico la pagina mi trovo altri messaggi identici, e lo stesso capita nel db!!


  • ModSenior

    Questo è normale, visto che hai unito visualizzazione e inserimento nella stessa pagina, come ti avevo già detto prima dovrebbero essere 2 cose separate.


  • User

    @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!


  • User

    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 59

    Notice: 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]


  • ModSenior

    Significa che le 2 variabili POST non hanno quei 2 indici che stai utilizzando al momento dell'accesso alla pagina.