Visualizzazione risultati 1 fino 2 di 2

Discussione: script php non funziona

  1. #1
    Guest

    Predefinito script php non funziona

    Codice PHP:
    function domanda()
    {
    include(
    "db_conn.php");
    $risp=$_POST['risposta'];
    $nick=$_SESSION['nick'];
    $query="SELECT * FROM Cliente WHERE ((Risposta='$risp') AND ('Nickname=''$nick'))";
    if(
    mysql_num_rows(mysql_query($query))==0){

    echo
    "<script language=\"JavaScript\">\n";
    echo
    "alert(\"la risposta che hai inserito non è esatta \");\n";
    echo
    "</script>";

    }
    else
    header("Location: \modifica_password.php");
    }
    if(isset(
    $_POST['domanda']))
    session_start();
    domanda();
    ?>
    praticamente ho provato invece dell'alert a stampare "".mysql_error() e non stampa nessun tipo di errore, ma sia che il valore $risp coincida con quello del database sia che non coincida mi apre l'alert.


    E poi per stampare il valore di una cella di una tabella del database questo metodo è corretto?
    Codice PHP:
    <font size=3>
    <?php
    include("db_conn.php");
    $sqlquery="SELECT Domanda FROM Cliente WHERE Nickname='$nickname'";
    $result = mysql_query($sqlquery);
    if (!
    $result){
    echo (
    "".mysql_error());
    }
    $riga=mysql_fetch_array($result);
    $domanda=$riga['Domanda'];
    echo(
    $domanda); ?>
    </font>
    Ultima modifica di brand1234567891123456789 : 26-05-2017 alle ore 13.45.07

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A parte il fatto che mysql è deprecato in favore di mysqli e PDO, ci sono comunque delle imprecisioni.

    Codice PHP:
    $query = "SELECT * FROM Cliente WHERE ((Risposta='$risp') AND ('Nickname=''$nick'))";
    Tutte quelle parentesi sono ridondanti, e gli apici attorno a Nickname non servono (e forse causano persino errore):
    Codice PHP:
    $query = "SELECT * FROM Cliente WHERE Risposta='$risp' AND Nickname='$nick'";
    Quel backslash non ha senso:
    Codice PHP:
    header("Location: \modifica_password.php");
    probabilmente intendevi
    Codice PHP:
    header("Location: modifica_password.php");
    E poi per stampare il valore di una cella di una tabella del database questo metodo è corretto?
    Quasi, devi prevedere la possibiltà che non ci siamo risultati nel record set:
    Codice PHP:
    $riga = mysql_fetch_array($result);

    if (
    $riga !== false)
    $domanda = $riga['Domanda'];
    echo
    $domanda;
    }
    else {
    echo
    "Non ci sono righe nel record set";
    }
    Altre osservazioni: non è necessario prependere una stringa vuota a mysql_error(). Inoltre, diverse parentesi che hai usato sono ridondanti, ad esempio in alcuni echo e negli include.
    Infine, assicurati che in db_conn.php non ci siano errori.

    Dovresti anche inserire
    Codice PHP:
    error_reporting(E_ALL);
    all'inizio della pagina per farti mostrare tutti gli errori e gli avvisi.
    Ultima modifica di mzanella : 26-05-2017 alle ore 13.58.39

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •