Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [MsAccess] Utilizzarlo su Arubbola con PHP? ecco come!

    Arubbola alias .... , tutti quelli che cercano di utilizzare un db MsAccess su questo hosting sanno bene quanto si possa bestemmiare con il php da quando Arubbola ha vietato l'utilizzo degli oggetti ADO.
    Siccome questo sgarbo da parte di Arubbola mi ha causato un'orticaria e un fastidioso prurito alla nuca ho ben pensato di non dormire un paio di notti per elaborare un mix ASP, PHP che permettesse di utilizzare un db MsAccess con il PHP .
    Lo script è molto semplice, sia perchè conosco l'ASP meno di niente, sia perchè quando hai l'illuminazione e il codice funziona lasci perdere di controllare quante boiate hai scritto e corri a postarlo :rollo: .
    Sono 3 paginette delle quali 2 in ASP , dove c'è poco da toccare non vi preoccupate, e 1 in PHP dove ci si può sbizzarrire quanto si vuole .
    Sarei assai lieto se qualcuno avesse il buon cuore di migliorare questo script e di trovare i numerossissimi bugs e di postare il tutto .
    Comunque così com'è, bene o male, che se ne dica funziona

    Eccola la prima: select.asp
    codice:
    <%
    
    //  Autore: kallo@rendon.it - http://www.rendon.it
    //    Data: 27 agosto 2004
    // Content: Riceve SELECT SQL e manda in echo il recordset
    
    
    
    // MODIFICA LA PASSWORD CON UNA DI TUA SCELTA
    if Request("p") = "password" then
    
    	dim SQL
    	SQL = Request("SQL")
    
    
    // AL POSTO DI database.mdb METTI IL NOME DEL TUO DB
    // PER ARUBA DI DEFAULT LA CARTELLA PER GLI MDB è fpdb SE LA TUA E' DIVERSA CAMBIALA
    	Dim cn : Set cn = Server.CreateObject("ADODB.Connection")
    	Dim strConn
    	strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" +Server.MapPath("fpdb/fotografie.mdb")
    
    	if SQL="" then
    
    		response.write("SQL non valido")
    
    	else
    
    		cn.open strConn
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open SQL, cn, , , adCmdText
    		dim i
    
    		do while not rs.eof
    
    			For i=0 To rs.fields.count-1 Step 1 
    
    				risultato=rs(i)
    				response.write(risultato)
    				response.write(vbCrLf)
    
    
    			Next
    
    		rs.moveNext
    		
    		loop
    
    		rs.close
    
    		set rs=nothing
    		
    		End if
    
    else
    
    response.write("Password Non Valida!")
    
    end if
    
    %>
    Ed ecco la seconda: sql.asp
    codice:
    <%
    
    //  Autore: kallo@rendon.it - http://www.rendon.it
    //    Data: 27 agosto 2004
    // Content: Riceve query SQL tramite GET e la ESEGUE escluse le SELECT
    
    
    
    
    // MODIFICA LA PASSWORD CON UNA DI TUA SCELTA
    if Request("p") = "password" then
    
    	dim SQL
    	SQL = Request("SQL")
    	Dim cn : Set cn = Server.CreateObject("ADODB.Connection")
    	Dim strConn
    
    // AL POSTO DI database.mdb METTI IL NOME DEL TUO DB
    // PER ARUBA DI DEFAULT LA CARTELLA PER GLI MDB è fpdb SE LA TUA E' DIVERSA CAMBIALA
    
    	strConn = "driver={Microsoft Access Driver (*.mdb)};dbq=" +Server.MapPath("fpdb/database.mdb")
    
    	if SQL="" then
    		response.write("SQL non valido")
    
    	else
    		cn.open strConn
    		Set rs = Server.CreateObject("ADODB.Recordset")
    		rs.Open SQL, cn, , , adCmdText
    		rs.close
    		set rs=nothing
    	End if
    
    else
    
    response.write("Password Non Valida!")
    
    End if
    
    
    %>
    Ed infine il nostro buon PHP access.php
    codice:
    <?
    
    //  Autore: kallo@rendon.it - http://www.rendon.it
    //    Data: 27 agosto 2004
    
    
    // La Password che ho definito nei due file .asp
    
    $password= "password"
    
    // La SELECT che voglio eseguire
    
    $query="SELECT * FROM immagini";
    
    
    $query=urlencode($query);
    
    $select=file("http://www.ilmiosito.it/select.asp?SQL=$query&p=$password");
    
    foreach($select as $riga){
    
    // Restituisce in echo a video il valore campo per campo di ogni record
    // si può mettere il tutto il un bell'array o faci qualunque altra cosa...
    
    echo $riga;
    
    }
    
    // Voglio una INSERT? un UPDATE? un DELETE? o quanto altro?
    
    $query="INSERT INTO ecc..";
    $query=urlencode($query);
    $select=file("http://www.ilmiosito.it/sql.asp?SQL=$query&p=$password");
    
    ?>

  2. #2
    Bhe, credo che il titolo dovrebbe essere preceduto da [PILLOLA]!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3

    Pillola? :-D

    Non mi sono azzardato a tanto , non si scrive un [PILLOLA] così su due piedi .
    E se esplode il computer mentre va in esecuzione questo script? chi li paga i danni

  4. #4
    Allora scrivevi [pillolina]
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5

    Si...

    Volevo aspettare che qualcuno lo provasse, magari è una congiunzione astrale del mio server di Arubbola che lo fa funzionare. Non vorrei fare una figura megatapina

  6. #6
    Ciao,
    beh...più o meno si tratta di un webservice ante litteram, in questo modo (se si trascura l'overhead di una doppia richiesta) è possibile utilizzare qualsiasi linguaggio/database attraverso PHP.

    Piuttosto hai provato con ODBC fissando il DSN direttamente nella connection string? Non utilizzo Auba da un bel po' ma in teoria dovrebbe funzionare...in locale almeno funziona.

    Questa connection string funziona da php 4.3 in su e non c'è bisogno di dsn di sistema

    $connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\tuodatabase.mdb;Uid=Admin;Pwd=;"


    odbc_connect($connStr,"","");


    Se puoi fammi sapere come va su Aruba
    per favore NIENTE PVT TECNICI da sconosciuti

  7. #7
    Non sembra dar buoni segni di funzionamento...

    codice:
    <?
    
    $connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\\Inetpub\\webs\\scoutfoligno3it\\fpdb\\fotografie.mdb;Uid=Admin;Pwd=;"; 
    odbc_connect($connStr,"","")or die("Connessione non riuscita"); 
    
    ?>
    output --> Connessione non riuscita
    codice:
    <?
    
    $connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Inetpub\webs\scoutfoligno3it\fpdb\fotografie.mdb;"; 
    odbc_connect($connStr,"","")or die("Connessione non riuscita"); 
    
    ?>
    output --> Connessione non riuscita
    codice:
    <?
    
    $connStr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\Inetpub\webs\scoutfoligno3it\fpdb\fotografie.mdb;Uid=Admin;Pwd=;"; 
    odbc_connect($connStr,"","")or die("Connessione non riuscita"); 
    
    ?>
    output --> Connessione non riuscita


    Ho ricavato le seguenti informazioni dal phpinfo, possono essere utili?

    PHP Version 4.3.7


    ODBC Support enabled
    Active Persistent Links 0
    Active Links 0
    ODBC library Win32

    Directive Local Value Master Value
    odbc.allow_persistent Off Off
    odbc.check_persistent Off Off
    odbc.default_db no value no value
    odbc.default_pw no value no value
    odbc.default_user no value no value
    odbc.defaultbinmode return as is return as is
    odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
    odbc.max_links 0 0
    odbc.max_persistent 0 0

  8. #8
    La prima sintassi è corretta, forse Aruba ha in qualche modo disabilitato anche questa possibilità (anche se dal phpinfo non si direbbe).
    Prova anche con lo slash / anzichè i backslash \\

    Il database è protetto da username e password?

    Ho dato un'occhiata ai commenti del manuale, prova con questa connstring

    $cfg_dsn = "DRIVER=Microsoft Access Driver (*.mdb);
    DBQ=C:/Access.mdb;
    UserCommitSync=Yes;
    Threads=3;
    SafeTransactions=0;
    PageTimeout=5;
    MaxScanRows=8;
    MaxBufferSize=2048;
    DriverId=281;";

    $cfg_dsn_login = "";
    $cfg_dsn_mdp = "";

    odbc_connect($cfg_dsn,$cfg_dsn_login,$cfg_dsn_mdp) ;

    Un'altra cosa, anzichè fare

    ...or die('Connessione non riuscita') ;

    fai

    ...or die(odbc_errormsg()) ;
    per favore NIENTE PVT TECNICI da sconosciuti

  9. #9

  10. #10

    Tentando e ritentando...

    Il db non è protetto ne da user ne da pass, ho tentato anche con uno protetto da user e pass...

    Lo slash nonostante io abbia provato ad usarlo non cambia nulla, anzi peggiora in quanto l'hosting è su winzoz.

    Codice PHP:
    <?

    $cfg_dsn 
    "DRIVER=Microsoft Access Driver (*.mdb); 
    DBQ=D:\\Inetpub\\webs\\scoutfoligno3it\\fpdb\\fotografie.mdb;
    UserCommitSync=Yes; 
    Threads=3; 
    SafeTransactions=0; 
    PageTimeout=5; 
    MaxScanRows=8; 
    MaxBufferSize=2048; 
    DriverId=281;"


    $cfg_dsn_login ""
    $cfg_dsn_mdp ""

    odbc_connect($cfg_dsn,$cfg_dsn_login,$cf,$g_dsn_mdp)or die(odbc_errormsg()); 

    $sono_connesso odbc_connect($cfg_dsn,$cfg_dsn_login,$cf,$g_dsn_mdp);

    echo 
    $sono_connesso;


    ?>
    Con odbc_errormsg() output -->"" niente nothing nulla empty
    , tanto che anche ieri mi ero illuso funzionasse ed ho tentato di mettere il risultato in una variabile e farne un echo, output --> ""

    Modificando invece
    Codice PHP:
    odbc_connect($cfg_dsn,$cfg_dsn_login,$cf,$g_dsn_mdp)or die("Che due palle"); 
    output --> "Che due palle "

    Altre idee?

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.