Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Header che non funziona

    Ragazzi ho fatto questo script, funziona perfettamente, tranne quando dovrebbe indirizzare ad un altra pagine attraverso il comando "header". Vi copio lo script


    Codice PHP:
    <?php
    include("./config.php");

    if(isset(
    $_GET['nome'])) { 
            
    $sql "SELECT * FROM modelli WHERE nome='" $_GET['nome'] . "'";
            
    $query = @mysql_query($sql);
            

             if((
    $result = @mysql_fetch_array($query))> 0){

    ?>


    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td colspan="3" valign="top"><div  class="sottotitoli4"><?=$result['nome'];?></div></td>
      </tr>
      <tr>
        <td colspan="3" valign="top"><hr class="barra" /></td>
      </tr>
      <tr>
        <td width="24%" valign="top">
    <span class="scheda">height:</span><?=$result['height'];?>


          <span class="scheda">bust:</span>
        <?=$result['bust'];?> 


        <span class="scheda">waist:</span>
        <?=$result['waist'];?>


        <span class="scheda">hips:</span>
        <?=$result['hips'];?>


        <span class="scheda">shoes:</span>
        <?=$result['shoes'];?>
     

        <span class="scheda">hair colour:</span>
        <?=$result['hair_colour'];?>


        <span class="scheda">hair length:</span>
        <?=$result['hair_length'];?>


        <span class="scheda">eyes:</span>
        <?=$result['eyes'];?>

    </td>
        <td width="28%" valign="top"><?php

    $colonne 
    =2;
    $sql "SELECT * FROM immagini_modelli WHERE modello = '" .$result['nome']. "' ORDER BY modello";

    $res = @mysql_query($sql);
    if((
    $righe = @mysql_num_rows($res))>0)
      {
      echo 
    "<table border=\"0\" cellspacing=\"2\" cellpadding=\"2\" align='left'>\n";

      for(
    $i 0$i $righe$i++) {
      
    $r = @mysql_fetch_array($res);
      if(
    $i $colonne == 0) {
      echo 
    "<tr>\n";
      }

      echo 
    "<td align='left'>[url='index.php?page=10&nome="$r[']<img border='0' src=./img/" . $r['mini'] . ">[/url]</td>\n";
      if(($i % $colonne) == ($colonne - 1) || ($i + 1) == $righe) {
      echo "</tr>\n";
      }
      
     }
      echo "</table>\n";
    }
    ?></td>
        <td width="53%"><?php if($_GET['
    id'] =='') {
                
            $sql_i = "SELECT * FROM immagini_modelli WHERE modello='" . 
    $result['nome'] . "' AND copertina ='Y'";
            $query_i = @mysql_query($sql_i);
            $result_i = @mysql_fetch_array($query_i);
            echo "<img class='
    foto' src=./img/" .$result_i['grande'] . ">";
            }
            else {
            
            $sql_2 = "SELECT * FROM immagini_modelli WHERE id='" . 
    $_GET['id'] . "'";
            $query_2= @mysql_query($sql_2);
            $result_2 = @mysql_fetch_array($query_2);
            echo "<img class='
    foto' src=./img/" .$result_2['grande'] . ">";
            
    }
    ?></td>
      </tr>
    </table>
    <?php
    } else{
    $nome=$_GET['
    nome'];
    @header("Location: ./index.php?page=4&nome=$nome");
    }
    }
    ?>
    COme mai? grazie per le risposte in anticipo

    L'errore togliendo @ davanti header è il seguente

    Codice PHP:

    Warning
    Cannot modify header information headers already sent by (output started at /web/htdocs/www.clarencemanagement.com/home/index.php:94in /web/htdocs/www.clarencemanagement.com/home/home_page/dettagli.php on line 83 

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    header va usato prima di qualsiasi output che genera html (anche un echo) ...
    Probabilmente prima dove dice l'errore fai qualcosa.

  3. #3
    Ho tolto l'echo, ho tolto anche qualche linea in più, ma non va insomma lo script fa una cosa molto semplice, se ci sono dei dati nel db mostra il contenuto altrimenti manda ad un altra pagina. Perchè si comporta cosi?

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    mi vien da pensare che sia il punto di mezzo prima dell index : header("Location: ./index.php?page=4&nome=$nome");

    Edit ho provato in locale e la sola stringa header("Location: ./index.php?page=4&nome=$nome"); funziona... non c'e' altro?

  5. #5
    HO tolto anche il punto, ma niente solito errore.

    Se mettessi anche tutti i tag html nel php?

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    io su index.php faccio

    $nome = 'marco';
    header("Location: /index2.php?page=4&nome=$nome");


    in index2.php vedo ( var_dump($_REQUEST); ):


    array(2) { ["page"]=> string(1) "4" ["nome"]=> string(5) "marco" }

  7. #7
    forse ho capito, sarà perchè cmq io sto già nel index? essendo questo script un include, potrei provare a dare solo la pagina?

  8. #8
    Ho provato a fare cosi
    else{ header("Location: dettagli.php?nome=$nome");}}?>

    cambiandogli completamente pagina ma nulla

  9. #9
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Nessun errore? ma entra nell else?

  10. #10
    Ho risolto
    Allora sono andato nella index e ho inserito all'inizio pagina questo comando

    Codice PHP:
    <?php
    ob_start
    ();
    ?>
    Poi alla fine della pagina ho inserito questo codice
    Codice PHP:
    <?php
    ob_end_flush
    ();
    ?>
    funziona tutto correttamente ^^

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 © 2024 vBulletin Solutions, Inc. All rights reserved.