Visualizzazione dei risultati da 1 a 2 su 2

Discussione: EasyPHP, PHP e ACCESS

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    1

    EasyPHP, PHP e ACCESS

    Ciao a tutti!
    Dopo qualche anno di università ho l'occasione di rispolverare le mie conoscenze acquisite durante la scuola superiore (HTML, PHP, CSS, e via dicendo) per la costruzione di un piccolo sito.
    Ricordo benissimo che la nostra prof ci faceva utilizzare PHP insieme ad ACCESS per facilitarci il lavoro. In tutto cio, era ovviamente necessario avere un ambiente di sviluppo adeguato (utilizzavamo EasyPHP). Ora, rispolverando i vecchi appunti, ho costruito una primissima pagina HTML, una PHP e il db in ACCESS per effetuare un primissimo Login, nei seguenti modi:

    ACCESS: Ho creato un semplice tabella con id, username, password

    HTML: Ho creato una pagina login.html in cui c'è il form per la pagina php con due input

    codice HTML:
    <!doctype html>
    <html><head><meta charset="utf-8">
    <title>Pronostici del Mister! Effettua il Login</title>
    <link href="../css/stilegrad.css" rel="stylesheet" type="text/css"></head>
    <body>
    <form name="f_login" method="post" action="login.php">
    username:&nbsp;<input type="text" name="user"><br><br>
    password:&nbsp;<input type="password" name="password"><br><br>
    <input type="submit" value="Conferma">&nbsp;&nbsp;&nbsp;<input type="reset" value="Cancella"></form></body></html>
    PHP: Ho creato la pagina login.php in cui è contenuta la connessione per la comunicazione tra PHP e ACCESS (spero non sia qui l'errore, ma ho controllato più volte su internet e poi a scuola, con questa sintassi, funzionava)

    Codice PHP:
    <!doctype html><html><head><meta charset="utf-8"><title>Effettua il Login</title><link href="../css/stilegrad.css" rel="stylesheet" type="text/css"></head>
    <body>
    <?php$percorso_db=realpath("../db/pronostici_del_mister.accdb");
    if(!
    file_exist($percorso_db)) die("Errore nel sistema: non è al momento possibile effettuare il Login.");
    $connessione=new COM("ADODB.Connection");
    $stringa_connessione="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=".$percorso_db.";";
    $connessione->Open($stringa_connessione);
    $rs=new COM("ADODB.Recordset");
    $user=$_POST['user'];
    $password=$_POST['password'];
    $controllo="select * from utente where((user='".$user."') and (password='".$password."'));";//controllo se esiste l'account
    $rs->Open($controllo,$connessione);
    if(
    $rs->EOF==falseheader("Location:menu.html");//se corrisponde eseguo l'accesso
    else    
    echo 
    "<h3>Accesso negato <br><a href='menu.html'>Registrarsi</a> per accedere!</h3>";
    $rs->Close();
    $rs=null;
    $connessione->Close();
    $connessione=null;
    ?></body></html>
    Ora, tutti questi files si trovano nella cartella www di EasyPHP (con esso avviato, ovviamente) ma al momento dell'apertura della pagina login.php (oppure lanciando da login.html il tasto conferma) è come se in realtà non avvenisse nessuna connessione, nemmeno il controllo dell'esistenza del db... eppure a scuola funzionava, riuscivo ad interagire con ACCESS in questo modo, con query ed altro ed invece sono fermo già a queste poche righe. Non so se il problema siano le righe di codice riguardanti la comunicazione con i provider Microsoft oppure sia un problema di easyPHP
    Faccio fatica a postarvi una cattura dell'immagine a schermo ma se vi sarà necessaria troverò il modo di ridurla di peso però, a parole, cio che appare è la copia esatta del codice da
    Codice PHP:
    Open($stringa_connessione); 
    fino alla chiusura del tag php (?>), comprensivo della scritta "Accesso negato, registrasi per accedere" (link funzionante).

    Qualche anima pia che sa come far interagire questi 3 elementi? Ve ne sarei molto grato

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    1
    Ovviamente, dopo aver postato il mio problema ho trovato un primo errore:
    Codice PHP:
    if(!file_exists($percorso_db)) 
    era scritto senza s.........
    Vabe
    Ora la problematica è differente, la pagina PHP cerca il db e lo trova ma al momento dell'apertura della connessione, ovvero
    Codice PHP:
    $connessione=new COM("ADODB.Connection");
    $stringa_connessione="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=".$percorso_db;
    $connessione->Open($stringa_connessione); 
    mi appare il messaggio di errore Fatal error: call to a member function on a non-object in (path in cui si trova la pagina, cioe dentro www di easyphp) on line 15 (che, secondo dreamweaver, corrisponde all'ultima riga che vi ho riportato delle 3).
    Non capisco dove sia l'errore, anche perché dovrei aver costruito correttamente il costruttore ed aver utilizzato il metodo open con il path assoluto corretto. Forse l'errore è nella stringa_connessione? Ho sbagliato il provider microsoft? (come avevo accennato nel messaggio precedente)

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.