Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema con redirect

  1. #1

    Problema con redirect

    uso questa funzione per il login su più siti:
    Codice PHP:
    function login($utente$password) {
        global 
    $config;
        try {
            
    $query $config->getPdo()->prepare("SELECT * FROM ad WHERE adu='" trim($utente) . "' AND adp='" trim(sha1($password)) . "' LIMIT 1");
            
    $query->execute();
            if (
    $query->rowCount() == 1) {
                
    $_SESSION['login'] = TRUE;
                
    header('location:index.php');
                return 
    TRUE;
            } else {
                return 
    FALSE;
            }
        } catch (
    Exception $e) {
            die(
    $e->getMessage());
        }

    mu funziona ovunque tranne che su un sito.
    o meglio funziona a metà e fino all'altra settimana funziona completamente.
    il problema è il redirect.
    il login lo fa solo che nn mi manda alla pagina perchè dice che l'header è già stato inviato.
    tra i vari siti nn ci sono differenze.
    solo che qua nn funziona.
    inioltre prima stava sul pc di casa; pensando che il problema fosse quello l'ho spostato su aruba.
    avete qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    86
    Prova ad utilizzare il seguente codice javascript per il redirect:

    codice:
    <script language="javascript" type="text/javascript">
    document.location.href="index.php";
    	</script>
    Fammi sapere

  3. #3
    questo l'errore:
    Codice PHP:
    WarningCannot modify header information headers already sent by (output started at /web/htdocs/www.orangeneration.it/home/sir/admin/template/base.php:105in /web/htdocs/www.orangeneration.it/home/sir/admin/moduli/login.php on line 14 
    la riga inciminata per lui è questa:
    Codice PHP:
    [url="<?php echo $_SERVER['PHP_SELF']; ?>?end=fine_sessione"]Logout[/url]

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Sicuramente stai inviando dati al browser e non te ne stai rendendo conto e per questo hail problema del redirect...
    La risposta so che è ovvia... Ti consiglio comunque di controllare il codice antecedente a dove fai l'invocazione: anche a me è capitata con un sito una situazione del genere: prima del redirect facevo un setcookie e ci stavo impazzendo sopra

  5. #5
    Non puoi effettuare un redirect se precedentemente è stato già generato un qualche tipo di output.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    questa è la pagina template:
    Codice PHP:
    <!DOCTYPE HTML>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <title>Admin</title>
            <link rel="stylesheet" href="template/css/style.css" type="text/css" />
            <link rel="stylesheet" href="template/css/demo_table.css" type="text/css" />
            <link rel="stylesheet" href="../template/css/jquery-ui-1.8.14.custom.css" type="text/css" />
            <script type="text/javascript" src="lib/jquery-1.6.2.min.js"></script>
            <script type="text/javascript" src="lib/jquery-ui-1.8.14.custom.min.js"></script>
            <script type="text/javascript" src="lib/jquery.dataTables.js"></script>
            <script type="text/javascript">
                function validaUtente() {
                    var nome = document.utenti.nome.value;
                    var cognome = document.utenti.cognome.value;
                    var email = document.utenti.email.value;
                    if(nome == "" || cognome == "" || email == "") {
                        alert("Tutti i campi sono obbligatori");
                        return false;
                    }
                }
            </script>
            <script type="text/javascript">
                function validaEmail() {
                    var titolo = document.send_email.titolo.value;
                    var subject = document.send_email.subject.value;
                    var messaggio = document.send_email.messaggio.value;             
                    if(titolo == "" || subject == "" || messaggio == "") {
                        alert("Tutti i campi sono obbligatori");
                        return false;
                    }
                }
            </script>
            <script type="text/javascript">
                function deleteConfirmation(id) {
                    var canc = window.confirm("Cancellare utente?");
                    if(canc) {
                        location.href = "delete.php?uid=" + id;
                    }
                }
            </script>
            <script type="text/javascript">
                function deleteMarchi(id) {
                    var canc = window.confirm("Cancellare utente?");
                    if(canc) {
                        location.href = "del_marchi.php?uid=" + id;
                    }
                }
            </script>
            <script type="text/javascript">
                $(document).ready(function() {
                    $('#example').dataTable();
                } );
            </script>
            <script type="text/javascript">
                function selectAll() {
                    var i = 0;
                    var modulo = document.modulo.elements;
                    for(i = 0; i < modulo.length; i++) {
                        if(modulo[i].type == "checkbox") {
                            modulo[i].checked = !(modulo[i].checked);
                        }
                    }
                }
            </script>
            <script type="text/javascript">
                function deleteImages() {
                    var canc = window.confirm("Cancellare immagine?");
                    if(canc) {
                        return true;
                    } else {
                        return false;
                    }
                }
            </script>
            <script type="text/javascript" >
                $(function() {
                    $("#datepicker").datepicker({
                        changeMonth: true,
                        changeYear: true,
                        dateFormat: "yy-mm-dd",
                        yearRange: "1950:2012"
                    });
                });
            </script>
            <script type="text/javascript">
                $(function() {
                    $("#gallery").sortable({
                        placeholder: 'ui-state-highlight',
                        update: function(e, ui) {
                            var order = $('#gallery').sortable('serialize');
                            $.post('<?php $_SERVER['PHP_SELF']; ?>', order);
                        }
                    });
                });
            </script>
        </head>
        <body>
            <div id="menu">
                [url="index.php"]Home[/url] |
                [url="insert.php"]Aggiungi utenti[/url] |
                [url="marchi.php"]Gestione marchi[/url] |
                [url="galleria.php"]Gestione galleria[/url] |
                [url="login.php"]Login[/url] |
                [url="<?php echo $_SERVER['PHP_SELF']; ?>?end=fine_sessione"]Logout[/url]
            </div>
            <hr/>
            <?php
            
    require_once $tpl;
            
    ?>
        </body>
    </html>
    al posto di require_once $tpl; viene richiamato login.php se la variabile di sessione nn è settata.
    questa la pagina di login:
    Codice PHP:
    <?php
    if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['submit'])) {
        
    login($_POST['username'], $_POST['password']);
        foreach (
    lastImg() as $lastImg) {
            
    $_SESSION['lastimg'] = $lastImg['ordine'];
        }
    }
    ?>
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
        <table>
            <tbody>
                <tr>
                    <td>User:</td>
                    <td><input type="text" name="username" value="" /></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><input type="password" name="password" value="" /></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Submit" name="submit" /></td>
                </tr>
        </table>
    </form>
    nn faccio altro.
    ho un sito che usa le stesse identiche cose e la funziona.

  7. #7
    cmq con javascript funzionerebbe.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Beh ho provato il tuo codice e a me il redirect non dà alcun problema.

  9. #9
    Originariamente inviato da Hermiod
    Beh ho provato il tuo codice e a me il redirect non dà alcun problema.
    infatti a me nn da problemi su nessun altro sito.
    e su questo è circa una settimana che me li da.

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.