php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > Apps und PHP Script Gesuche
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Apps und PHP Script Gesuche Hier könnt ihr nach PHP Skripten und Programmen fragen. Postet eure Wünsche

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-06-2015, 19:26
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard Login-Abfrage über txt-Datei

Hallo ihr Lieben,
ich habe ein Formular geschrieben, indem der Benutzername in einer externen txt-Datei gespeichert wird. Im weiteren Schritt möchte ich eine Funktion schreiben, die den Nutzernamen als Parameter übergeben bekommt und als Ergebnis ein "true" für Nutzer existiert oder "false" für Nutzer existiert nicht zurückgeben wird. Außerdem habe ich vorher einen Zeilenumbruch eingefügt, der an der Stelle dann entfernt werden müsste.

Leider waren alle Versuche, solch eine Funktion zu schreiben, ohne Erfolg.

Mein bisheriges Skript:

<form method="post" action="uebung4.php">
<input name="benutzername" size="10" />
<input type="submit" name="namenSenden" value="Benutzernamen speichern" />

</form>

<?php

if(isset($_POST['benutzername'])) $benutzername = $_POST['benutzername']; else $benutzername="";

$ausgabe="\n".$benutzername;

$datei=fopen("benutzernamen.txt","a") ;

$output=fwrite($datei,$ausgabe);
fclose($datei);


$zeilenArray = file('benutzernamen.txt');

//Ausgeben des Arrays mit einer foreach Schleife
foreach ($zeilenArray as $zeilenNummer => $zeile) {
echo "Benutzer: <b>".$zeilenNummer."</b> : " . $zeile . "<br>\n";

}

?>

Ich wäre euch bei hilfreichen Antworten sehr dankbar.

Liebe Grüße
Mit Zitat antworten
  #2 (permalink)  
Alt 20-06-2015, 19:38
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Was ist jetzt die Frage?

Du solltest übrigens das EVA-Prinzip einhalten, also Verarbeitungscode nicht mit HTML-Ausgabe vermischen. Die Verarbeitung (Dateioperationen, Datenbankzugriffe, Berechnungen, etc.) haben vor der HTML-Ausgabe stattzufinden.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-06-2015, 19:50
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

Laut meinem Prof, sollen wir alles in eine Datei schreiben :/ .
Meine Frage ist, wie ich die txt-Datei danach überprüfe, ob der eingetragene Benutzername vorhanden ist. Dies soll mit true und false übergeben werden.
Ich habe jetzt folgenden Ansatz:
<?php

$datei=fopen("benutzernamen.txt","r") ;
$benutzername = array($_POST['benutzername']);
if (in_array($_POST['benutzername'],$benutzername)) {
echo "Nutzer enthalten";
}
fclose($datei);

?>

Allerdings ist das noch unvollständig und es ist kein true bzw false enthalten.
Mit Zitat antworten
  #4 (permalink)  
Alt 20-06-2015, 19:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hananananan Beitrag anzeigen
Laut meinem Prof, sollen wir alles in eine Datei schreiben :/ .
Das kannst du ja machen. Trotzdem solltest du das EVA-Prinzip einhalten.

Zitat:
Zitat von Hananananan Beitrag anzeigen
Meine Frage ist, wie ich die txt-Datei danach überprüfe, ob der eingetragene Benutzername vorhanden ist. Dies soll mit true und false übergeben werden.
Ich habe jetzt folgenden Ansatz:
<?php

$datei=fopen("benutzernamen.txt","r") ;
$benutzername = array($_POST['benutzername']);
if (in_array($_POST['benutzername'],$benutzername)) {
echo "Nutzer enthalten";
}
fclose($datei);

?>

Allerdings ist das noch unvollständig und es ist kein true bzw false enthalten.
Beschreibe mal jede Programmzeile, was dort passiert.
Mit Zitat antworten
  #5 (permalink)  
Alt 20-06-2015, 20:07
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

?php

$datei=fopen("benutzernamen.txt","r") ; Datei wird geöffnet
$benutzername = array($_POST['benutzername']); der eingetragene Benutzername ist in der Variable $benutzername verpackt
if (in_array($_POST['benutzername'],$benutzername)) {
echo "Nutzer enthalten"; wenn der eingetragene Benutzername in der txt.Datei steht, gebe aus "Nutzer enthalten"
}
fclose($datei); Datei wird geschlossen

?>


Der Code ist bestimmt fehlerhaft, denn das Echo steht die ganze Zeit da, auch wenn ein anderer Benutzername eingetragen wird (trotz else-Anweisung).
Mit Zitat antworten
  #6 (permalink)  
Alt 20-06-2015, 20:22
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Du liest nirgendwo den Benutzernamen aus der Datei aus. Du vergleichst nur den eingegebenen Benutzernamen mit dem eingegebenen Benutzernamen, und das muss logischerweise immer der gleiche sein.
Mit Zitat antworten
  #7 (permalink)  
Alt 20-06-2015, 20:36
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

Stimmt. Ich hab es so versucht :

<?php

$datei=fopen("benutzernamen.txt","r") ;
while (!feof($datei))
{
$inhalt = fgets ($datei, 1000);

echo "Nutzer enthalten";

}



fclose($datei);

?>

Aber so wird das echo mehrmals hintereinander ausgegeben.
Kannst du mir auf die Sprünge helfen?
Mit Zitat antworten
  #8 (permalink)  
Alt 20-06-2015, 20:44
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Wie sind die Benutzernamen in der Datei überhaupt gespeichert?
Mit Zitat antworten
  #9 (permalink)  
Alt 20-06-2015, 20:49
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

die Namen die ins Feld eingetragen werden, werden durch diese Funktion in die txt Datei gespeichert.
$datei=fopen("benutzernamen.txt","a") ;

$output=fwrite($datei,$ausgabe);
fclose($datei);

Die txt-Datei ist anfangs leer, also bevor man irgendeinen Namen einträgt.

du kannst dir hier die Ausgabe unter Teil 4 anschauen
http://hanan.bplaced.net/uebung4.php

Geändert von Hananananan (20-06-2015 um 20:55 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 20-06-2015, 21:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das beantwortet meine Frage nicht. Was in $ausgabe steht, könnt ich höchstens raten.

Also, mit welcher Struktur wird die Textdatei angelegt?
Mit Zitat antworten
  #11 (permalink)  
Alt 20-06-2015, 21:23
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

Das ist der komplette Code. Ich hoffe das beantwortet dir deine Frage.

<h3>3. Teil - Benutzernamen speichern</h3>

<form method="post" action="uebung4.php">
<input name="benutzername" size="10" />
<input type="submit" name="namenSenden" value="Benutzernamen speichern" />

</form>

<?php

if(isset($_POST['benutzername'])) $benutzername = $_POST['benutzername']; else $benutzername="";

$ausgabe="\n".$benutzername;

$datei=fopen("benutzernamen.txt","a") ;

$output=fwrite($datei,$ausgabe);
fclose($datei);


$zeilenArray = file('benutzernamen.txt');

//Ausgeben des Arrays mit einer foreach Schleife
foreach ($zeilenArray as $zeilenNummer => $zeile) {
echo "Benutzer: <b>".$zeilenNummer."</b> : " . $zeile . "<br>\n";

}

?>


<h3>4. Teil - Login</h3>


<form method="post" action="uebung4.php">
<input name="benutzername" size="10" />
<input type="submit" name="namenSenden" value="Benutzernamen speichern" />

</form>

<?php

$datei=fopen("benutzernamen.txt","r") ;
for ($i = 0; $i < count($datei); $i++)
{
echo "Nutzer enthalten";
}



fclose($datei);

?>
Mit Zitat antworten
  #12 (permalink)  
Alt 20-06-2015, 21:28
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Warum verwendest du bei der Ausgabe der Benutzernamen file(), aber bei der Prüfung nicht?

Du hältst übrigens immer noch nicht das EVA-Prinzip ein. Dateioperationen gehören vor die HTML-Ausgabe.
Mit Zitat antworten
  #13 (permalink)  
Alt 20-06-2015, 21:43
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

file funktioniert nicht.
Ich würde gerne erst mein Problem lösen, bevor ich mich an die Feinheiten ran mache. Das ist vorerst nicht von Priorität.

Also, hast du eine Lösung für mich? Mir wurde der Tipp gegeben, die txt mittels in_array auszulesen, und die Bedingung dann mit einer for-Schleife auszuführen. Leider klappts bei mir nicht.
Mit Zitat antworten
  #14 (permalink)  
Alt 20-06-2015, 22:09
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hananananan Beitrag anzeigen
file funktioniert nicht.
"funktioniert nicht" ist keine Fehlerbeschreibung.
Mit Zitat antworten
  #15 (permalink)  
Alt 20-06-2015, 22:32
Hananananan
 Registrierter Benutzer
Links : Onlinestatus : Hananananan ist offline
Registriert seit: Jun 2015
Beiträge: 21
Hananananan befindet sich auf einem aufstrebenden Ast
Standard

und das ist keine Antwort auf meine Frage.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
auslesen, login-abfrage, txt-datei, überprüfen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login über mysql Abfrage und Session ! Problem lector PHP Developer Forum 10 02-04-2006 16:42
Txt Datei Benji PHP Developer Forum 8 09-07-2004 15:06
.txt Login fehlgeschlagen alexs PHP Developer Forum 13 21-04-2004 17:12
abfrage in txt Datei speichern emtec SQL / Datenbanken 21 08-12-2003 12:31
txt Datei Benji PHP Developer Forum 9 11-09-2003 23:19

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:38 Uhr.