PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : htaccess Daten als Variable in php übergeben?


Mr. Lolman
2006-03-08, 15:34:19
Geht das?

DR.DEATH
2006-03-08, 16:02:41
Koennt sein, dass ich falsch liege. So wie ichs verstanden hab, moechtest du die Daten aus einer .htaccess in PHP verwenden.
Du musst dazu nur einen Filestream auf die Datei oeffnen und die Daten in eine Variable speichern. Danach kannst du sie verwenden.

Stichwort: file() oder fopen() oder jede Menge andere Funktionen

Tipp: Gewoehn dir an, auf www.php.net, einfach in der "function list" (oben rechts) nach Stichwoertern zu suchen, wo denkst es koennte passen (findet sich zu 99% was). Ansonsten ist die Dokumentation auch sehr gut.

Coda
2006-03-08, 16:31:21
Wozu? Das riecht irgendwie förmlich nach Sicherheitslücke :|

Mr. Lolman
2006-03-08, 16:33:13
Wozu? Das riecht irgendwie förmlich nach Sicherheitslücke :|

Um den eingebenen Usernamen in ne Datei speichern zu können.

Mr. Lolman
2006-03-08, 16:34:05
Koennt sein, dass ich falsch liege. So wie ichs verstanden hab, moechtest du die Daten aus einer .htaccess in PHP verwenden.
Du musst dazu nur einen Filestream auf die Datei oeffnen und die Daten in eine Variable speichern. Danach kannst du sie verwenden.

Stichwort: file() oder fopen() oder jede Menge andere Funktionen

Tipp: Gewoehn dir an, auf www.php.net, einfach in der "function list" (oben rechts) nach Stichwoertern zu suchen, wo denkst es koennte passen (findet sich zu 99% was). Ansonsten ist die Dokumentation auch sehr gut.

Nicht ganz ich, wollt die über htaccess eingebenen Logininformationen als Variable in PHP weiterverwenden. Bezügl. deines Tipps: Danke. PHP.net ist bei mir ohnehin schon Anlaufstelle Nr. 1.



Andere Frage: Da ich denke, dass man die Logininformationen nicht so einfach in PHP übertragen kann, hab ich mich daran gemacht, n eigenes Login Script zu basteln. Jetzt gibts aber folgendes Problem:

In der Datei login.php steht u.a. folgendes:

<?php
require './config.php';
if (in_array("$inUserName",$UserName) && $inPassword==$Password) {
header('Location: ../quiz.php?Page=Home');
}
?>


In config.php:

<?php
$UserName = array(
'Heinz',
'Peter',
'Toni',
'Susi',
);
$Password = "123123";
?>


Und so sieht die Fehlermeldung aus:

Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\xxxxxxxxxxxxxxx\login.php on line 3


Wenn ich die Daten der config.php direkt in die login.php eintrage, funzt alles. Warum das?

/edit: Geb ich "Wrong datatype for second argument" in Google ein, find ich ~600.000 Ergebnisse, aber keine Antwort. ;(

DR.DEATH
2006-03-08, 17:01:05
<snip>

In der Datei login.php steht u.a. folgendes:
<?php
require './config.php';
if (in_array("$inUserName",$UserName) && $inPassword==$Password) {
header('Location: ../quiz.php?Page=Home');
}
?>

In config.php:
<?php
$UserName = array(
'Heinz',
'Peter',
'Toni',
'Susi',
);
$Password = "123123";
?>

<snip>

Es koennte ein Problem sein, dass in der login.php, beim in_array() die Variable $inUserName in Hochkommas steht (nur Vermutung). Ausserdem ist in der config.php im array() ein Komma zu viel (nach Susi kommt ja nichts mehr).

Desweiteren koenntest du evtl. an die htaccess Daten kommen, guck dir mal $_SERVER an (kann sein, dass es drin steht -> PHP_AUTH_USER / PHP_AUTH_PW). Ansonsten mach dir in ne Datei ein phpinfo() und guck dir den Abschnitt "PHP Variablen" (letzte Abschnitt) an, evtl. findet sich da was. Ansonsten musst du eben dein login Script nehmen.

Mr. Lolman
2006-03-08, 18:17:10
Thx. Angeblich kann man die Login Informationen ganz leicht mir $REMOTE_USER und REMOTE_PWD auslesen. Kanns aber leider nicht testen, da ich zuhase keinen Apache Webserver laufen hab.

Kinman
2006-03-10, 16:30:50
Apache Webserver installieren sollte nicht das Problem sein. Wenn Du Dir das Konfigurieren nicht untun willst such mal nach XAMPP (http://www.apachefriends.org/de/projects.html) . Das funktioniert soweit ich weiß ganz gut.

mfg Kinman

Mr. Lolman
2006-03-10, 16:33:31
Nach langem Überlegen, bin ich draufgekommen, dass ein spezifisches Logincript doch praktischer ist.

Blöderweise bräucht ich da eine globale Variable, damit ich denn eingebenen Namen zum Schluss in die Auswertung speichern kann. Aber AFAIK lässt PHP ja keine globalen Variablen mehr zu. Und mittels Post-formular gehts auch nicht, da ich aufgrund der Passwordkontrolle mittels PHP-Script die neue Seite aufrufe, anstatt in der Form.

Konkret: Wie kann ich "inUserName" später wieder abfragen (zB in ner auswertungs.php)

<?php
require './config.php';
if ($inPassword==$Password) {
header('Location: ../quiz.php?Page=Home');
}
?>
<html>
<head>
<title>phpQuest - Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body><div align="center">
<div align="center"><font size="6">phpQuest</font> </div>
<form action="./login.php?Page=Login" method="post" name="Login" id="Login">
<div align="center">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="96">Benutzername:</td>
<td width="204"><input name="inUserName" type="text" id="inUserName" size="20">
</td>
</tr>
<tr>
<td>Passwort:</td>
<td><input name="inPassword" type="password" id="inPassword" size="20">
</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Login">
</div></td>
</tr>
</table>
</div>
</form>

<div align="center">
<?php include '../footer.php'?>
</div>
</body>
</html>


Oder geht das etwa garnicht?

Kinman
2006-03-10, 16:51:25
Sessions ist das magische Wort!
http://www.php.net/manual/de/ref.session.php

mfg Kinman

Mr. Lolman
2006-03-10, 17:15:52
kewl thx.