• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Register funktion ohne MySQL

Marc-Senpai

Minecrafter
Registriert
13 Mai 2018
Beiträge
18
Diamanten
300
Minecraft
Marc_Senpai
Hallöle,
Ich wollte eine Register php "klasse" schreiben.
Aber irgendwie klappt nichts. Bitte den fehler sagen.
Muss sagen das ich kein prof. bin (ich weiß prof. steht für Porfessor).
HTML:
<!DOCTYPE html>
<html lang="de" >

<head>
  <meta charset="UTF-8">
  <title>+++++ | Registrierung</title>
 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">

 
      <link rel="stylesheet" href="css/style.css">

 
</head>

<body>

  <form class="login-form" action="register-funk.php" method="post">
  <p class="login-text">
    <span class="fa-stack fa-lg">
      <i class="fa fa-circle fa-stack-2x"></i>
      <i class="fa fa-lock fa-stack-1x"></i>
    </span>
  </p>
  <input type="text" class="login-username" name="name" autofocus="true" required="true" placeholder="Dein Benutzername" />
  <input type="password" class="login-password" required="true" name="password" placeholder="Dein Passwort" />
      <input type="password" class="login-password" required="true" name="password2" placeholder="Passwort bestätigen" />
  <input type="submit" name="Login" value="Registrieren" class="login-submit" />
</form>
<a href="index.php" class="login-forgot-pass">Zum Login?</a>
<div class="underlay-photo"></div>
<div class="underlay-black"></div>
 
 

</body>

</html>
PHP:
<?php
if(isset($_POST['Login'])) {
echo "2";
if ( isset($_POST['name']) and trim($_POST['name']) != ''
         and
         isset($_POST['password']) and trim($_POST['password']) != ''
   and
         isset($_POST['password2']) and trim($_POST['password2']) != ''){
   
   echo "3";
if($_POST['password'] == $_POST['password2'])   {
  echo "4";  
$name = $_POST['name'];
$pw = $_POST['password']; 
     echo "5";
$benutzer = file("users.txt");
for($i=0;$i < count($benutzer); $i++){
    echo "6";
   if($benutzer[$i] != $name){
       echo "7";
$handle = fopen ("users.txt", w+);
fwrite ($handle, $name);
fclose ($handle);         
   }else
       echo "Name schon vergeben";
}
    
}else
     echo "Passwörter müssen übereinstimmen";
   
   
}else
    echo "Bitte fülle alle Felder aus";
  
}else
    echo "1";


?>
Freue mich über jede hilfe.
MfG marc
 

ES-Henne

Redstoneengineer
Registriert
3 Oktober 2017
Beiträge
41
Diamanten
0
Wenn du schon für andere anbietest HTML und php zu programmieren, dann solltest du eigentlich mit dem Problem zurechtkommen.
Bzw. solltest du fähig sein, mitzuteilen was für ein Problem du genau hast. Aber ich versuche mich trotzdem mal.

Nachdem du als Fehler "Aber irgendwie klappt nichts" angibst. Vermute ich, dass beim Webserver kein php installiert ist.

Wenn ich mir so deinen Code anschaue, dann fällt mir auf, dass zwar die Usernamen gespeichert werden sollen, allerdings nirgends die Passwörter. Wenn du wirklich ein Loginsystem erstellen möchtest, empfehle ich die Passwörter auch zu speichern.

Aber vorallem sollte an den Einrückungen nochmal gearbeitet werden, denn so ist das alles ein wenig durcheinander.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Darf ich einfach mal SQLite empfehlen? Ich weiß nicht genau ob man das mit PHP ohne Probleme damit klar kommt, wenn mehrere Prozesse auf die Datei zugreifen und ich find gerade auch leider nichts dazu. Vielleicht kennt sich hier jemand genug mit PHP aus um das schnell beantworten zu können. Jedenfalls braucht man dafür keine Datenbank aber hat trotzdem den Vorteil, dass man die Daten strukturiert speichern kann. Dann geht nämlich auch nichts kaputt, falls jemand als Username "user\nadmin" eingibt.

Muss sagen das ich kein prof. bin (ich weiß prof. steht für Porfessor).
Steht eigentlich für Professor ;)
 

KleinDev

Minecrafter
Registriert
15 August 2015
Beiträge
25
Diamanten
301
Minecraft
KleinDev
Als Alternative zur Registrierung über MySQL, gäbe es da SQLite oder die Möglichkeit eine Datei anzulegen (nicht zu empfehlen)
Zu deinem problem:

Kannst du mir bitte sagen zu welcher Zahl deine Debug Kontrolle kommt?
Und was ist die letzte Ausgabe die du bekommst?
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Wieso geht was kaputt wenn jemand als Username "user\nadmin" eingibt?
Das ist mehr eine Vermutung, ohne das Format bzw. den Code zu kennen, der den Login in der Textdatei speichert, lässt sich das nicht mit Sicherheit sagen. Da ich aber in deinem Code bisher keine einzige Stelle gefunden habe, an der du die Eingabe sauber filterst, gehe ich einfach mal davon aus, dass dein Login für solche Fehler anfällig ist.
 
Oben