PDA

View Full Version : [PHP5/MySQL] Problema nell'installazione di phpMyAdmin


[000]Jean
05-03-2008, 15:39
Sto riscontrando un'incredibile e paradossale difficoltà ad installarmi myPhpAdmin (o PMA per brevità :asd:).

Situazione iniziale:
- Vista Ultimate x64 (non ditemi fai su linux :Prrr: mi piacerebbe,ma devo fare prove per un lavoro che andrà a finire sotto win)
- Apache installato correttamente
- PHP installato correttamente (phpinfo() funziona e sembra tutto ok)
- MySQL installato correttamente (MySQL Administrator logga correttamente; anche uno scriptino stupido in php logga perfettamente)
- scompatto PMA come da istruzioni, preparo il file di config con lo script integrato
- copio la config
- apro l'index.php del PMA, mi dà la mascherina di login (ho scelto l'auth http) e poi, dopo aver macinato un po' a vuoto, va in navigazione cancellata (o, a causa di uno stupido bug di FF, su www.localhost.com :doh:)

Non riesco a cavarne niente! Tra l'altro al DB si logga, visto che se metto un login errato mi tira fuori la paginetta di errore di PMA... Aiutooo :muro:

[000]Jean
06-03-2008, 19:24
Up! Nessuno che mi sa aiutare? :(


Ho installato PHPUnit con PEAR e tentato il test del PhpMyAdmin, il risultato:
PHPUnit 3.2.15 by Sebastian Bergmann.

.II...........S...............................

Time: 0 seconds


OK, but incomplete or skipped tests!
Tests: 46, Incomplete: 2, Skipped: 1.

[000]Jean
10-03-2008, 16:02
Ho trovato qualcosa di nuovo.

Ho "debuggato" l'index.php del PMA, con un brutale die("Sono arrivato qui") per capire dove la pagina si piantasse. Ho scoperto che si pianta già sulla prima riga:

require_once './libraries/common.inc.php';

[edit] ho continuato a usare il metodo grezzo del die() per scovare il punto in cui si pianta. Ho trovato questo:
Usando require_once, ci sono questa serie di chiamate:

index.php -> /libraries/sqlparser.lib.php -> /libraries/mysql_charsets.lib.php

All'inizio di mysql_charsets.lib.php, succede questo:<?php
if (PMA_MYSQL_INT_VERSION >= 40100){

$res = PMA_DBI_query('SHOW CHARACTER SET;');

$mysql_charsets = array();
1 <===
while ($row = PMA_DBI_fetch_assoc($res)) {
2 <===
$mysql_charsets[] = $row['Charset'];
// never used
//$mysql_charsets_maxlen[$row['Charset']] = $row['Maxlen'];
$mysql_charsets_descriptions[$row['Charset']] = $row['Description'];
}
@PMA_DBI_free_result($res);
Se metto un die() al posto di /* 1 viene mostrato. Se lo metto al posto di /*2 o più in fondo, no.

Ma usare un = (assign) nella condizione di una while non è un'errore stupidissimo? o_O Comunque anche mettendoci == non torna :asd:

arara
10-03-2008, 16:53
Jean;21495376']Ma usare un = (assign) nella condizione di una while non è un'errore stupidissimo?

Non sempre, in questo caso è corretto: salva il valore ritornato da PMA_DBI_fetch_assoc($res) in $row e poi fa il test sul valore contenuto in $row. Quando il numero di colonne è pari a zero il ciclo finisce.

Hai provato con EasyPHP? E un comodo setup che installa PHP, Mysql, Apache e phpMyAdmin già preconfigurati e funzionanti:
http://www.easyphp.org

[000]Jean
10-03-2008, 17:00
Conosco EasyPHP e i vari XAMMP etc, ma purtroppo è un lavoretto per uno stage universitario, se mi ci presento con ste robette mi fustigano :banned: E poi devo sempre imparare il più possibile :cry:

[000]Jean
10-03-2008, 18:47
Ho fatto un piccolo scriptino, a quanto pare il problema è che non riuscivano le query :| Sto reinstallando tutto l'ambaradan, vediamo se stavolta va tutto ok...