fopen() fread() von txt klappt nicht, wird nicht ausgeführt!
ossi
- php
hallo!
ich hab da eine mysql-verbindungsdatei (connect.php), die soll aus einer *.txt die daten (pass, user etc.) auslesen und dann anwenden, klappt aber leider nicht, obwohl die lösung aus einem php-buch ist, das internet (tuts) gibt nicht mehr her??
diese connect.php lautet:
<?
$datei=fopen ("pass.txt", "r");
echo fread ($datei,2000);
fclose($datei);
$con= @mysql_connect($db_host,$db_user,$db_pass)
or die ("Cannot connect to MySQL.");
$db = @mysql_select_db($db_name,$con)
or die ("Cannot select the $db_name database. Please check your details in the database connection file and try again");
print "Datenbankverbindung erfolgreich!";?>
ich kriege folgende fehlermeldungen???
Warning: fopen() [function.fopen]: Unable to access pass.txt in /home/www/web56/html/connect.php on line 2
Warning: fopen(pass.txt) [function.fopen]: failed to create stream: No such file or directory in /home/www/web56/html/connect.php on line 2
Warning: fread(): supplied argument is not a valid stream resource in /home/www/web56/html/connect.php on line 3
Warning: fclose(): supplied argument is not a valid stream resource in /home/www/web56/html/connect.php on line 4
Cannot select the database. Please check your details in the database connection file and try again
das gibts doch nicht, chmod 777 ist klar gesetzt, pass.txt liegt im selben Verz. wie das connect.php
Hiho,
erst mal ist dein System an sich schon alles andere als gut. Du solltest Passwörter niemals in Klartext in einer frei zugändlichen Datei wie .txt speichern. Nutze dazu lieber eine PHP Datei die du includest. Das geht einfacher und ist sicherer. Denn ein pass.txt ist schnell mal in den Browser eingetippt und schon hat derjenige vollen Zugriff auf deine datenbank. Das hier ist viel besser:
pass.php
<?php
$mysql['pass'] = "geHeim";
$mysql['username'] = "User";
?>
connect.php
include("pass.php");
$con= @mysql_connect($db_host,$mysql['user'],$dmysql['pass']);
Marc
Mist.. Schon wieder nicht erster.. :-)
TomIRL
Moin:
Zu deinem Fehler fand ich unter
http://de3.php.net/manual/de/print/function.fopen.php
folgendes:
Ist PHP zu dem Schluss gekommen, dass filename eine lokale Datei spezifiziert, wird es versuchen, einen Stream an dieser Datei zu öffnen. Die Datei muss für PHP verfügbar sein, weshalb Sie sicherstellen müssen, dass die Dateirechte diesen Zugriff ermöglichen. Wenn Sie safe mode oder open_basedir aktiviert haben, können weitere Einschränkungen zutreffen.
Mal abgesehen davon, das Du Quatsch machst..
Wenn Du die Datei pass.txt mit vollen Rechten versiehst, dann kann jeder Dein passwort auslesen.
Besser ist es eine solche Datei .php zu nennen und zu includen.
include() ist Dein Stichwort.
Die Variante schmeisse bitte weg...
Ist in Deinem eignen Interesse.
Viele Grüße TomIRL
grüsse,
Warning: fopen() [function.fopen]: Unable to access pass.txt in /home/www/web56/html/connect.php on line 2
mal 2 möglichkeiten auf die schnelle:
.) das file befindet sich nicht dort
.) du hast keine zugriffsrechte
ne andere möglichkeit ist auch,
das du dir ein file pass.php anlegst
das so aussieht
<?
$db_host=host;
$db_user=user;
$db_pass=pass;
?>
und das includest du einfach...
was auch den vorteil hat das jemand, der www.deinedomain.com/pass.txt eingibt nicht ein textfile mit deinen zugangsdaten bekommt...
so long,
hoagie
Hello,
ich hab da eine mysql-verbindungsdatei (connect.php), die soll aus einer *.txt die daten (pass, user etc.) auslesen und dann anwenden, klappt aber leider nicht, obwohl die lösung aus einem php-buch ist, das internet (tuts) gibt nicht mehr her??
Schau Dir mal http://tut.php-q.net an. Das Tutorial ist inzwischen ganz schön gewachsen und meiner Meinung nach sehr brauchbar.
Liebe Grüße aus http://www.braunschweig.de
Tom