• User Newbie

    Problema script mysql php

    Salve a tutti.Nel mio sito ho creato un'area di registrazione-login.Tutto sembra fungere(o perlomeno così pare per le operazioni di registrazione.Quando arrivo alla fase di login qualcosa non va.Ho individuato l'errore mi aiutereste a correggerlo?
    [PHP]<?php

    session_start();

    include 'db.php';

    $username = $_POST['username'];
    $password = $_POST['password'];

    if(!isset($username) || !isset($password)){
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>PHelpP - Php Help for Programmers</title>
    <link rel="stylesheet" type="text/css" href="home.css" />
    </head>
    <body>
    <div id="container">

    <div id="header">
        <h1>&nbsp;</h1>
    </div>
    <div id="navigation">
        <ul>
            <li><a id="activelink" href="index.php">Home</a></li>
            <li><a href="/forum">Forum</a></li>
            <li><a href="guide.php">Guide</a></li>
            <li><a href="download.php">Applicazioni</a></li>
            <li><a href="script.php">Script</a></li>
            <li><a href="creazioni.php">Creazioni</a></li>
            <li><a href="credits.php">Crediti</a></li>
        </ul>
    

    <?php include("menu.php"); ?>

    </div>
    <div id="content">
     Per piacere inserisci TUTTE le informazioni! <br />
     <?php include ("login.php");
    exit(); ?>
    </div>
    <div id="footer"><?php include("footer.php"); ?></div>
    

    </div>
    </body>
    </html>
    <?php

    }

    $password = md5($password);

    $sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
    //qui c'è l'errore
    if($sql){
    if ($row = mysql_fetch_array($sql)){
    $_SESSION['first_name'] = stripslashes($row['first_name']);
    $_SESSION['email_address'] = stripslashes($row['email_address']);
    echo "<script type="text/javascript">location.href='sample.php';</script>";
    } else die('Problema nel login');// e finisce qui

    } else {
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>PHelpP - Php Help for Programmers</title>
    <link rel="stylesheet" type="text/css" href="home.css" />
    </head>
    <body>
    <div id="container">

    <div id="header">
        <h1>&nbsp;</h1>
    </div>
    <div id="navigation">
        <ul>
            <li><a id="activelink" href="index.php">Home</a></li>
            <li><a href="/forum">Forum</a></li>
            <li><a href="guide.php">Guide</a></li>
            <li><a href="download.php">Applicazioni</a></li>
            <li><a href="script.php">Script</a></li>
            <li><a href="creazioni.php">Creazioni</a></li>
            <li><a href="credits.php">Crediti</a></li>
        </ul>
    

    <?php include("menu.php"); ?>
    </div>
    <div id="content">
    Impossiile effettuare il login! La password o lo username da te inseriti non sono corretti!Riprova!
    <br />
    <?php include ("login.php"); ?>
    </div>
    <div id="footer"><?php include("footer.php"); ?></div>
    </div>
    </body>
    </html>
    <?php
    }
    ?>[/PHP]
    Grazie anticipatamente per l'aiuto che spero mi darete.


  • User Attivo

    nn so, la butto li, visto che io l'ho sempre risolta così:

    al posto di:
    if($sql)

    fai:
    if($sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"))

    prova a mettere anche un "echo mysql_error()" dopo la query per vedere se può essere quello.

    fammi sapere!


  • User Newbie

    Ora è
    [PHP]$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
    if($sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'")){
    if ($row = mysql_fetch_array($sql)){
    $_SESSION['first_name'] = stripslashes($row['first_name']);
    $_SESSION['email_address'] = stripslashes($row['email_address']);
    echo "<script type="text/javascript">location.href='sample.php';</script>";
    } else { echo mysql_error();}
    } else {...[/PHP]
    Però se provo a lloggarmi la pagina che appare è tutta bianca e sarebbe ciò che esce fuori dall'else mysql_error().
    Non so come fare..:(


  • User Attivo

    se ti esce dal if, vuol dire che nn porta a conclusione la query, nn dice niente se metti mysql_error() nell'else???


  • User Attivo

    "SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'"Prova a scrivere così

    $query = 'SELECT * FROM users WHERE username="'.$username.'" AND password="'.$password.'" AND activated=1';
    $risultato = mysql_query ($query) or die ('Impossibile eseguire la query ::::: '.mysql_error());

    così, male che vada con la query, sai perchè non te la passa...
    inoltre ti consiglio di controllare il tipo di dato "activated", se è un intero o un carattere... l'ho scritto come intero, se è un carattere mettilo in doppi apici "".