Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema con header

  1. #1

    Problema con header

    Cari esperti,
    vi sottopongo un piccolo problema.
    Ho questa form di autenticazione semplicissima.
    Il codice è il seguente.

    Codice PHP:
    <html>
    <head>
    <title>Log in</title>
    </head>
    <body><center>
    Welcome to login area, please login with your username and pasword.

    </center>
    <form method=post action=<?php print("$PHP_SELF");?>>
      <div align="center">[b]Username[/b]: 
        <input type="text" size=15 name="user">
        [b]Pass[/b]: 
        <input type="password" size="15" name="pass">
        <input type="SUBMIT" name="send" value="invia">
      </div>
    </FORM>



    <?php
    ob_start
    ();
    if (
    $_POST['user']=="user"&&$_POST['pass']=="pass")//change these to what ever you want them to be.
    {
    header("Location: [url]http://www.convertini.com[/url]"); 
    }
    else
    {
    if (
    $_POST['user'] == NULL)
    {
    }
    else
    print(
    "Spiacente, [b][i]$user[/i][/b] non è un nome corretto.");//this is the error message, you can change it if you want.
    }
    ?>



    <center>
    <?php
    print ("Immanuel_Kant: the unprofessional choice");
    ?>
    </body>
    </html>
    Lo script è visualizzabile a:
    qui

    Come è facile vedere si ottiene il messaggio seguente:



    codice:
    Warning: Cannot modify header information - headers already sent by (output started at /home/converti/public_html/aut/aut3/pass.php:14) in /home/converti/public_html/aut/aut3/pass.php on line 28
    Ho fatto un po' di ricerche sul forum e l'adagio è stato:

    Tra l'inizio dello script e il header(); non devono essere presenti echo, print, printf o altre funzioni che creano un output (per il browser).
    Non vedo però questa ricorrenza.

    Attendo vostri lumi.

    Thanks
    Eccoti!

  2. #2

    Re: Problema con header

    Codice PHP:
    <?php
    ob_start
    ();
    ?>
    <html>
    <head>
    <title>Log in</title>
    </head>
    <body><center>
    Welcome to login area, please login with your username and pasword.

    </center>
    <form method=post action=<?php print("$PHP_SELF");?>>
      <div align="center">[b]Username[/b]: 
        <input type="text" size=15 name="user">
        [b]Pass[/b]: 
        <input type="password" size="15" name="pass">
        <input type="SUBMIT" name="send" value="invia">
      </div>
    </FORM>



    <?php

    if ($_POST['user']=="user"&&$_POST['pass']=="pass")//change these to what ever you want them to be.
    {
    header("Location: [url]http://www.convertini.com[/url]"); 
    }
    else
    {
    if (
    $_POST['user'] == NULL)
    {
    }
    else
    print(
    "Spiacente, [b][i]$user[/i][/b] non è un nome corretto.");//this is the error message, you can change it if you want.
    }
    ?>



    <center>
    <?php
    print ("Immanuel_Kant: the unprofessional choice");
    ?>
    </body>
    </html>
    quello che hai trovato era impreciso... semplicemente non deve partire il flusso dati dal server al client prima dell'header... l'html E' un flusso dati..

    Nel tuo caso per semplicità ho spostato in cima la bufferiozzazione dell''output.. così che questo parta dopo che l'intera pagina è stata elaborata... e quindi l'header può essere inviato prima dell'output



  3. #3
    Così come me lo hai dato da errore alla riga 46.

    Dopo averlo corretto, riottengo lo stesso errore.


    Grazie comunque.

    Aspetterò Daniele che mi risolverà il problema autenticando i dati attraverso il satellite astra.
    Eccoti!

  4. #4
    [supersaibal]Originariamente inviato da IMMANUEL_KANT
    Così come me lo hai dato da errore alla riga 46.

    Dopo averlo corretto, riottengo lo stesso errore.
    [/supersaibal]
    l'errore alla roga 46 [che ignoro quale sia] probabilmente è roba tua..
    Se riottieni l'errore è perchè hai output prima della riga con ob_start();

    anche gli spazi nella sezione HTML sono output.......

    [supersaibal]
    Aspetterò Daniele che mi risolverà il problema autenticando i dati attraverso il satellite astra. [/supersaibal]
    ok.. grazie per la fiducia.. ora cancello la risposta..

  5. #5
    Si, l'errore era mia e riportato anche da te


    Ho risolto ad ogni modo eliminando una riga vuota presente prima di obstart();

    Grazie
    Eccoti!

  6. #6
    [supersaibal]Originariamente inviato da IMMANUEL_KANT
    Si, l'errore era mia e riportato anche da te
    [/supersaibal]
    sì ma io non è che mi sono messo ad eseguire il tuo codice.. ho solo visto quel che mi interessava.. se poi ci stava qualche cappellata tua.....

    fine ot

  7. #7
    In assenza di specificazione non si intende il controllo?
    Boh? lascio ai posteri.
    Eccoti!

  8. #8
    la mia banca è differente.

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.