Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    indirizzamenti errati con header

    Ciao ,
    volevo sapere header o redirect in php 5.2 è abilitato di default.

    dopo il mio inserimento dati nel db vorrei che mi reindirizzasse alla pagina login , questo solo se tutto è andato a buon fine , io ho fatto cosi , ma da errore nel header :
    codice:
             if ($test == "true"){
                 require 'connessioni/db.php';             
                 $db = mysql_connect($server_locale, $db_user, $db_pass) or die ("connessione fallita --> " . mysql_error());
                    $crea = "CREATE TABLE IF NOT EXISTS utenti (idutenti smallint unsigned not null auto_increment ,utente varchar (20) ,nome varchar (25),mail varchar (50),password varchar (50) ,PRIMARY KEY (idutenti));";
                    $creata = mysql_db_query($db_nome , $crea) or die ("tabella non creata -->" .mysql_error());
                   $query = "INSERT INTO utenti (idutenti, utente , nome, mail ,password) VALUE (default,'$user','$name', '$mail' , '$passcry');";
                  $esegui = mysql_db_query($db_nome, $query) or die ("nessuna quary inserita  --> " . mysql_error());
                  echo "utente inserito";
                  if ($esegui){
                      header("location: http://localhost/sitesclaudio/index.php?page=accedi");
                  }
             }
            ?>
    
    qualcuno mi sa rispondere?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    riportate sempre l'errore o presunto tale nei post... probabilmente si tratta del comando echo prima di header, peraltro inutile se poi fai un reindirizzamento.

    Prova a eliminare quella riga o riporta l'errore, magari...

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ho provato ad eliminare echo proma della parentesi graffa ma nulla , rimane sempre sulla stessa pagina.

    il fatto e che non da errori , non visualizza semplicemente la pagina come se header non fosse nulla .
    fatto il debug con netbeans e ho notato che $esegui assume valore 1 e quindi entra nell'if , ma una volta sopra header non fa nulla!

    una domanda banale per voi , ma sono rimasto colpito che in php al posto di true e false viene rappresentato 0 , 1 e a voltr -1 qualcuno mi sa dire il perchè ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    intanto prova a mettere un bel print'redirect'; exit; prima di header giusto per vedere che arriva fin lì lo script... se sì allora ritogli questa aggiunta e metti exit; dopo header


    per quanto riguarda true e false non c'è niente di strano (anzi ci si potrebbe stupire del contrario)... comunemente molti linguaggi associano true ad 1 o -1 e false a 0. In realtà il PHP non lo fa (p.es. in alcuni linguaggi si ha "false=0", mentre in PHP non proprio)... diciamo che a seconda del contesto potresti avere una conversione di tipo e ottenere un risultato analogo a quello che dici (puoi provare a studiarti gli operatori === e !== del PHP per capire meglio)

  5. #5
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    ok , provato con la stampa e stampa , ma tramite il debug avevo gia visto che ci entrava; e proprio per quello che non riesco a capire come mai non reindirizza la pagina.
    ho provato a mettere exit subito sotto a header , ma nulla rimane li.
    grazie della spiegazione , avendo cominciato con java mi sembrava strano legere 1,-1,0 al posto di true o false .

    cmq

    puo cntrare qualcosa il fatto che io in una pagina includo il menu il titolo e il corpo della pagina e tramite quari sting invio i miei dati ,
    tipo :

    /index.php --> mostra la prima pagina con inclusi , menu , pagina di benvenuto e titolo
    /index.php?page=[un nome] --> mi apre una pagina tramite la QS gestita nella index!

    grazie , ciao!

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    questo è un'errore che mi restituisce xdebug

    ( ! ) Warning: Cannot modify header information - headers already sent by (output started at G:\PHP_WORK\sitesclaudio\registrazione.php:109) in G:\PHP_WORK\sitesclaudio\registrazione.php on line 126
    Call Stack
    # Time Memory Function Location
    1 0.1549 68192 {main}( ) ..\index.php:0
    2 1.7660 113256 include( 'G:\PHP_WORK\sitesclaudio\registrazione.php' ) ..\index.php:41
    3 10.3365 132288 header ( ??? ) ..\registrazione.php:126

  7. #7
    Il tuo è il classico errore di chi manda in stampa anche un solo spazio bianco prima della funzione HEADER.
    Prima di questa funzione non va stampato a video alcunché.
    Stampa lo script completo (così vedo dove sta l'errore) e ti spiego come fare.



    p.s. Usa il tag [ PHP ] per includere il codice, così è di più facile lettura.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.