Passwortabfrage schlägt fehl

Passwortabfrage schlägt fehl

am 14.04.2008 21:16:23 von Max Herrmann

Liebe php community,

ich erarbeite mir gerade ein paar wenige grundlegende PHP-Grundlagen im
Sinne eines WAMP-Systems.
Dazu steht mir das Buch "Praktischer Einstieg in MySQL mit PHP" von Sascha
Kersken zur Verfügung.
Ziemlich am Anfang des Buchs wird die Konfiguration von phpmyadmin
vorgestellt.
Und genau damit hab ich ein Problem:

Ich hatte zuerst einen mysql user gemäss Buch eingeführt:

CREATE USER phpcontroller@localhost IDENTIFIED BY "ctrlPHP";
GRANT SELECTION ON mysql.* TO phpcontroller@localhost;
FLUSH PRIVILEGES;

und habe dann das setup.php gestartet um einen Server zuzufügen.
Die Abfrage des Benutzernamens/Passworts gemäss der Option "http" hat nicht
funktioniert.
Auch nicht, als ich aus der config.ini.php den dort angegebenen
Benutzernamen/Login kopiert und eingefügt hatte.
Um zu testen, ob es partout nicht geht, habe ich als nächstes in der
config.ini.php andere Benutzernamen/Logins eingefügt und mit diesen
getestet.
Ich erhielt dann wenigstens Warnungen:

Warning: Cannot modify header information - headers already sent by (output
started at c:\programme\php\phpmyadmin2101\libraries\Config.class.php(3 73)):
eval()'d code: 1) in c:\programme\php\phpmyadmin2101\common.lib.php on line
413

Gleiche Warnung für die Datei ..\http.auth.lib.php in den Zeilen 30, 31, 32
und 35.

Später habe ich gemerkt, dass die Einführung des obigen mysql-Benutzers
schlecht gewählt war, weil mysql bereits von sich aus die Endung
"@localhost" an den gewählten Benutzernamen anhängt. Also habe ich einen
neuen Nutzer ("mh") geschaffen, mit neuem Passwort ("mh"), der dann aber,
nach Änderung des Setups, in der gleichen Warnung resultierte. Der Zugang
blieb mir weiterhin verwehrt.

Die oben genannten Dateien habe ich mit WordPad geöffnet. Das hatte ungefähr
den gleichen Effekt, wie wenn ich die Motorhaube meines alten Ford öffne:
Ich versteh nicht viel, aber es fühlt sich irgendwie gut an. Ich konnte
wenigstens die Methode "header()" identifizieren, die mit obiger Warnung in
Zusammenhang steht. Aber was soll ich noch mehr schreiben? Ich hoffe, es war
detailliert genug und ich habe nichts ausgelassen und es kennt jemand von
Euch hochgeschätzten Pros bereits die Lösung.

Liebe Grüsse,

Max Herrmann

Re: Passwortabfrage schlägt fehl

am 14.04.2008 23:53:23 von Niels Braczek

Max Herrmann schrieb:

> Warning: Cannot modify header information - headers already sent by (ou=
tput=20
> started at c:\programme\php\phpmyadmin2101\libraries\Config.class.php(3 =
73)):=20
> eval()'d code: 1) in c:\programme\php\phpmyadmin2101\common.lib.php on =
line=20
> 413

28.13. Warning: Cannot add header information - headers already sent ...
http://www.php-faq.de/q/q-fehler-header.html

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Passwortabfrage schlägt fehl

am 15.04.2008 08:05:42 von Max Herrmann

>28.13. Warning: Cannot add header information - headers already sent ...
>http://www.php-faq.de/q/q-fehler-header.html

Niels,
vielen Dank für den Link. Es steht dort, dass die Methode header() vor allen
anderen Methoden stehen muss. Nur: ich hab die common.lib.php nicht
geändert.

Max

Re: Passwortabfrage schlägt fehl

am 15.04.2008 08:22:30 von Carsten Wiedmann

Max Herrmann schrieb:
> Ziemlich am Anfang des Buchs wird die Konfiguration von phpmyadmin=20
> vorgestellt.
> Und genau damit hab ich ein Problem:
>=20
> Ich hatte zuerst einen mysql user gemäss Buch eingeführt:
>=20
> CREATE USER phpcontroller@localhost IDENTIFIED BY "ctrlPHP";
> GRANT SELECTION ON mysql.* TO phpcontroller@localhost;
> FLUSH PRIVILEGES;

Das muss/braucht/soll man nicht machen. (dein MySQL-Server und phpMyAdmin=
=20
ist ja bestimmt aktuell?)


> und habe dann das setup.php gestartet um einen Server zuzufügen.
> Die Abfrage des Benutzernamens/Passworts gemäss der Option "http" hat=
=20
> nicht funktioniert.
> Auch nicht, als ich aus der config.ini.php den dort angegebenen=20
> Benutzernamen/Login kopiert und eingefügt hatte.
> Um zu testen, ob es partout nicht geht, habe ich als nächstes in der =

> config.ini.php andere Benutzernamen/Logins eingefügt und mit diesen=20
> getestet.
> Ich erhielt dann wenigstens Warnungen:

1. nennt sich die Datei nicht "config.inc.php" (im Verzeichnis phpmyadmin=
)?
2. bei einem frisch installiertem MySQL-Server ist der User "root" ohne=20
"Passwort"
3. mit was für einem Editor bearbeitest du die Datei "config.inc.php"?
3.1. die Datei solltest du nicht utf-8 codiert abspeichern
3.2. vor " en.
3.3 nach "?>" darf es keine Zeichen, Leerstellen, Zeilenumbrüche geben.=


Gruß
Carsten

Re: Passwortabfrage schlägt fehl

am 15.04.2008 09:35:41 von Irmgard Schwenteck

Hallo

Max Herrmann schrieb:

> Ich hatte zuerst einen mysql user gemäss Buch eingeführt:
>
> CREATE USER phpcontroller@localhost IDENTIFIED BY "ctrlPHP";
> GRANT SELECTION ON mysql.* TO phpcontroller@localhost;
> FLUSH PRIVILEGES;

Was möchtest Du denn erreichen?
Zur Benutzerverwaltung ist der MySQL-Administrator das bessere Werkzeug.
Du kannst Dir das zusammen mit dem MySQL Query-Browser von den
MySQL-Seiten herunterladen und einfach installieren.

> und habe dann das setup.php gestartet um einen Server zuzufügen.
> Die Abfrage des Benutzernamens/Passworts gemäss der Option "http" hat
> nicht funktioniert.

> Auch nicht, als ich aus der config.ini.php den dort angegebenen
> Benutzernamen/Login kopiert und eingefügt hatte.

Ich weiß jetzt nicht, wie es bei den neuen Versionen ist. Aber es hat
eigentlich immer gereicht, die config.inc.php selber zu editieren und
alles notwendige einzufügen.
Was passiert, wenn Du dort root mit dem bei der Installation vergebenen
Passwort (bzw eben keinem) eintippst?

> Um zu testen, ob es partout nicht geht, habe ich als nächstes in der
> config.ini.php andere Benutzernamen/Logins eingefügt und mit diesen
> getestet.
> Ich erhielt dann wenigstens Warnungen:
>
> Warning: Cannot modify header information - headers already sent by
> (output started at
> c:\programme\php\phpmyadmin2101\libraries\Config.class.php(3 73)):
> eval()'d code: 1) in c:\programme\php\phpmyadmin2101\common.lib.php on
> line 413

Dann schau mal in den Quelltext. Dort hat das PHP vermutlich eine
Fehlermeldung ausgegeben, die nicht auf dem Bildschirm zu sehen ist
(Blöde Stelle, in einem Eingabefeld oder so) und deshalb kann dann die
Function header() nicht mehr ausgeführt werden.

Gruß
Irmgard

Re: Passwortabfrage schlägt fehl

am 15.04.2008 10:44:44 von Martin Lemke

Max Herrmann schrieb:

> Ziemlich am Anfang des Buchs wird die Konfiguration von phpmyadmin
> vorgestellt.

Phpmyadmin wird zusammen mit wampp (das meinst Du wohl mit "wamp")
ausgeliefert und ist bereits konfiguriert. Du brauchts mit dem Browser
lediglich http://127.0.0.1 aufrufen und dem Link zu Phpmyadmin folgen.

Dort ist bereist ein User angelegt und Host ist standardmäßig localhost (=
127.0.0.1).

BTW: Zum WAMPP gibt es vom Verlag Addison-Wesley ein Handbuch.

Martin

Re: Passwortabfrage schlägt fehl

am 15.04.2008 10:53:32 von Gregor Kofler

Max Herrmann meinte:
>> 28.13. Warning: Cannot add header information - headers already sent ...
>> http://www.php-faq.de/q/q-fehler-header.html
>
> Niels,
> vielen Dank für den Link. Es steht dort, dass die Methode header() vor
> allen anderen Methoden stehen muss.

Nö. Es darf nur nichts vorher ausgegeben werden. (Man kann dies über
entsprechendes Output-Buffering verhindern.)

> Nur: ich hab die common.lib.php
> nicht geändert.

Es wird aber trotzdem irgendwo was ausgegeben. Dazu reicht schon ein
irgendwo vergessenens Leerzeichen a la

^

Gregor


--
http://photo.gregorkofler.at ::: Landschafts- und Reisefotografie
http://web.gregorkofler.com ::: meine JS-Spielwiese
http://www.image2d.com ::: Bildagentur für den alpinen Raum

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:04:00 von Max Herrmann

>1. nennt sich die Datei nicht "config.inc.php" (im Verzeichnis phpmyadmin)?
Wahrscheinlich schon. Bin gerade an einem anderen Rechner.

>2. bei einem frisch installiertem MySQL-Server ist der User "root" ohne
>"Passwort"
In dem o.g. Einsteigerbuch steht irgendwo, dass man sich möglichst nicht als
root anmelden sollte. Ich hab mich einfach strikt ans Buch gehalten, um
Fehler zu vermeiden.

>3. mit was für einem Editor bearbeitest du die Datei "config.inc.php"?
Mit dem Windows Editor.
>3.1. die Datei solltest du nicht utf-8 codiert abspeichern
Ich weiss leider nicht, in welchem Format der Editor abspeichert. Ich nehme
an, ASCII?
>3.2. vor " Ich werds überprüfen. Wüsste aber nicht, warum sich das Skript geändert
haben sollte.
>3.3 nach "?>" darf es keine Zeichen, Leerstellen, Zeilenumbrüche geben.
Ok. Siehe oben.

Lieben Dank für die Hinweise.

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:07:20 von Max Herrmann

> Was möchtest Du denn erreichen?
> Zur Benutzerverwaltung ist der MySQL-Administrator das bessere Werkzeug.
> Du kannst Dir das zusammen mit dem MySQL Query-Browser von den
> MySQL-Seiten herunterladen und einfach installieren.
Mag sein, dass es das bessere Werkzeug ist. Für die ersten Schritte wollte
ich mich an das Buch halten. Ich muss leider erst verstehen lernen, welchen
Nutzen ein Administrationsprogramm hat. Dann kann ich sehen, welches besser
ist.

> Ich weiß jetzt nicht, wie es bei den neuen Versionen ist. Aber es hat
> eigentlich immer gereicht, die config.inc.php selber zu editieren und
> alles notwendige einzufügen.
> Was passiert, wenn Du dort root mit dem bei der Installation vergebenen
> Passwort (bzw eben keinem) eintippst?
Ich erhalte die gleichen Warnungen und mir wird der Zugriff verweigert.

> Dann schau mal in den Quelltext. Dort hat das PHP vermutlich eine
> Fehlermeldung ausgegeben, die nicht auf dem Bildschirm zu sehen ist
> (Blöde Stelle, in einem Eingabefeld oder so) und deshalb kann dann die
> Function header() nicht mehr ausgeführt werden.
Eine Fehlermeldung im Quelltext?

Lieben Dank für die Hilfe.

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:08:55 von Max Herrmann

> Phpmyadmin wird zusammen mit wampp (das meinst Du wohl mit "wamp")
> ausgeliefert und ist bereits konfiguriert. Du brauchts mit dem Browser
> lediglich http://127.0.0.1 aufrufen und dem Link zu Phpmyadmin folgen.
>
> Dort ist bereist ein User angelegt und Host ist standardmäßig localhost (=
> 127.0.0.1).
Soweit ich weiss, erhalte ich bei Eintragen der genannten Adresse die Seite
index.html des Apache-Servers. Und da steht: "It works!"

Gruss
-Max

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:09:57 von Max Herrmann

> Nö. Es darf nur nichts vorher ausgegeben werden. (Man kann dies über
> entsprechendes Output-Buffering verhindern.)
>
>> Nur: ich hab die common.lib.php nicht geändert.
>
> Es wird aber trotzdem irgendwo was ausgegeben. Dazu reicht schon ein
> irgendwo vergessenens Leerzeichen a la
>
> > ^
Danke für den Hinweis. Werd sehen, ob dem so ist. Wüsste aber nicht, warum,
da ich an der Datei selbst keine Änderungen ausgeführt habe.

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:14:56 von Carsten Wiedmann

Max Herrmann schrieb:
>> 2. bei einem frisch installiertem MySQL-Server ist der User "root"=20
>> ohne "Passwort"
> In dem o.g. Einsteigerbuch steht irgendwo, dass man sich möglichst ni=
cht=20
> als root anmelden sollte. Ich hab mich einfach strikt ans Buch gehalten=
,=20
> um Fehler zu vermeiden.

Hm, den User den du in deinem Post beschrieben hast, wäre aber der=20
mittlerweile unnötige Controlluser für PMA, und nicht der User mit de=
m du=20
arbeitest.

Der Controlluser ist nur für die zusätzliche Funktionen des PMA zustä=
ndig,=20
und benötigt auf jeden Fall keine Rechte für die Datenbank mysql/*.

Jedenfalls gibt es erstmal den User "root". Und wenn PMA läuft solltest=
du=20
für diesen das Passwort ändern, oder kannst dann wegen mir neue einri=
chten=20
(Punkt "Rechte" in PMA).



>> 3. mit was für einem Editor bearbeitest du die Datei "config.inc.php=
"?
> Mit dem Windows Editor.
>> 3.1. die Datei solltest du nicht utf-8 codiert abspeichern
> Ich weiss leider nicht, in welchem Format der Editor abspeichert. Ich=20
> nehme an, ASCII?

Bin ich gerade auch überfragt. Bei "Speichern unter" kann man das aber =

selbst vorgeben, und sollte dann "ANSI" sein.


>> 3.2. vor "
>> geben.
>> 3.3 nach "?>" darf es keine Zeichen, Leerstellen, Zeilenumbrüche geb=
en.
> Ich werds überprüfen. Wüsste aber nicht, warum sich das Skript ge=
ändert=20
> haben sollte.

Wobei da jetzt eine Frage bleibt. Die install.php erstellt doch eine fert=
ige=20
Datei, die man gar nicht mehr mit einem Editor bearbeiten muss? Die muss =
man=20
nur ein Verzeichnis höher kopieren.

Gruß
Carsten

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:42:22 von Niels Braczek

Max Herrmann schrieb:

> Danke für den Hinweis. Werd sehen, ob dem so ist. Wüsste aber nicht=
, warum,=20
> da ich an der Datei selbst keine Änderungen ausgeführt habe.=20

Das muss nicht in derselben Datei sein. Jede Datei, die bis dahin im
Skriptlauf eingebunden wurde, kann das gewesen sein. Und nicht nur mit
einem Leerzeichen vor ?>.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:45:24 von Niels Braczek

Max Herrmann schrieb:

> Eine Fehlermeldung im Quelltext?

Im ausgegebenen HTML-Code.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Passwortabfrage schlägt fehl

am 15.04.2008 11:47:59 von Joerg Behrens

Max Herrmann schrieb:
>> Phpmyadmin wird zusammen mit wampp (das meinst Du wohl mit "wamp")
>> ausgeliefert und ist bereits konfiguriert. Du brauchts mit dem Browser=

>> lediglich http://127.0.0.1 aufrufen und dem Link zu Phpmyadmin folgen.=

>>
>> Dort ist bereist ein User angelegt und Host ist standardmäßig=20
>> localhost (=3D
>> 127.0.0.1).
> Soweit ich weiss, erhalte ich bei Eintragen der genannten Adresse die=20
> Seite index.html des Apache-Servers. Und da steht: "It works!"

Und das ist auch gut so :). Anders sieht es aus wenn du eins der=20
Komplettpakete installierst, welche halt Apache,Mysql,PHP,MySQL und mehr =

installieren.

Zur Fehlermeldung. Da steht das diese innerhalb eines eval() Aufrufs=20
geschehen ist. Diese Funktion wird nich umsonst als "evil" betitelt. So=20
aus der Ferne ist schwer zusagen was den Fehler verursacht da drin.

Mein Vorschlag ist das du das Verzeichnis mit deinem PMA noch mal=20
loescht, neu auspackst, das Verz. "config" anlegst und mittes der Config =

GUI da vom PMA eine neue config zusammen klickst. Hier nimmst du den=20
mysql Benutzer "root" mit deinem aktuellen "password" (evtl. noch leer".

Die erstelle config.inc.php eine Ebene nach oben verschieben und das=20
leere "config" Verzeichnis loeschen.

Wenn du dann immer noch magst kannst du dann ueber den PMA einen sep.=20
Benutzer anlegen und diesen dann haendisch in der config.inc.php=20
nachtragen. Solltest du aber auch normale Administrationsaufgaben mit=20
dem PMA machen wollen spricht nix dageben den MySQL Benutzer "root"=20
weiterzuverwenden. Dein PMA Verzeichnis kannst du dann spaeter ueber=20
eine .htaccess Datei komplett schuetzen.

Dran denken das aenderungen in den Benutzertabellen erst mit einem=20
Neustart aktiv werden bzw. ein "FLUSH PRIVILEGES" gebraucht wird.

Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Passwortabfrage schlägt fehl

am 15.04.2008 12:03:31 von Carsten Wiedmann

Joerg Behrens schrieb:
> Dran denken das aenderungen in den Benutzertabellen erst mit einem=20
> Neustart aktiv werden bzw. ein "FLUSH PRIVILEGES" gebraucht wird.

Natürlich macht man Änderungen nicht direkt in den Usertabellen, sond=
ern=20
über GRANT,REVOKE, SET PASSWORD... (oder halt im PMA im Bereicht "Recht=
e").=20
In diesen Fällen bruacht es kein "FLUSH PRIVILEGES".

Gruß
Carsten

Re: Passwortabfrage schlägtfehl

am 15.04.2008 12:04:23 von Stefan+Usenet

On Tue, 15 Apr 2008 11:42:22 +0200 Niels Braczek wrote:
> > Wüsste aber nicht, warum, da ich an der Datei selbst keine
> > Änderungen ausgeführt habe.

> Das muss nicht in derselben Datei sein. Jede Datei, die bis dahin im
> Skriptlauf eingebunden wurde, kann das gewesen sein.

Mehr als nur das. Er bekam als Meldung ja u.a.:

| (output started at
| c:\programme\php\phpmyadmin2101\libraries\Config.class.php(3 73)):
| eval()'d code: 1)

Das laesst darauf schliessen, dass der ausgegebene Text _irgendwo_
steht, nur vermutlich gerade _nicht_ in einer der PHP-Dateien.

Wenn man sonst gar keine Idee hat, koennte man in der Library ein
var_dump an passender Stelle einfuegen, um zu sehen, was da eval()ed
wird und dabei die unerwuenschte Ausgabe erzeugt.

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Stefan. Über den massgebenden Klee zu loben!
(Sloganizer)

Re: Passwortabfrage schlägtfehl

am 16.04.2008 00:09:49 von Martin Lemke

Max Herrmann schrieb:

> Soweit ich weiss, erhalte ich bei Eintragen der genannten Adresse die Seite
> index.html des Apache-Servers. Und da steht: "It works!"

Daneben gibt es auch eine index.php, die Dich ins Verzeichnis xampp
umleitet. Oder rufe gleich http://127.0.0.1/xampp/ auf.

Martin

Re: Passwortabfrage schlägt fehl

am 16.04.2008 00:13:35 von Martin Lemke

Joerg Behrens schrieb:

> Und das ist auch gut so :). Anders sieht es aus wenn du eins der
> Komplettpakete installierst, welche halt Apache,Mysql,PHP,MySQL und mehr
> installieren.

wampp (heißt aktuell eigentlich xampp) ist genau so ein Paket.

Martin