Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problemone con Header

  1. #1

    Problemone con Header

    Salve sono un programmatore "semiì-professionista" ho fatto per un sito internet per una cooperativa coop-opportunita.it ed in questo sito ho usato parecchio gli header ma non me ne funziona neanche uno!!!!! E premetto che in locale con easy php mi funzionavano tutti!!!!!!!!
    Ho provato anche la funzione ob_start() ma neanche quella funziona e non mi fa errori!!!!
    Datemi una mano vi prego

    questo è un esempio di script dove uso gli header:


    Codice PHP:
    if(isset($_POST["agg"]))
    {    
        if(
    $_POST["nome"]!=NULL)
        {
            
    /*creo il codice prodotto e controllo se già esiste*/
            
    $cod_prod=rand(0,99)."_prod_".rand(0,999);
            
    $strSQL="SELECT cod_prod FROM prodotti WHERE cod_prod LIKE '%$cod_prod%'";
            
    $ris=query($strSQL,0);
            
    /*controllo se esistono altri prodotti con lo stesso codice*/
            
    if($ris!=NULL)
            {
                  
    $riga=mysql_fetch_array($ris);
                while(!
    strcmp($cod_prod,$riga["cod_prod"]))
                {
                    
    $cod_prod=rand(0,99)."_prod_".rand(0,999);
                    
    $strSQL="SELECT cod_prod FROM prodotti WHERE cod_prod ='%$cod_prod%'";
                    
    $riga=query($strSQL,1);
                }
            }
            
    /*inserisco il prodotto nel DB*/
            
    $nome=apo($_POST["nome"]);
            
    $desc=apo($_POST["desc"]);
            
    $quant=$_POST["quant"];
            
    $prezzo=$_POST["prezzo"];
            
    $data=date("Y-m-d g:i:s");
            
    $strSQL="INSERT INTO prodotti (cod_prod,nome,descrizione,quantita,prezzo,data)     VALUES('$cod_prod','$nome','$desc','$quant','$prezzo','$data')";
            if(
    $query_rep==and $file=1
            {
                
    //indirizzo di esempio
                
    header("location: [url]http://www.google.it/[/url]");
            }
            else 
            {
                echo(
    "<font size='-1'>problemi con caricamento immagini o caricamento prodotto</font>
    "
    );
                
    $strSQL="DELETE FROM prodotti WHERE cod_prod LIKE '%$cod_prod%'";
                
    query($strSQL,0);
                
    canc_dir($cod_prod);
            }
        }


  2. #2
    Ciao, sei sicuro che ti funzionano?
    header("location: http://www.google.it/");
    non può funzionare primo perchè dovresti fare l'escape dei doppi apici, e poi per il redirect bisogna passare l'url e non un link html, quindi il codice diventa:
    header("location: http://www.google.it");

    Inoltre gli header devono essere utilizzati prima di qualsiasi output, anche se nel codice che hia postato non ce ne sono, lo aggiunco solo a titolo informativo.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    http://www.google.it/ lo ha scritto il forum...
    per farti capire tu faccio un altro esempio forse più calzante in quanto io non devo collegarmi a pagine eseterne ma ad una pagina del mio sito:
    esempio:
    header("location: mia_pag.php");

  4. #4
    Ok, non ci avevo pensato,
    allora hai controllato che prima dell'header non ci siano output?
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Originariamente inviato da codencode
    Ok, non ci avevo pensato,
    allora hai controllato che prima dell'header non ci siano output?
    Quoto: nota che viene considerato output anche solo uno spazio bianco, un a capo o qualsiasi altro carattere, anche quando è DOPO il ?> finale di un file incluso...

    L'idea è che se stai eseguendo la index.php, le sue prime righe, prima di qualsiasi altra cosa, inclusioni, tutto, proprio le prime, siano:

    <?php
    ob_start();

    .....

    in questo modo sei certo che qualsiasi file tu includa dopo, non ti inficerà la possibilità di usare header.

    in più, spesso header("Location:xxx") funziona bene SOLO se xxx è una url assoluta, per capirci se vuoi andare a index.php nella radice dl tuo sito da un'altra pagina nella home del tuo sito, in teoria dovrebbe funzionare anche

    header("Location: index.php")

    o

    header("Location:/index.php")

    in pratica funziona bene e sempre solo :

    header("Location:http://www.tuosito.it/index.php")

    tutte le altre a volte non funzionano.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  6. #6
    allora io faccio così e mi risolvo il problema header:


    Codice PHP:
    $url 'http://www.indirizzo.ext';

    echo 
    "<script language=\"javascript\">
    location.href=\"
    $url\";
    </script>"


  7. #7
    Originariamente inviato da seokey
    allora io faccio così e mi risolvo il problema header:


    Codice PHP:
    $url 'http://www.indirizzo.ext';

    echo 
    "<script language=\"javascript\">
    location.href=\"
    $url\";
    </script>"

    Mmmm, non è per niente la stessa cosa: per quanto rapido, questo metodo si attiva sempre SOLO se javascript è attivo e solo quando la pagina è stata interamente scaricata dal browser, e anche visualizzata per un attimo: la header location è bella proprio perché è totalmente invisibile per l'utente, che non ne ha traccia nemmeno nella cronologia delle pagine visitate...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    Grazie a tutti per l'aiuto!!!! Ora il problema è risolto!! grazie veramente a tutti
    Why so serious?????

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.