Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11

    problemi con header location

    Salve ragazzi mi presento, sono DarkAde e sono nuovo, mi sto avvicinando al php e ho appena riscontrato un problema grosso con gli header HTTP.

    Ho fatto due alcune pagine php per la gestione di un login, ma ho problemi quando devo fare il redirect con gli header.

    queste sono le due pagine incriminate:


    questa pagina sarà inclusa nella prossima e serve per il collegamento a SQLServer 2000
    e a controllare ke lo username e la password siano corretti
    <?
    $conn = mssql_connect("192.168.1.100","video","video");
    @mssql_select_db("videoSQL",$conn);
    function autorizzazione(){
    global $conn;
    global $user;
    global $pwd;
    global $row;
    global $pss;
    $pss = md5($pwd);
    $q = mssql_query("select * from utenti where user_id='".$user."' and password='".$pss."'");
    $row = mssql_num_rows($q);
    if($row == 1){
    return true;
    }else{
    return false;
    }
    }
    ?>


    Questa pagina riceve user e pass da una pagina login.php (tramite POST) e con l'include controlla il DB (SQLServer), e si comporta di conseguenza.
    <?
    include 'mssql.php';
    @session_start();
    $user = @$_POST['user'];
    $pwd = @$_POST['pass'];
    if(isset($_SESSION['autorized']) && ($_SESSION['autorized']==1)) @session_destroy();
    else{
    if(autorizzazione()){
    $_SESSION['autorized'] =1;
    //print($row);
    @header("location:admin.php");
    }
    else {
    //print("no".$row);
    header("location:login.php?faild=1");
    }
    }
    ?>

    il problema è quando uso:
    header("locationagina.php");
    mi da questo errore:

    Warning: Cannot modify header information - headers already sent by (output started at c:\programmi\easyphp1-8\www\login_prova\mssql.php:21) in c:\programmi\easyphp1-8\www\login_prova\login1.php on line 11

    io so ke questo (quasi sicuramente) dipende dal fatto ke a video viene stampato qualcosa prima di effettuare l'header....solo ke nn so come rimediare, xke nn stampo niente, o almeno nn volutamente.
    Mi potete aiutare??...è importante altrimento nn faccio la mia cavolo di tesina

  2. #2
    metti ob_start() in cima alle pagine, il problema viene dal fatto che header modifica gli header appunto e quidni devono partire prima di ogni output html

  3. #3
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    1) controlla di non aver inserito nessuno spazio e nessuna riga vuota prima dell'apertura e dopo la chiusura di tutti i tag php (<?php e ?>). Questa vale anche per i file che includi nella pagina

    2) tieni presente che Location vuole un url completo... ovvero del tipo http://tuosito.it/pagina.php
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  4. #4
    A quello che ha detto Habanero, aggiungo: hai messo qualche codice html o qualche echo prima dell'header?
    Esempio
    Codice PHP:
    <?php ..... echo "ASD"header("Location: login.php?faild=1");
    ?>
    Comunque lì darebbe un errore perché c'è un echo. Se il codice da anche uno spazio l'header salta dando quell'errore.
    Oppure
    Codice PHP:
    <html>
    <head>
    <title> etc
    <?php .....  header("Location: login.php?faild=1");
    ?>
    Comunque usa la funzione cerca del forum, perchè c'è un utente che ha avuto da 3 giorni sto problema, e quel 3D è in hot.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11
    Grazie mille per il vostro aiuto tempestivo, essendo 22maggio sono decisamente in dietro nel realizzare questa applicazione web per la tesina.

    Cmq aggiungendo ob_start(); ho risolto il problema.
    Secondo me era stato causato da qualke funzione tipo

    mssql_select_db("videoSQL",$conn);

    ke magari stampa (involontariamente) un carattere bianco.
    Xke lo stesso procedimento l'ho provato con un server postgres e non ho avuto problemi, ma li non ho una funzione x selezionare il DB, lo includo nella funzione di connessione.

  6. #6
    Originariamente inviato da Habanero
    2) tieni presente che Location vuole un url completo... ovvero del tipo http://tuosito.it/pagina.php

    VVoVe:

    Ciao!

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    Originariamente inviato da fmortara
    VVoVe:




    E' un redirect HTTP e come tale vuole un URI assoluto... che poi alcuni client siano di bocca buona è un'altra cosa.

    http://www.w3.org/Protocols/rfc2616/....html#sec14.30


    [edit]
    tra l'altro è scritto anche sulla documentazione del php:
    http://it.php.net/manual/it/function.header.php
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8
    Originariamente inviato da Habanero



    E' un redirect HTTP e come tale vuole un URI assoluto... che poi alcuni client siano di bocca buona è un'altra cosa.

    http://www.w3.org/Protocols/rfc2616/....html#sec14.30


    [edit]
    tra l'altro è scritto anche sulla documentazione del php:
    http://it.php.net/manual/it/function.header.php
    :rollo: ...

    ok ok...
    ...ma mi dici un browser che non accetta il percorso NON ASSOLUTO??

    Ma per i codici scritti senza percorso assoluto... converrebbe scrivere i codici ex-novo?
    Ciao!

  9. #9
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    quale sarebbe il vantaggio di non inserire l'URI assoluto?
    non voglio neanche pensare che possa essere la fatica di digitare qualche carattere in più...
    Se poi il problema è la portabilità tra un dominio e l'altro la pagina sulla documentazione di php mostra chiaramente come risolvere il problema...


    insomma... qual è il vantaggio di infrangere uno standard? il fatto che i maggiori browser siano elastici per me non è una scusante.

    Ma qui siamo decisamente OT.
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  10. #10
    salve ragazzi io ho un problema con l'header, in quanto devo ridirezionare il browser su un'altra pagina in modo dinamico e gli devo "allegare" dei parametri, ecco il mio codice:

    header("Location: prenotazione_aggcarrello.php?data1=$data1&data2=$d ata2&adulti=$adulti&bambini=$bambini&tipologia=$ti pologia&vista=$vista&letto=$letto&supp_singola=$su pp_singola&DUS=$DUS&totale=$totale");

    ma mi legge solo il primo parametro, gli altri li ignora, come posso fare?

    grazie a tutti x ogni intervento

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.