myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   If abfrage aus datei (hilfe) (https://mygully.com/showthread.php?t=2813152)

Slluxx 22.01.13 15:50

If abfrage aus datei (hilfe)
 
VERGESSEN IN ÜBERSCHRIFT -> PHP

ich bin NICHT erfahren und habe schon alles mögliche probiert ..
aber nix will so richtig ..

ich versuche es mir momentan selber beizubringen


nun zu meinem problem .

in einer datei ( die den usernamen trägt [jeweilig in $user" variable]) sind username und pw angegeben
datei liegt im ordner "user"
nun will ich die zwie sachen in eine verschiedene array reinhaben. [0],[1]
(hab das schon pro absatz versucht, das will aber auchnicht so.

mein aktueller code:

PHP-Code:

<?php
$pw 
$_POST["pw"];
$user $_POST["user"];
chdir("user");
$array implode("",file($user));
if(
$user==$array[0] && $pw==$array[1])
   {
   echo 
"Sie sind eingeloggt ( Es passiert jetzt nix weiter)";
   }
else
   {
   echo 
"Falscher Username oder Passwort";
   }
?>

irgendwie glaube ich, das die if abfrage nicht funktioniert ..


MfG
Slluxx

thomy68 22.01.13 16:35

chdir($user);

;)

Slluxx 22.01.13 17:07

der ordner ist fest "user" ^^

aber im ordner user wird die datei $user angelegt ..

nichdiemama 22.01.13 20:48

inhalt der variablen ausgeben lassen (var_dump(implode("",file($user));
wie sind in der datei username und passwort eigentlich voneinander getrennt?

ggf auch mal mit error ausgabe in php beschäftigen, hilft bei der fehlersuche. zBsp: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Slluxx 22.01.13 21:16

ich kann sie durch absatz trennen . momentan ist es aber ein leerzeichen
(absatz ist mir lieber .)

kannst du / ihr mir das gleich in meinen code einfügen ? . dann vestehe ich den zusammenhang besser ^^
MfG
Slluxx

nichdiemama 23.01.13 06:30

im moment sucht dein implode nicht nach einem trennzeichen, es wird user und pw also nicht korrekt aus der datei extrahieren; aus dem grund muss die if abfrage im else landen.

darauf solltest Du mit dem Ausgeben des Ergebnis selbst kommen.

in Deinen Code einfügen .. sorry, nein. Das Du Zusammenhang bzw. Funktion Deines Code besser verstehst wenn es jemand anderes für Dich macht, halte ich für eine Fehleinschätzung.

thomy68 23.01.13 09:40

Zitat:

Zitat von Slluxx (Beitrag 24221061)
der ordner ist fest "user" ^^

aber im ordner user wird die datei $user angelegt ..

stümmt ^^ hatte ich in der eile überlesen ;) der ordner ist fest ....

JETZT habe ich mir mal kurz zeit genommen ;)

1. das s***** funktioniert nur dann, wenn VORHER z.b. ein formular die variablen pw und user via POST gesendet hat. ein direkter aufruf des s*****s wird also nicht hinhauen - ausser du änderst ZUM TEST auf $_GET; um das s***** zu testen, müssen die vars beim aufruf des s*****s aber in die url.
2. haut dein implode SO nicht hin; man explodiert strings ;)
3. dein s***** schmeisst einen fehler, falls $user nicht als file vorliegt
4. chdir("user") - zum lernen ja, später wirds besser - gell;)


<?php
$pw = $_GET["pw"]; // bzw. $_POST wenns vom formular kommt
$user = $_GET["user"]; // siehe oben
chdir("user");
//$array = implode("",file($user));
$array = explode(" ", file_get_contents($user));
if($user==$array[0] && $pw==$array[1])
{
echo "Sie sind eingeloggt ( Es passiert jetzt nix weiter)";
}
else
{
echo "Falscher Username oder Passwort";
}
?>

dein benutzerfile darf hier natürlich keine endung haben;

obiges beispiel funktioniert mit dem trennzeichen " " zwischen pw und user

^^ ;)

Exe777 23.01.13 09:55

kleiner Tipp von mir.

Ich arbeite auch gerade an einer neuen Website komplett mit Userinterface, Datenbankanbindung und bla bla bla^^

Mach sowas wie User-Daten (Benutzername, PW, Mail, usw) nicht in einer Datei. das ist nachher zu umfangreich und brauch nachher viel zu viel rechenleistung vom Server (weis ja nicht was du dort noch alles speicherst).

am besten ist es wenn du die User-Daten in eine Datenbank speicherst und wenn sich ein User einloggt mit seinen Daten, dann kannst du das mit Sessions lösen (damit er eingeloggt bleibt).

Ist meiner Meinung nach die bessere lösung und da du ja Anfänger mit PHP bist, kann ich es dir nur ans Herz legen so viel wie möglich über Datenbanken zu machen. Da kommst du früher oder später nicht mehr drumherum.


MfG

Euer Exe777

thomy68 23.01.13 10:09

Zitat:

Zitat von Exe777 (Beitrag 24222698)
kleiner Tipp von mir.

Ich arbeite auch gerade an einer neuen Website komplett mit Userinterface, Datenbankanbindung und bla bla bla^^

Mach sowas wie User-Daten (Benutzername, PW, Mail, usw) nicht in einer Datei. das ist nachher zu umfangreich und brauch nachher viel zu viel rechenleistung vom Server (weis ja nicht was du dort noch alles speicherst).

am besten ist es wenn du die User-Daten in eine Datenbank speicherst und wenn sich ein User einloggt mit seinen Daten, dann kannst du das mit Sessions lösen (damit er eingeloggt bleibt).

Ist meiner Meinung nach die bessere lösung und da du ja Anfänger mit PHP bist, kann ich es dir nur ans Herz legen so viel wie möglich über Datenbanken zu machen. Da kommst du früher oder später nicht mehr drumherum.


MfG

Euer Exe777

ein richtiges(!) login-s***** schaut ja eh total anders aus; er sagte jedoch, er wolle "lernen";
ich finde den ansatz gut, grundsätzliches zunächst ohne db zu lernen.

die aussage, das eine datei mehr leistung abfordert halte ich für etwas sehr verwegen ;) denn datenbanken sind ja auch nix anderes als "verwaltete dateien" ;)

ProgMaster 23.01.13 19:55

@thomy

Ich glaube eher, dass er so nichts vernünftiges lernen wird.
Macht es Sinn mit einem Auto, das Auto nur rückwärts und max. 5km/h fährt, das Autofahren zu lernen?

Und wenn man der Meinung ist, dass es keinen Unterschied macht Daten nebenläufig aus einer Datei oder einer DB zu ermitteln, dann hat man definitiv absolut keine Ahnung von IT und sollte hier auch keine Ratschläge geben.

Slluxx 24.01.13 21:25

eigentlich wollte ich später sowieso mit datenbanken lernen . beides gleichzeitig würde aber nicht klappen . und so kann ich eben noch lernen , wie ich richtig auf nen file ( meinetwegen auch textdatei) zugreife und damit arbeite. was jetzt nicht nur auf ein logins***** bezogen sein soll ..

Ich bedanke mich doch recht herzlich für die antworten :)

das phps***** bekommt voher auch die variablen von ner html geschickt ^^ also theoretisch funtzt das ja auch .. nur nicht so wie es sollte :D

Code:


Notice: Undefined variable: _post in C:\xampp\htdocs\111\login.php on line 2

Notice: Undefined variable: _post in C:\xampp\htdocs\111\login.php on line 3

Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\111\login.php on line 6

Notice: Undefined offset: 1 in C:\xampp\htdocs\111\login.php on line 7

hm . ich bekomme jetzt zwar sie sind eingeloggt .
aber die fehlermeldungen, die meinen, das ich es nicht sein dürfte :D

( post wird nicht erkannt . also kann er die arrays doch garnicht abgleichen und das sollte dan ja automatisch zu nem ( oder 2 ) false's kommen .
dh mich nicht einloggen oder nicht ?! o.o

( ich beschäftige mich mit php erst seit 3 tagen)
bitte erklärt mich noch, was was bedeutet, wenn ihr ne lösung vorschlagt :)


MfG
Slluxx

EDIT:
PS:

meijn phps***** schaut nun so aus.. bitte nicht meckern sondern einfach nur sagen, wenn ich was übersehe/falsch mache ^^

Code:

<?php
$pw = $_post["pw"]; // bzw. $_POST wenns vom formular kommt
$user = $_post["user"]; // siehe oben
chdir("user");
//$array = implode("",file($user));
$array = explode(" ", file_get_contents($user));
if($user==$array[0] && $pw==$array[1])
{
echo "Sie sind eingeloggt ( Es passiert jetzt nix weiter)";
}
else
{
echo "Falscher Username oder Passwort";
}
?>


thomy68 27.01.13 16:12

Zitat:

Zitat von ProgMaster (Beitrag 24224515)
@thomy

Ich glaube eher, dass er so nichts vernünftiges lernen wird.
Macht es Sinn mit einem Auto, das Auto nur rückwärts und max. 5km/h fährt, das Autofahren zu lernen?

siehe unten - "ratschläge" geben - ich bin mir sicher, das du noch pickel ausdrückst und grad weisst, wie man in eine auto einsteigt, ohne sich den kopf anzuhauen ^^:)

so einen unsinn habe ich noch nie gehört. zum einen man - bleiben wir bei deinem planlosen beispiel - zuerst auto fahren lernt und dann gas gibt.

weiter will ich da gar nicht eingehen, denn erkläre einem blinden eine farbe!


Zitat:

Zitat von ProgMaster (Beitrag 24224515)
@thomy
Und wenn man der Meinung ist, dass es keinen Unterschied macht Daten nebenläufig aus einer Datei oder einer DB zu ermitteln...

..wo steht diese aussage von mir?


Zitat:

Zitat von ProgMaster (Beitrag 24224515)
@thomy
...dann hat man definitiv absolut keine Ahnung von IT und sollte hier auch keine Ratschläge geben.

sagt wer? wie wir jetzt gelernt haben, sind bis dato alle unbekannten berechtigt dies zu mir zu sagen - nur nicht du.

thomy68 27.01.13 16:17

Zitat:

Zitat von Slluxx (Beitrag 24227875)
eigentlich wollte ich später sowieso mit datenbanken lernen . beides gleichzeitig würde aber nicht klappen . und so kann ich eben noch lernen , wie ich richtig auf nen file ( meinetwegen auch textdatei) zugreife und damit arbeite. was jetzt nicht nur auf ein logins***** bezogen sein soll ..

Ich bedanke mich doch recht herzlich für die antworten :)

das phps***** bekommt voher auch die variablen von ner html geschickt ^^ also theoretisch funtzt das ja auch .. nur nicht so wie es sollte :D

Code:


Notice: Undefined variable: _post in C:\xampp\htdocs\111\login.php on line 2

Notice: Undefined variable: _post in C:\xampp\htdocs\111\login.php on line 3

Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\111\login.php on line 6

Notice: Undefined offset: 1 in C:\xampp\htdocs\111\login.php on line 7

hm . ich bekomme jetzt zwar sie sind eingeloggt .
aber die fehlermeldungen, die meinen, das ich es nicht sein dürfte :D

( post wird nicht erkannt . also kann er die arrays doch garnicht abgleichen und das sollte dan ja automatisch zu nem ( oder 2 ) false's kommen .
dh mich nicht einloggen oder nicht ?! o.o

( ich beschäftige mich mit php erst seit 3 tagen)
bitte erklärt mich noch, was was bedeutet, wenn ihr ne lösung vorschlagt :)


MfG
Slluxx

EDIT:
PS:

meijn phps***** schaut nun so aus.. bitte nicht meckern sondern einfach nur sagen, wenn ich was übersehe/falsch mache ^^

Code:

<?php
$pw = $_post["pw"]; // bzw. $_POST wenns vom formular kommt
$user = $_post["user"]; // siehe oben
chdir("user");
//$array = implode("",file($user));
$array = explode(" ", file_get_contents($user));
if($user==$array[0] && $pw==$array[1])
{
echo "Sie sind eingeloggt ( Es passiert jetzt nix weiter)";
}
else
{
echo "Falscher Username oder Passwort";
}
?>




sorry, das passiert, wenn man(n) gewohnt ist immer klein zu schreiben ;)

$_post etc. sind umgebungsvariablen und sind somit GROSS zu schreiben 8)

also...$_POST oder $_GET

und NOCHMAL: die umgebungsvariable/array $_POST hat nur dann inhalt, wenn die daten via POST an dein s***** geschickt wurden -

aber wie gesagt, setze dieses login s***** NIEMALS produktiv ein :D

NetWebs 27.01.13 16:26

Zitat:

Zitat von thomy68 (Beitrag 24222714)
die aussage, das eine datei mehr leistung abfordert halte ich für etwas sehr verwegen ;) denn datenbanken sind ja auch nix anderes als "verwaltete dateien" ;)

Daraus folgere ich, dass Du absolut keine Ahnung von IT hast!

thomy68 27.01.13 18:16

Zitat:

Zitat von NetWebs (Beitrag 24236501)
Daraus folgere ich, dass Du absolut keine Ahnung von IT hast!

ja sowas, progmasters bruder ist auch da - gibts da noch mehr von euch?

ihr müsst beide zwillinge sein, denn wenn man eurer beider beiträge mal so liest, dann erkennt man eigentlich nirgendswo effektive lösungen oder verwertbare hilfestellungen, sondern nur gequake - luftblasen - nachgequatsche :)

nun gut, aber ich will mich ja nicht mit euch meistern messen :) macht weiter so und grüsst mir eure brüder, die hier dann noch ihren senf dazugeben :)

ProgMaster 27.01.13 20:13

Selbst wenn dem so wäre, würde es nichts daran ändern, dass Deine IT-Kenntnisse stark begrenzt sind.

Mr_Braun 27.01.13 20:36

Zitat:

Zitat von ProgMaster (Beitrag 24237124)
Selbst wenn dem so wäre, würde es nichts daran ändern, dass Deine IT-Kenntnisse stark begrenzt sind.

Und darum geht es hier im Thread nicht. Also Ball flach halten!

Slluxx 23.02.13 17:58

problem ist immernoch da xD

kkhamburg 23.02.13 18:49

Wow, das ist ja mal ne umfassende Fehlerveschreibung.

Du erwartest ernsthaft das dir so jemand hilft ?

Wo ist denn der Rest deines Codes, nämlich der Teil wo der User Benutzernamen und Kennwort eingibt und wie sieht dein jetziger Code komplett aus ?

Was erhälst du für eine Fehlermeldung ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.