Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    con php5 problemi apertura e chiusura tag php

    Ciao,
    questo php5 mi sta creando un po di problemi, sono riuscito finalmente a capire perchè il mio sito non funziona più bene dopo che è stato spostato su un server con php versione 5 (in fase di imput, per la lettura dei dati funziona).

    Ho scoperto che php5 è instabile, ha problemi se nel codice apro e chiudo il tag php, come posso risolvere? Faccio un esempio:

    così funziona:
    if(mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }







    if (isset($_POST['username']) && isset($_POST['password'])) {


    $aut = "SELECT * from a_login where username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "' ";

    così invece non funziona:
    if(mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    ?>




    <?php




    if (isset($_POST['username']) && isset($_POST['password'])) {


    $aut = "SELECT * from a_login where username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "' ";



    questo è il codice completo:
    <?php
    session_start();




    //credenziali
    $db_name = '000';
    $db_host = '000';
    $db_uid = '000';
    $db_pass = '000';


    //apro la connessione con MySqli -> host, user, psw, db
    $conn = mysqli_connect($db_host, $db_uid, $db_pass, $db_name);


    //controllo connessione
    if(mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    ?>




    <?php




    if (isset($_POST['username']) && isset($_POST['password'])) {


    $aut = "SELECT * from a_login where username='" . $_POST['username'] . "' AND password='" . $_POST['password'] . "' ";
    $rs_aut = mysqli_query($conn, $aut);
    $row_aut = mysqli_fetch_array($rs_aut, MYSQLI_ASSOC);


    if (mysqli_num_rows($rs_aut) == 0) {
    $msg_login = "utente non riconosciuto1";
    }

    if ($row_aut['attivo'] == "no") {
    $msg_login = "non hai confermato la registrazione";
    } else {
    $_SESSION['idlogin'] = $row_aut['id_login'];
    }


    if ($_SESSION['idlogin']) {
    $sql_ses = "SELECT * from a_login where id_login = '" . $_SESSION['idlogin'] . "' ";
    $rs_ses = mysqli_query($conn, $sql_ses);
    $row_ses = mysqli_fetch_array($rs_ses, MYSQLI_ASSOC);


    if (mysqli_num_rows($rs_ses) == 0) {
    unset($_SESSION['idlogin']);
    }

    if (mysqli_num_rows($rs_aut) == 0) {
    $msg_login = "utente non riconosciuto2";
    }


    if ($row_ses['attivo'] == "no") {
    $msg_login = "non hai confermato la registrazione";
    } elseif ($row_ses['admin'] == "no") {
    header("Location: ../utente/utente_main.php");
    } elseif ($row_ses['admin'] == "si") {
    header("Location: ../admin/admin_main.php");
    }
    }
    }


    ?>
    Ultima modifica di prinzart; 28-05-2014 a 09:41

  2. #2
    Quote Originariamente inviata da prinzart Visualizza il messaggio
    così invece non funziona:
    if(mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    ?>
    manca il tag di apertura <?php ... ?

    Php 5 è in circolazione da molto ormai ed è riconosciuto essere molto stabile..

    che errore compare ?
    Ultima modifica di W Thunderbird; 28-05-2014 a 10:21

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Il tag di apertura c'è, vedi il codice completo.
    non compare nessun errore, è che non funziona più il codice per farmi entrare nel backend del sito, rimane in home anche dopo aver cliccato il pulsante entra.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    se nel mezzo dei 2 codici chiudo e apro il tag php non funziona più, volevo solo sapere il perchè di questa cosa bizzarra, che con il php4 non succedeva.

  5. #5
    Quote Originariamente inviata da prinzart Visualizza il messaggio
    se nel mezzo dei 2 codici chiudo e apro il tag php non funziona più, volevo solo sapere il perchè di questa cosa bizzarra, che con il php4 non succedeva.
    nemmeno con php5 accade.. è pieno internet di codici php con in mezzo parti di html.

  6. #6
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Fallisce perché ci sono spazi tra i due tag di apertura e a seconda di come il tuo PHP è configurato quelli sono tutti byte che finiscono al client. Vedi una pagina bianca perché molto probabilmente l'ini setting display_error è impostato su off ma quasi sicuramente nei php log troverai un errore tipo:

    codice:
    Warning: Cannot modify header information - headers already sent by

    Ad ogni modo da diverso tempo è diventata pratica comunque nella community PHP di omettere i tag di chiusura proprio per evitare questi problemi.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Quote Originariamente inviata da _debo Visualizza il messaggio
    Ad ogni modo da diverso tempo è diventata pratica comunque nella community PHP di omettere i tag di chiusura proprio per evitare questi problemi.

    Ah non lo sapevo, grazie del consiglio!

  8. #8
    Quote Originariamente inviata da _debo Visualizza il messaggio
    Fallisce perché ci sono spazi tra i due tag di apertura e a seconda di come il tuo PHP è configurato quelli sono tutti byte che finiscono al client. Vedi una pagina bianca perché molto probabilmente l'ini setting display_error è impostato su off ma quasi sicuramente nei php log troverai un errore tipo:

    codice:
    Warning: Cannot modify header information - headers already sent by

    Ad ogni modo da diverso tempo è diventata pratica comunque nella community PHP di omettere i tag di chiusura proprio per evitare questi problemi.
    Il tag di chiusura si può omettere solo se il file dello script contiene solamente codice php.
    Se invece contiene parti di php inframezzate da html si mettono i tag di apertura e chiusura.

  9. #9
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Quote Originariamente inviata da prinzart Visualizza il messaggio
    Ah non lo sapevo, grazie del consiglio!
    Di niente figurati... hai risolto?

  10. #10
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Il tag di chiusura si può omettere solo se il file dello script contiene solamente codice php.
    Se invece contiene parti di php inframezzate da html si mettono i tag di apertura e chiusura.
    L'ho dato per scontato senza voler entrare nel merito del perché PHP e HTML non andrebbero mischiati.

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.