Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] XAMPP - przekierowanie na nowego uzytkownika
Forum PHP.pl > Forum > Przedszkole
xix
System: Windows XP
XAMPP: 1.7.2
MySQL: 5.1.37
phpMyAdmin: 3.2.0.1

Pytanie:
Jak w najprostszy sposob przekierowac XAMPPa z domyslnego roota na nowego uzytkownika?

Opis:
Wczesniej korzystalem bezproblemowo z Krasnala i EasyPHP. Chcialem sie przesiasc na XAMPPa, ale po jego instalacji widze, ze tu sa jakies rewolucyjne zmiany (jak dla mnie): nie ma pytania o zalogowanie i nie ma zadnego panelu wylogowania. Nie udalo sie tego ugryzc intuicyjnie (np. w Setupie nic nie ma o uzytkownikach), a poprzez google znalazlem wszystko, tylko nie to, czego szukam.
jasin
Nie do końca wiem o co dokładnie Ci chodzi. Oto moja propozycja winksmiley.jpg
W http://localhost/phpmyadmin/ zakładka Uprawnienia. Tu możesz dodać, zmodyfikować użytkownika/hasło. Następnie idziesz do folderu gdzie XAMPP jest zainstalowany. Przechdozidzi do folderu phpMyAdmin i edytujesz plik config.inc.php. Tu dodajesz lub modyfikujesz:

  1. $cfg['Servers'][$i]['user'] = 'user';
  2. $cfg['Servers'][$i]['password'] = 'haslo';


Teraz po tej zmianie jak będziesz wchodzić do zarządzania bazą MySql (guzik admin na panelu xampa) to będzie logować Cię z tymi ustawieniami.
xix
Zaczelo sie od tego, ze pojawil mi sie komunikat przy wywolywaniu mysql_connect() tresci:
"Access denied for user 'ODBC'@'localhost' (using password: NO)"

Zaczalem wiec grzebac cos przy userach. Oczywiscie na samym poczatku ustawilem odpowiedniego usera i jego haslo. Po wlaczeniu XAMPP automatycznie zalogowany zostaje na konto root (zgodnie z parametrami zmiennych, ktore przytoczyles). Ale ja tak wcale nie chce. Przy Krasnalu nie bylo zadnych problemow z odpowiednim zalogowaniem, bo przy wywolywaniu phpMyAdmin pojawial sie panel logowania, gdzie moglem sobie wybrac parametry zadanego usera. W XAMPP ten panel w ogole nigdzie sie nie pojawia. Jesli chcialbym sie przelogowac na innego usera, to tez nie wiem, jak to zrobic.
jasin
No to spróbuj tak:
W tym pliku konfiguracyjnym config.inc.php ustaw
  1. $cfg['Servers'][$i]['auth_type'] = 'cookie';
Teraz przy logowaniu do panela będziesz mógł zalogować się na swojego usera. Żeby wylogować się z usera to w lewym górnym rogu będziesz miał zieloną ikonkę EXIT.
xix
Dz! - pomoglo mi latwiej korzystac z mojego usera.

Czemu w takim razie nie moge sie polaczyc z tym samym userem wykorzystujac funkcje mysql_connect()? Wciaz pojawia mi sie blad:
"Access denied for user 'ODBC'@'localhost' (using password: NO)".
Jesli wpisze mysql_connect(localhost,foo,bar), to wszystko dziala. Jesli korzystam z dodatkowego pliku ze zmiennymi: $host=localhost, $user=foo, $password=bar >> mysql_connect(host,user,password), to pojawia sie powyzszy komunikat. Zamiast zmiennych, wykorzystalem funkcje - tez nie dziala. wtf?
jasin
W sieci tak pisze:
Cytat
Aby prawidłowo połaczyc sie z serwerem MySQL musimy znac nazwe uzytkownika, hasło oraz
nazwe komputera, na którym działa serwer MySQL. Gdy nie podamy tych danych system
odmówi nam połaczenia:
shell> mysql
ERROR 1045 (28000): Access denied for user ’ODBC’@’localhost’
(using password: NO)

W systemie LINUX zamiast ’ODBC’@’localhost zobaczymy ’xxxx’@’localhost, gdzie
xxxx bedzie nazwa aktualnie zalogowanego uzytkownika.

Więc albo coś z użytkownikiem masz źle albo zmienne trzymające konfigurację gubią jakimś cudem dane ...



xix
Wynika z tego, ze nie sa przesylane zmienne z zalaczonego (funkcjami include i require) pliku. Czyzbym musial zmieniac teraz wszystkie zmienne na format $_SESSION['foo'], ktory jako jedyny dziala? Czy tak ma byc, czy to jest jednak jakis blad?
jasin
To weź trochę "podebuguj" kod... "Zdumpuj" tablice z dostępami. Może robisz gdzieś "głupi" błąd...
xix
Nie wiem, czy dobrze sie rozumiemy. Blad gdzies tkwi w przetwarzaniu php.

Nie dziala:
  1. <?php
  2. require('plik.php');
  3. mysql_connect($host,$user,$pass);
  4. ...
  5. ?>


Dziala:
  1. <?php
  2. $host=localhost;
  3. $user=foo;
  4. $pass=bar;
  5. mysql_connect($host,$user,$pass);
  6. ...
  7. ?>

Dziala:
  1. <?php
  2. require(plik.php);
  3. mysql_connect($_SESSION['host'],$_SESSION['user'],$_SESSION['pass']);
  4. ...
  5. ?>


Chce tylko wiedziec, czy to co nie dziala, to ma nie dzialac i jak to naprawic jesli to ma jednak dzialac. Moze w nowszych wersjach ma to nie dzialac, wiec trzeba zastapic zmiennymi SESSION albo jakimis innymi specjalnymi?

EasyPHP: 5.3.0 tez mi tak dziala! o co cho dzi, ke?
"Undefined variable: foo in plik on line 0"
jasin
  1. <?php
  2. require('plik.php');
  3. mysql_connect($host,$user,$pass);
  4. ...
  5. ?>


No nie zadziała bo zmienne $host,$user,$pass nie są inicjowane. Weź np. zrób var_dump($host); i zobacz co Ci zwróć. Pewnie będzie to NULL.
xix
Tak, zgadza sie - to jest NULL.
Ale zmienne zostaly zainicjowane - sa one w pliku plik.php. Wczesniej to dzialalo. Dziala to nadal, ale z wykorzystaniem metody $_SESSION['foo'].
Czy teraz mam dodawac do wszystkich zmiennych w zalaczanych plikach metode $_SESSION (albo jakas inna metode), ktora byla wczesniej zbyteczna, bo wszystko normalnie dzialalo? Moze tylko czegos nie odhaczylem w jakis ustawieniach?

Dokumentacje Apacha tez przeszukalem i nic nie widze o tych zmianach...

Uh... znalazlem:
"Windows versions of PHP prior to PHP 4.3.0 do not support access of remote files via this function, even if allow_url_fopen is enabled."
http://uk2.php.net/manual/en/function.include.php
To powinno byc na onecie w glownych informacjach. Troche pozno, bo mialem urlop i moglem sobie przy stronce pogrzebac, a tak, to urlop zmarnowalem na jakies odpoczywanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.