Was ist falsch in PHP?
Stephan
- php
Hallo,
kann mir jemand sagen, was falsch ist? Ich bekomme eine leere Seite angezeigt:
---
<html><body>
<?
$pw = fopen ("pws.dat", "r") or die ("File open error");
if(!isset($_POST['password']) || $_POST['password'] == $pw){
echo "Sie sind Eingeloggt. <a href='mailliste2.php'>Weiter...</a>";
}
else "Die angegebene Schule ist falsch. Access denied.";
fclose ($pw) or die ("File close error");
?>
---
pws.dat:
---
ABC
---
mailliste.php:
---
<form action='pass.php' method='post'>
<td><input type="text" name="password"><br><input type='submit'> </td></tr>
---
Natürlich schon gekürzt. Danke für die Hilfe...
Stephan
Hello,
oooch Stephan. Typischer Blinker-Code: funktioniert, finktioniert nicht, funktioniert, ...
$pw = fopen ("pws.dat", "r") or die ("File open error");
Ich würde die Datei auch lesen: $daten = fread($pw);
if(!isset($_POST['password']) || $_POST['password'] == $pw)
{
echo "Sie sind Eingeloggt. <a href='mailliste2.php'>Weiter...</a>";
}
else "Die angegebene Schule ist falsch. Access denied.";
fclose ($pw) or die ("File close error");
?>
Grüße
Tom
Hallo,
danke erstmal, aber:
---
Warning: Wrong parameter count for fread() in /var/www/web199/html/gb/pass.php on line 4
---
bei dem Code
---
<html><body>
<?
$pw = fopen ("pws.dat", "r") or die ("File open error");
$daten = fread($pw);
if(!isset($_POST['password']) || $_POST['password'] == $daten)
{
echo "Sie sind Eingeloggt. <a href='mailliste2.php'>Weiter...</a>";
}
else "Die angegebene Schule ist falsch. Access denied.";
fclose ($pw) or die ("File close error");
?>
---
Stephan
Hello,
Warning: Wrong parameter count for fread() in /var/www/web199/html/gb/pass.php on line 4
Ich hatte auch nicht versprochen, die einen fertigen Code zu schicken. Musst Du eben mal ins php-Handbuch schauen und wirst feststellen, dass der zweite Parameter die Anzahl der zu lesenden Bytes ist. Da kannst Du nun entweder irgendwas günügend großes reinschreiben, oder aber filesize("Dateiname")
Grüße
Tom
Ah, jetzt geht es, Danke!
Hallo Stephan,
Warning: Wrong parameter count for fread() in /var/www/web199/html/gb/pass.php on line 4
*seufz* ist es denn _so_ schwer einfach mal in die Doku zu schauen? dann siehst du nämlich, dass fread zwei Parameter erwartet: http://de.php.net/fread. Falls du kein Englisch kannst, hätte es genügt mit den ersten 4 Worte der Fehlermeldung (mit Anführungszeichen ausßendrum) Google zu füttern, und du wärst auf http://www.dclp-faq.de/q/q-fehler-parameterzahl.html gestoßen.
$daten = fread($pw);
if(!isset($_POST['password']) || $_POST['password'] == $daten)
das kann nicht funktionieren, da in $daten der ganze Inhalt (bzw. soviel wie man eben ausliest) der Datei steht.
Grüße aus Nürnberg
Tobias
Danke! Jetzt geht es!
Hallo Stephan,
Warning: Wrong parameter count for fread() in /var/www/web199/html/gb/pass.php on line 4
die php-doku gibts bei http://www.php.net/download-docs.php als fertige html-help (*.chm) zum runterladen. da kann man das alles wunderbar nachschlagen ;-)
else "Die angegebene Schule ist falsch. Access denied.";
_______/^^^^
da fehlt was ;-)
freundl. grüsse aus berlin, Raik
Was denn?
Danke schon jetzt
Stephan
Hallo Raik,
die php-doku gibts bei http://www.php.net/download-docs.php als fertige html-help (*.chm) zum runterladen. da kann man das alles wunderbar nachschlagen ;-)
ja, die habe ich auch mal des öfteren benutzt, inzwischen habe ich mir aber was für meine Sidebar im Opera gebastelt :-) (was aber leider noch nicht fertig ist)
else "Die angegebene Schule ist falsch. Access denied.";
_______/^^^^
da fehlt was ;-)
was denn? die geschweiften Klammern kann man weglassen, wenn man nur eine Zeile hinter else (oder hinter if) hat. Man muss nur aufpassen, dass man entweder kein oder 2 Klammern macht, mit nur einer gibt es eine Fehlermeldung :-)
Grüße aus Nürnberg
Tobias
Hallo Raik,
else "Die angegebene Schule ist falsch. Access denied.";
^^^^
öhm... was da fehlt? "echo" vielleicht? ;-) *ggg*
freundl. grüsse aus berlin, Raik
Mal versuchen..., stimmt, da kommt nichts, mal echo dazuschreiben... Jetzt funktionierts, Danke!
Hallo Raik,
else "Die angegebene Schule ist falsch. Access denied.";
^^^^
öhm... was da fehlt? "echo" vielleicht? ;-) *ggg*
*argh* wuste ich doch, das ich da was übersehen habe - ein echo wäre wirklich nicht schlecht :-)
Grüße aus Nürnberg
Tobias [der sich erlaubt hat das 'h' im Thema bei 'Thobias' zu entfernen :-)]
Hallo Stephan,
kann mir jemand sagen, was falsch ist? Ich bekomme eine leere Seite angezeigt:
eine etwas genauere Fehlerbeschreibung wäre nicht schlecht - was soll das Script den überhaupt machen?
if(!isset($_POST['password'])
wenn $_POST['passwort'] nicht gesetzt ist, ist man auch eingeloggt?
meinst du vielleicht eher
if(isset($_POST['password']) and $_POST['password'] == $pw){
?
|| $_POST['password'] == $pw){
wo kommt $pw her?
pws.dat:
ABC
schön. nur weiß ich überhaupt nicht, was du damit eigentlich machst...
<td><input type="text" name="password"><br><input type='submit'> </td></tr>
ich hoffe doch, du verpasst einem Eingabefeld für Passwörter ein type="password" statt type="text".
Natürlich schon gekürzt.
das war wohl etwas zu gut gekürzt...
Grüße aus Nürnberg
Tobias