You are not logged in.

  • Login

1

Wednesday, March 30th 2011, 11:03am

Was hat es mit <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>, db.txt Dateien auf sich?

Hallo ich habe mir ein Loginscript hier im Forum mal angesehen (siehe link)Loginscript und wollte dies dann auch benutzen.
In einigen weiteren Threads habe ich gelesen, dass dieses Loginscript unsicher sei!Dennoch möchte ich es einmal probieren.

Fragen
1. Was hat es mit <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> auf sich ?
2. Was sind db.txt dateien?
3. Werden die registrations Angaben direkt in die db.txt reingeschrieben, oder muss ich dies machen?
4. Muss ich eigentlich eine PHP Datei erst auf einen Server/localhost laden, damit sie Funktioniert?


Ich danke allen schon mal im Vorraus!!!(Wenn jemand mir nen link oder ein besseres/sicheres loginscript geben kann wäre das echt nett)
:)

SE

2

Wednesday, March 30th 2011, 12:48pm

1. Schau mal hier da wird es erklärt: Es gibt ganz einfach den aktuellen URL-Pfad zurück.
2. + 3.

Quoted


Diese Datei dient uns als Textdatenbank. In ihr werden wir Benutzername und Passwort speichern.

Die wird automatisch bei der Registrierung beschrieben und beim Login automatisch ausgelesen, so lange du die Datenstruktur behälst kannst du diese auch manuel ändern.

4. PHP - Dateine müssen von einem PHP-Interpreter verarbeitet werden, das sollte wie du sagst ein Server machen (Mit localhost wird der Server auf dem lokalen Rechner angesprochen, vorrausgesetzt es ist einer installiert)

Mfg Rushh0ur

3

Wednesday, March 30th 2011, 1:03pm

Ah ok danke ich habs verstanden aber könnte ich statt wie in dem bsp. POST auch GET nehmen?Ich meine GET ist die sicherere Methode?
Hier hab ich mal den einen code von secure.php

<?php
// secure.php

session_start();
if($_GET['p_submit'] == 1) {
$_SESSION['s_user'] = $_GET['p_user'];
$_SESSION['s_password'] = md5($_GET['p_password']);
}
$login = false;

$file = file('db.txt');
if($_SESSION['s_user'] != '' && $_SESSION['s_password'] != '')
foreach($file as $row) {
$row = explode("\t", $row);

$user = trim($row[0]);
$password = trim($row[1]);

if($user == $_SESSION['s_user'] && $password == $_SESSION['s_password']) {
$login = true;
}
}


if($login == false) {
if($_GET['p_submit'] == 1)
echo 'Fehler beim Login.Das Passwort ist nicht korrekt.';
else
echo 'Bitte versuchen sie es erneut.';

require('index.php');
}
if($login == false) {
if($_GET['s_user'] == 2)
echo 'Fehler beim Login.Der Benutzername ist nicht Korrect.';
else
echo 'Bitte versuchen sie es erneut';

require('index.php');
die();
}

?>
<?php
if($login == true)
{
header('Location: admin.php') ;
}
?>
</div>



Hier das login script :

<?php
// login.php
?>
<form method="post" action="secure.php">
<input type="hidden" name="p_submit" value="1" />
<table>
<tr>
<td>Benutzername:</td>
<td><input type="text" name="p_user" /></td>
</tr>
<tr>
<td>Passwort:</td>
<td><input type="password" name="p_password" /></td>
</tr>
<tr>
<td colspan="2">
<input name="buttonstyles" class="buttonstyles" type="submit" value="Login" />
</td>
</tr>
</table>
</form>

__________________________________________________________________________________________________________________________________________________

Ich habe das <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> einfach mit secure.php vertauscht, geht das auch?

This post has been edited 2 times, last edit by "Sinan Ek" (Mar 30th 2011, 1:10pm)


4

Wednesday, March 30th 2011, 1:09pm

Aut keinen Fall bei Logindaten GET verwenden, der Tutorialersteller hat sich schon was dabei gedacht warum er POST genohmen hat. ;)

Bei GET werden die Parameter an die URL angehängt, da verwechselt du wahrschienlich POST und GET.
(Theoretisch würde es aber gehen)

Mfg Rushh0ur

5

Wednesday, March 30th 2011, 1:11pm

Ja da hast du recht hab noch mal mich in nem PHP Buch eingelesen! ^^
Aber geht das was ich oben noch hingeschrieben hat so (außer das ich POST nehme)

6

Wednesday, March 30th 2011, 1:25pm

Wieso testest du es nicht einfach? ein Xampp installieren und schon hast du Apache, Mysql und php und kannst dein Script selbst testen

7

Wednesday, March 30th 2011, 1:28pm

Ich hab XAMP nur das problem ist mysql geht nicht.

8

Wednesday, March 30th 2011, 1:30pm

Für dieses Login Script brauchst du kein MYSQL. Ansonsten MySql Server gestartet?

Du meinst ob es nun mit dem Zusatz require('index.php'); gehen würde, sollte es eigentlich, doch wird womöglich die Formatierung und das Design nicht dem gewünschten entsprechen.

Mfg Rushh0ur

9

Wednesday, March 30th 2011, 1:32pm

Du meisnt ob es nun mit zusatz require('index.php'); gehen würde, sollte es eigentlich, doch wird womöglich die Formatierung und das Design nicht dem gewünschten entsprechen.
Was meinst du damit?Gib mir mal ein code bsp

10

Wednesday, March 30th 2011, 1:39pm

Ja ganz einfach, deine index.php gibt einen HTML Code zurück, und wenn du das Loginscript so verwendest werden die Infoausgaben des Logincscript vor dem HTML Code Angefügt und dementsprechend sieht die Ausgabe im Browser dan nauch aus.
Da kann ich dir keinen Code geben, dafür musst du wohl deine index.php selbert anpassen, damit die Infoausgabe an der richtigen Position erscheint.

Mfg Rushh0ur

11

Wednesday, March 30th 2011, 1:41pm

Tut mir leider ich versteh dich nicht, ich weiß nicht was du meinst!!!

12

Wednesday, March 30th 2011, 3:07pm

Hast du den noch konkret fragen? Du solltest übrigens das $_GET['...'] in deinem Script wieder zwingend durch $_POST['...'] ersetzen, da das momentan so nicht funktioniert und wie Rushh0ur schon geschrieben hat auch nicht wirklich gut ist. Grundsätzlich würde ich dir aber noch empfehlen dich ein wenig mehr noch in die Grundlagen einzulesen um ein besseres Gefühl und Verständnis für das ganze zu bekommen :-)

13

Wednesday, March 30th 2011, 5:36pm

Du solltest übrigens das $_GET['...'] in deinem Script wieder zwingend durch $_POST['...'] ersetzen, da das momentan so nicht funktioniert und wie Rushh0ur schon geschrieben hat auch nicht wirklich gut ist.
Ich weiß dies habe ich schon gemacht!Es ist mir jetzt alles schon alles klarer, aber das mit dem db.txt verstehe ich noch nicht!Trage ich die Mitglieder wie bein mysql einfach
in die db.txt ein???

zb.:
Array (
[0] => Array
(
[user] => User1
[points] => 100
[city] => Stadt1
)

14

Wednesday, March 30th 2011, 5:47pm

Das Script arbeitet zeilenweise. Jede Zeile ist wie folgt aufgebaut: (antatt von \Tab wirklich die Tab-Taste drücken)
Benutzername \Tab Passwort

Beispiel:

Source code

1
2
szabo	test
foo	bar

15

Wednesday, March 30th 2011, 7:40pm

oder geht das auch?

Source code

1
2
3
4
5
6
7
8
9
CREATE TABLE `users` (
  `UserID` int(11) NOT NULL auto_increment,
  `UserName` varchar(30) collate utf8_unicode_ci NOT NULL default '',
  `UserPass` varchar(32) collate utf8_unicode_ci NOT NULL default '',
  `UserSession` varchar(32) collate utf8_unicode_ci default NULL,
  PRIMARY KEY (`UserID`),
  UNIQUE KEY `NickName` (`Sinan Ek`),
  UNIQUE KEY `UserSession` (`123456789`)
) ENGINE=MyISAM;

16

Wednesday, March 30th 2011, 7:42pm

Du kannst natürlich auch eine MySQL Datenbank erstellen, dann muss dein Loginscript jedoch komplett umgeschrieben werden.

17

Wednesday, March 30th 2011, 7:56pm

Ah ok kannst du mir ein vollständiges bsp für db.txt geben?Wäre echt nett!!!! :)

18

Wednesday, March 30th 2011, 8:36pm

Wenn du eine db.txt brauchst, dann hat das Tutorial für dich nicht funktioniert, denn die db.txt wird dort ja über die registrierung.php verwaltet.
Nichtdestotrotz.. mit folgender db.txt kannst du dich als "admin" mit dem passwort "admin" anmelden:

Source code

1
admin	21232f297a57a5a743894a0e4a801fc3

19

Wednesday, March 30th 2011, 9:46pm

Achso ok!
Hab ich das so richtig verstanden?
1. db.txt bleibt eigentlich frei
2. über secure.php wird das passwort des registrierten users aud der db.txt abgefragt

Letzte Frage:
werden die daten wie z.b username automatisch in db.txt geschrieben oder muss ich dies tuhen?

Hoffe ich stelle mich nicht zu dumm an :P
Danke schon mal im vorraus!!!

20

Wednesday, March 30th 2011, 9:48pm

Wenn sich jemand über die registrieren.php ganz normal registriert, wird die db.txt automatisch mit dem jeweiligen Benutzer erweitert.

Similar threads

Social bookmarks