Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    59

    index.php e visualizzazione errata

    Salve, sto sviluppando un programma in php e ho realizzato il tutto gestendo da index.php il richiamo delle pagine in particolare della parte centrale del "sito/programma", ora accade che quando clicco su "cerca contatti" mi venga visualizzata correttamente la pagina nel blocco centrale, ma appena effettuo una ricerca in quella pagina, il tutto mi riappare senza il contorno per capirci il codice di index.php è il seguente:

    Codice PHP:
    <?
    include "header.php";
    ?>
    <html>
    <title>
        GestALL Lite Version - La soluzione per la gestione della tua azienda
    </title>
        <div id="box">
        <div id="titolo">GestALL LT v. 1.0</div>
        <div id="header"></div>


        <div id="left">
        
            <div style="text-align: center;"><div id="home">[url="index.php?t=Menu Principale"][img]imgs/home_1.gif[/img][/url]</div></div>
            

    <div id="titolo_m" onClick="expandcontent('sc1')" style="cursor:hand; cursor:pointer">Gestione Contatti</div>
                <div id="sc1" class="switchcontent">
                    [url="index.php?p=insertContact.php&t=Inserisci Contatto"]Inserisci Contatto[/url]</br>
                    [url="index.php?p=insertCompany.php&t=Inserisci Azienda"]Inserisci Azienda[/url]</br>
                    [url="index.php?p=viewContact.php&t=Visualizza Contatti"]Visualizza Contatti[/url]</br>
                    [url="index.php?p=viewCompany.php&t=visualizza Aziende "]Visualizza Aziende[/url]</br>
                    [url="index.php?p=search.php&t=Cerca Contatti "]Cerca Contatti[/url]</br>
                </div>
            <div id="titolo_m" onClick="expandcontent('sc2')" style="cursor:hand; cursor:pointer">[b]Configurazione[/b]</div>
                <div id="sc2" class="switchcontent">
                    [url="index.php?p=configuration.php&t=Configurazione Visualizzazione"]Configurazione Visualizzazione[/url]</br>
                </div>
        </div>
        
        <div id="path">
            <? 
                
    if(isset($_GET['t']) && $_GET['t']) 
                    echo 
    "[b]GestALL Lite Version - $_GET[t][/b]";
            
    ?>
        </div>
            
        <div id="center">
            <?
                
    if(isset($_GET['p']) && $_GET['p'])
                {
                    if(
    is_file($_GET['p']))
                        require(
    $_GET['p']);
                    else
                        require(
    'home.php');
                }
            
    ?>
        </div>
        
        <div id="footer">Footer</div>
        </div>
    </body>
    </html>
    mentre quello del file search.php è il seguente:

    Codice PHP:
    <?
       
    require("script/functions.php"); 
    ?>

    <p align="center">Cerca Contatti</p>

    <form method="POST"  name="modulo" action="search.php">

    <table width="400" border="0" bordercolor="#000000" align=center>
    <tr>
        <td align='center' colspan=2>[b]Cerca Contatti[/b]</td>
    </tr>
    <tr>
        <td align='center'>Cerca per</td>
    </tr>
    <tr>
              <td width="50%">
                <select name="CercaContattoPer" size="1"> 
                 <?php 
                    $risultati 
    elencoColonne("contatti");
                    
    $maxRisultati count($risultati)-1;
                    for(
    $i=0$i <=$maxRisultati$i++)
                    {
                        echo 
    "<option value=$risultati[$i]>$risultati[$i]</option>";
                    }
                
    ?>              
                </select>
              </td>
                <td width="50%"><input type='text' name='CercaContattoPerTesto' size='50'></td>          
    <tr>
            <td width="100%" colspan=2 align="center"><input type="submit" name="CercaContatto" value="CercaContatto"></td>
    </tr>
    <tr>
            <td align='center' colspan=2></td>
    </tr>
    <tr>
            <td align='center' colspan=2></td>
    </tr>
    <tr>
            <td align='center' colspan=2></td>
    </tr>
    <tr>
            <td align='center' colspan=2>[b]Cerca Aziende[/b]</td>
    </tr>
    <tr>
        <td align='center'>Cerca per</td>
    </tr>
    <tr>
              <td width="50%">
                <select name="CercaAziendaPer" size="1"> 
                 <?php 
                    $risultatiAziende 
    elencoColonne("aziende");
                    
    $maxRisultatiAziende count($risultatiAziende)-1;
                    for(
    $i=0$i <=$maxRisultatiAziende$i++)
                    {
                        echo 
    "<option value=$risultatiAziende[$i]>$risultatiAziende[$i]</option>";
                    }
                
    ?>              
                </select>
              </td>
                <td width="50%"><input type='text' name='CercaAziendePerTesto' size='50'></td>          
    <tr>
            <td width="100%" colspan=2 align="center"><input type="submit" name="CercaAziende" value="CercaAziende"></td>
    </tr>
    </table>
    </form>
    <?

        leggiConfGenerale
    ();
        if( isset(
    $_POST['CercaContatto']))
        {
            if(
    $_POST['CercaContattoPerTesto'] == "")
                echo 
    "Non hai inserito il testo da ricercare";
            else
            {
                
    $arrDatiConf leggiConfContact();                 
                
    $j=0;
                for(
    $i 0$i <= $maxRisultati $i++)
                {
                    if(
    $arrDatiConf[$i][1] == 1)
                    {            
                        
    $campi .= "contatti." $risultati[$i] . ",";
                        
    $header[$j] = $risultati[$i];
                        
    $j++;
                    }
                }
                
    $campoSuCuiCercare "contatti." $_POST['CercaContattoPer'];
                
    $campoDaCercare $_POST['CercaContattoPerTesto'];
                
    $sql "SELECT $campi tipologia_contatto.TipoContatto,aziende.NomeSocieta FROM contatti INNER JOIN aziende ON (contatti.IDazienda=aziende.IDAzienda) INNER JOIN tipologia_contatto ON (contatti.IDTipoContatto=Tipologia_contatto.IDTipoContatto) WHERE ($campoSuCuiCercare LIKE '%$campoDaCercare%')";
                
                
    $arrayRisultati risultatiXinterariga($sql);                      
                
    intabellaDati($header,$arrayRisultati,1);
            }
            
        }
        
        if( isset(
    $_POST['CercaAziende']))
        {
            if(
    $_POST['CercaAziendePerTesto'] == "")
                echo 
    "Non hai inserito il testo da ricercare";
            else
            {
                
    $arrDatiConfAziende leggiConfCompany();                 
                
    $j=0;
                for(
    $i 0$i <= $maxRisultatiAziende $i++)
                {
                    if(
    $arrDatiConfAziende[$i][1] == 1)
                    {
                        if(
    $j<>0)
                            
    $campiAziende .= ",";                      
                        
    $campiAziende .= $risultatiAziende[$i];
                        
    $headerAziende[$j] = $risultatiAziende[$i];
                        
    $j++;
                    }
                }
                
    $campoSuCuiCercare $_POST['CercaAziendaPer'];
                
    $campoDaCercare $_POST['CercaAziendePerTesto'];
                
    $sql "SELECT $campiAziende FROM aziende WHERE ($campoSuCuiCercare LIKE '%$campoDaCercare%')";
                
                
    $arrayRisultatiAziende risultatiXinterariga($sql);                      
                
    intabellaDati($headerAziende,$arrayRisultatiAziende,0);
            }
            
        }
           
    ?>
    Quando clicco su cerca lui dovrebbe rileggere la pagina così com'è e incollarmi i risultati sotto intabellati, invece è come se se ne fregasse di tutto e mi appare la sola pagina search.php senza nessun contorno in modo brutale e la tabella del risultato trovato sotto, come posso fare per fare in modo che ci sia sempre lo stesso contorno dichiarato dentro index.php e visualizzare i risultati nella parte centrale?

    Scusate la lungaggine del post ma senza tutto il codice è difficile comprendere il problema.

    Ringrazio in anticipo e saluto

  2. #2
    Ciao, il discorso è questo:
    quando clicchi su cerca contatti ricarichi la index ed iserisci l'output dello script search.php all'interno della pagina e tutto va bene.
    Ma poi guarda la action del gorm di ricerca:
    <form method="POST" name="modulo" action="search.php">
    le variabili vengono mandate tramite richiesta di tipo POST alla pagina search.php che è l'unica ad essere caricata, quindi ti viene mostrato solo il suo contenuto perchè la index non viene richiamata da nessuna parte.
    Per finire dovresti mettere nella action del form index.php e passare i paramtri per richiamare lo script search.php all'interno che erano mi sembra p=search.php, ora non posso cpontrollare tutto il tuo codice
    Poi solo un consiglio:
    Codice PHP:
    <?
                
    if(isset($_GET['p']) && $_GET['p'])
                {
                    if(
    is_file($_GET['p']))
                        require(
    $_GET['p']);
                    else
                        require(
    'home.php');
                }
    ?>
    qui hai un buco di sicurezza devastante, un utente modificando la url del tuo sito puo' accedere a tutti gli script, attenzione!!!
    Ciao!
    =======================
    http://www.abidibo.net

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    59
    Originariamente inviato da abidibo
    Ciao, il discorso è questo:
    quando clicchi su cerca contatti ricarichi la index ed iserisci l'output dello script search.php all'interno della pagina e tutto va bene.
    Ma poi guarda la action del gorm di ricerca:
    <form method="POST" name="modulo" action="search.php">
    le variabili vengono mandate tramite richiesta di tipo POST alla pagina search.php che è l'unica ad essere caricata, quindi ti viene mostrato solo il suo contenuto perchè la index non viene richiamata da nessuna parte.
    Per finire dovresti mettere nella action del form index.php e passare i paramtri per richiamare lo script search.php all'interno che erano mi sembra p=search.php, ora non posso cpontrollare tutto il tuo codice
    Poi solo un consiglio:
    Codice PHP:
    <?
                
    if(isset($_GET['p']) && $_GET['p'])
                {
                    if(
    is_file($_GET['p']))
                        require(
    $_GET['p']);
                    else
                        require(
    'home.php');
                }
    ?>
    qui hai un buco di sicurezza devastante, un utente modificando la url del tuo sito puo' accedere a tutti gli script, attenzione!!!
    Ciao!

    Grazie dell'informazione, non capisco come sono stato così stupido a non arrivarci, adesso ho modificato la riga dell'action e tutto funziona bene, per quanto riguarda il baco di sicurezza nel file index.php non riesco a capire, certo qualcuno potrebbe inserire il link diretto alla pagina, ma io avevo intenzione di mettere nell'intestazione di tutti i file la verifica del token dell'utente in modo che se non è corretto l'utente o non è loggato viene scritto solo che non si è autenticati

  4. #4
    io avevo intenzione di mettere nell'intestazione di tutti i file la verifica del token dell'utente in modo che se non è corretto l'utente o non è loggato viene scritto solo che non si è autenticati
    se vuoi metter una verifica va bene, ma va messa nella pagina index.php, non all'interno del file richiamato, perchè altrimenti non risolvi il problema nel senso che i file che scrivi e proteggi non possono essere eseguiti ma tutti gli altri si! ed uno puo' mettere robe dele genere:
    index.php?p=../../deleteall.php
    solo un esempio ovviamente, in questo modo lo script include deleteall e ciao ciao.
    Se permetti il caricamento di file solo agi utenti loggati va bene, sempre che siano affidabili e sempre trascurando il problema CSRF a meno che il token di cui parli ti protegga (non ho visto il codice).
    A mio avviso un buon metodo per proteggersi è creare una whitelist di pagine richiamabili da url, ad esempio una cosa del genere:
    Codice PHP:
    $whitelist = array('search.php''home.php''pinolo.php');
    $p $_POST['p'];
    if(
    in_array($p$whitelist)) require($p);
    else exit(
    "c'hai provato cazzone"); 
    cosi' sei sicuro che gli unici script richiamabili sono quelli che vuoi tu....
    =======================
    http://www.abidibo.net

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.