Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85

    accesso login php e mysql

    Ciao a tutti,
    ho un problema che riguarda la connessione con il database mysql.

    posto il codice che a me sembra giusto (o almeno funzionava fino alla versione php4):

    conf.inc.php:
    [PHP<?
    //Set information server
    $db_host = 'localhost';
    $db_user = 'root';
    $db_pwd = 'mysql';
    $db_name = 'user';
    $result = '';

    //connessione al database
    //$connessione = mysql_connect($db_host,$db_user,$db_pwd,$db_name) or die(mysql_error());
    //$db = mysql_select_db($db_name,$connessione);
    //fine connessione

    //Connect to mysql server
    $connessione = mysql_connect($db_host,$db_user,$db_pwd) or die('Failed to connect to server: ' . mysql_error());
    //Select database
    $db = mysql_select_db($db_name,$connessione) or die(”Unable to select database”);
    ?>[/PHP]

    do_login:
    [PHP]<?php
    //Start session
    session_start();

    global $db_host;
    global $db_user;
    global $db_pwd;
    global $db_name;
    global $result;

    //Include database connection details
    require('config.inc.php');

    //Array to store validation errors
    $errmsg_arr = array();

    //Validation error flag
    $errflag = false;

    //Function to sanitize values received from the form. Prevents SQL injection
    function clean($str){
    $str = @trim($str);
    if(get_magic_quotes_gpc()){
    $str = stripslashes($str);
    }
    return mysql_real_escape_string($str);
    }

    //richiamiamo i dati inseriti nel form mettendo $_POST['id campo di testo']; trasformandoli in variabili
    $user = clean($_POST['user']);
    $pwd = clean($_POST['pwd']);

    //Input Validations
    if($user == 'user'){
    $errmsg_arr[] = 'Login ID missing';
    $errflag = true;
    }
    if($pwd == 'password'){
    $errmsg_arr[] = 'Password missing';
    $errflag = true;
    }

    //If there are input validations, redirect back to the login form
    if($errflag){
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    session_write_close();
    header("location: index.html");
    exit();
    }

    //Verifichiamo che user e pwd esistano nel database e siano nello stesso record
    // Traduzione: Conta i campi id nel cui record sono presenti i dati inseriti nel form e chiama il risultato login (as login)
    //$sql = "SELECT COUNT(id) as login FROM utente WHERE user = '$user' AND pwd = '$pwd'";

    // Formulate Query
    // This is the best way to perform a SQL query
    // For more examples, see mysql_real_escape_string()

    $query = sprintf("SELECT COUNT(id) as login FROM members WHERE user = '$user' AND pwd = '".md5($_POST['pwd'])."'", mysql_real_escape_string($user), mysql_real_escape_string($pwd));

    // Perform Query
    $result = mysql_query($query);

    // Interroga il database
    //$query = mysql_query($sql,$connessione) or die(mysql_error());
    //$query = mysql_query($sql) or die(mysql_error());
    // Richiama il risultato e trasformalo in una variabile
    //$risultato = mysql_result($result,'login');

    //session_start();
    //session_destroy();
    //session_unset();
    //session_start();

    //Check whether the query was successful or not
    if($result){
    if(mysql_num_rows($result) == 1){
    //Login Successful
    session_regenerate_id();
    $member = mysql_fetch_assoc($result);
    $_SESSION['SESS_ID'] = $member['id'];
    $_SESSION['SESS_NOME'] = $member['nome'];
    $_SESSION['SESS_COGNOME'] = $member['cognome'];
    $_SESSION['stuatus'] = 'logged';
    $_SESSION['user'] = $user;
    session_write_close();
    header("location: reserved.php?user=$user");
    exit();
    }else {
    //Login failed
    header("location: login-failed.php");
    exit();
    }
    }else{
    die("Query failed");
    }

    // Free the resources associated with the result set
    // This is done automatically at the end of the script
    mysql_free_result($result);
    ?>[\PHP]

    Grazie per l'aiuto
    Giuseppe

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    EXTEND:
    ho letto che per la versione php5 bisognava mettere come password mysql per l'accesso al database.

    Questo però non mi è molto chiaro

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    EXTEND:
    L'errore è questo:

    Warning: mysql_query() [function.mysql-query]: Accesso non consentito per l'utente: 'ODBC'@'localhost' (Password: NO) in C:\Program Files\EasyPHP 3.0\www\orchestra\do_login.php on line 62

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    up

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    Scusate, riposto il codice almeno è più comprensibile così
    PS: a me sembra giusto (o almeno funzionava fino alla versione php4):

    conf.inc.php:
    Codice PHP:
    <?
    //Set information server
    $db_host 'localhost';
    $db_user 'root';
    $db_pwd 'mysql';
    $db_name 'user';
    $result '';

    //connessione al database
    //$connessione = mysql_connect($db_host,$db_user,$db_pwd,$db_name) or die(mysql_error());
    //$db = mysql_select_db($db_name,$connessione);
    //fine connessione

    //Connect to mysql server
    $connessione mysql_connect($db_host,$db_user,$db_pwd) or die('Failed to connect to server: ' mysql_error());
    //Select database
    $db mysql_select_db($db_name,$connessione) or die(”Unable to select database”);
    ?>
    do_login:
    Codice PHP:
    <?
    //Start session
    session_start();

    global 
    $db_host;
    global 
    $db_user;
    global 
    $db_pwd;
    global 
    $db_name;
    global 
    $result;

    //Include database connection details
    require('config.inc.php');

    //Array to store validation errors
    $errmsg_arr = array();

    //Validation error flag
    $errflag false;

    //Function to sanitize values received from the form. Prevents SQL injection
    function clean($str){
    $str = @trim($str);
    if(
    get_magic_quotes_gpc()){
    $str stripslashes($str);
    }
    return 
    mysql_real_escape_string($str);
    }

    //richiamiamo i dati inseriti nel form mettendo $_POST['id campo di testo']; trasformandoli in variabili
    $user clean($_POST['user']);
    $pwd clean($_POST['pwd']);

    //Input Validations
    if($user == 'user'){
    $errmsg_arr[] = 'Login ID missing';
    $errflag true;
    }
    if(
    $pwd == 'password'){
    $errmsg_arr[] = 'Password missing';
    $errflag true;
    }

    //If there are input validations, redirect back to the login form
    if($errflag){
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    session_write_close();
    header("location: index.html");
    exit();
    }

    //Verifichiamo che user e pwd esistano nel database e siano nello stesso record
    // Traduzione: Conta i campi id nel cui record sono presenti i dati inseriti nel form e chiama il risultato login (as login)
    //$sql = "SELECT COUNT(id) as login FROM utente WHERE user = '$user' AND pwd = '$pwd'";

    // Formulate Query
    // This is the best way to perform a SQL query
    // For more examples, see mysql_real_escape_string()

    $query sprintf("SELECT COUNT(id) as login FROM members WHERE user = '$user' AND pwd = '".md5($_POST['pwd'])."'"mysql_real_escape_string($user), mysql_real_escape_string($pwd));

    // Perform Query
    $result mysql_query($query);

    // Interroga il database
    //$query = mysql_query($sql,$connessione) or die(mysql_error());
    //$query = mysql_query($sql) or die(mysql_error());
    // Richiama il risultato e trasformalo in una variabile
    //$risultato = mysql_result($result,'login');

    //session_start();
    //session_destroy();
    //session_unset();
    //session_start();

    //Check whether the query was successful or not
    if($result){
    if(
    mysql_num_rows($result) == 1){
    //Login Successful
    session_regenerate_id();
    $member mysql_fetch_assoc($result);
    $_SESSION['SESS_ID'] = $member['id'];
    $_SESSION['SESS_NOME'] = $member['nome'];
    $_SESSION['SESS_COGNOME'] = $member['cognome'];
    $_SESSION['stuatus'] = 'logged';
    $_SESSION['user'] = $user;
    session_write_close();
    header("location: reserved.php?user=$user");
    exit();
    }else {
    //Login failed
    header("location: login-failed.php");
    exit();
    }
    }else{
    die(
    "Query failed");
    }

    // Free the resources associated with the result set
    // This is done automatically at the end of the script
    mysql_free_result($result);
    ?>
    Help me
    Grazie

  6. #6
    Originariamente inviato da giustav
    EXTEND:
    L'errore è questo:
    Warning: mysql_query() [function.mysql-query]: Accesso non consentito per l'utente: 'ODBC'@'localhost' (Password: NO) in C:\Program Files\EasyPHP 3.0\www\orchestra\do_login.php on line 62
    Un pezzo per volta.
    Hai da poco installato PHP e MySQL vero?
    Prova a fare così: nella cartella di installazione di PHP (che ne so C:/programmi/php/) trovi un file chiamato libmysql.dll.
    Copia quel file nella cartella di installazione di windows (C:/WINDOWS).
    Riavvia il server Apache e MySQL e dovrebbe funzionare.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Originariamente inviato da giustav
    EXTEND:
    ho letto che per la versione php5 bisognava mettere come password mysql per l'accesso al database.

    Questo però non mi è molto chiaro
    Questa chi te l'ha detta???
    A differenza delle versioni precedenti, è obbligatoria una password anche per l'accesso locale, ma puoi sceglierne una a tuo piacimento.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    Per la verità ho appena istallato la versione easyphp3 di recente prima avevo la 2.0b e tutto funzionava alla perfezione (intendo il codice di login che ho postato).

    Con la versione 3, non funziona un H.

    Mi da un pò di errori come nell'esempio. Ma non so qual'è il problema, nel senso che nella configurazione di default di mysql da come utente root, password si

    Ho guardato nella cartella di phpmyadmin il file conf.inc e mi dice che la password è mysql.

    Non so cosa devo fare ç_ç
    penso sia problema di configurazione di mysql, ma non so cosa devo modificare, visto che non conosco la modifica dalla versione 2.0b alla 3.

    Grazie mille
    Giuseppe

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    85
    Stasera quando torno a casa dall'uni provo...

    Grazie

  10. #10
    Questo è il motivo per cui odio programmi come EasyPHP: fanno tutto loro, così quando l'utente che installa ha problemi non sa dove mettere le mani.
    Io ti consiglio di disinstallare EasyPHP (che tra l'altro è il peggiore degli installer disponibili per PHP) tre-installare tutto a mano seguendo la GUIDA PHP SU WINDOWS e prestando attezione al suggerimento che ti ho dato nel post precedente.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.