Registrierung funktioniert nicht

  • Ich mache so langsam immer mehr mit php ... und bekomme hier gerade wieder nen Anfall!

    Ich bin grad dabei nen Login mit Registrierung zu basteln. Alles an sich hat gefunzt ... bis ich die Benutzerregistrierung formular (Variablen) mäßig gestaltet habe ... seit dem geht Login und so ich bekomme aber das Formular keine neuen Leute rein!

    ...

    HELP PLS

    Formular: eintragsformular.php

    HTML
    <form action="benutzer_anlegen.php" method="post">
      Name: <input type="text" name="name" size="20"><br>
      Kennwort: <input type="password" name="pwd" size="20"><br>
      Rang: <input type="text" name="rang" size="20"><br>
      <input type="submit" value="Senden">
    </form>

    Verarbeitung: benutzer_anlegen.php

  • Hier liegt der Fehler (Die Hochkommas und Anführungszeichen):

    PHP
    $benutzer[0]['Nickname'] = $_POST['name']; $benutzer[0]['Kennwort'] = $_POST['pwd']; $benutzer[0]['Rang'] = $_POST['rang'];

    Dann noch ein paar Sachen zu deinem Code:
    - mit $_POST statt $_REQUEST arbeiten
    - http://php.net/mysql_real_escape_string (WICHTIG!!! Wenn du denkst, es sei nicht so wichtig dann gib doch mal ein Hochkomma in deinen Benutzernamen ein ;) )
    - IF Abfragen für die Felder damit die nicht leer in Datenbank gehen
    - Außen rum ein:

    PHP
    if ($_SERVER['REQUEST_METHOD'] == 'POST'){...}

    Gruß crAzywuLf :D

  • Was soll das denn?

    PHP
    $benutzer[0]['Nickname'] = "'".$_REQUEST['name']."'" ; 
    $benutzer[0]['Kennwort'] = "'".$_REQUEST['pwd']."'" ; 
    $benutzer[0]['Rang'] = "'".$_REQUEST['rang']."'" ;



    mysql_real_escape_string benutzen! mysql_error einbauen!

    Das habe ich dir auch schon mehrfach gepostet:

    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


  • - IF Abfragen für die Felder damit die nicht leer in Datenbank gehen

    Was wäre dann die Bedingung?

    Ich habe in der db ja schon gesagt für alle Felder ein ungleich 0! Reicht das nicht?

    Und Danke! Es geht!

    @ bandit600:
    Jap, sry!!!
    Ich habs vergessen. ich setz grad um alle meine php-Scripts egal ob se funzen oder ni den Spaß drum!
    Dann vergess ich das auch ni mehr. Ich gug bei php mom immer in andre schon fertige Datein um zu sehen wie es geht hab noch nicht wirklich genug auswendig im Kopf um das so zu machen!

    MfG

  • Was wäre dann die Bedingung?

    Ich habe in der db ja schon gesagt für alle Felder ein ungleich 0! Reicht das nicht?

    PHP
    if (!empty($benutzer[0]['Nickname']))
    {
    // nicht leer
    }
    else
    {
    // leer
    }


    Du solltest dir mal ein paar Tutorials durchlesen, denn dir fehlen Grundlagen!

    Gruß crAzywuLf :D

    Einmal editiert, zuletzt von crAzywuLf (6. Juli 2010 um 12:53)

  • So neues Problem: ^^ SRY
    ...

    An sich funktioniert alles Login, interne Anzeige, Logout, Registrierung
    Aber die interne wird auch angezeigt obwohl ich ni angemeldet bin!

    Link zum Login: http://darkemperor.bplaced.de/filemanager/?site=formular

    Name: Gast
    PW: gast

    das Script was eig verhindern soll das intern.php angezeigt wird und auf formular.html umleiten soll:

    PHP
    <?php
    error_reporting(E_ALL);
    
    
    session_start ();
    if (!isset ($_SESSION['user_id']))
    {
      header ("Location: index.php?site=formular");
    }
    ?>

    Die interne Seite:

    Was isen da schon wieder falsch? oder geht das nicht besser? Eig müsste ja ohne Login vorher das Script die Seitenanzeige verhindern oder?

    MfG

    DANKE im Vorraus

    EDIT:
    hier erstmal die URL der internen Seite!^^ : http://darkemperor.bplaced.de/filemanager/intern.php

    Dann habe ich zumin für die intern.php Seite das Problem geklärt. Indem ich einfach:

    PHP
    <?php
    error_reporting(E_ALL);
    
    
    session_start ();
    if (!isset ($_SESSION['user_id']))
    {
      header ("Location: index.php");
    }
    ?>


    draus gemacht habe! Jedoch spinnt er noch rum wenn ich die Datei auf einer anderen Seite einbinde!

    ...

    Zitat

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/darkemperor/www/filemanager/index.php:5) in /users/darkemperor/www/filemanager/checkuser.php on line 4

    Warning: Cannot modify header information - headers already sent by (output started at /users/darkemperor/www/filemanager/index.php:5) in /users/darkemperor/www/filemanager/checkuser.php on line 7

    Das einzige auf was ich grad komme ist, dass ich den head, html, body Tag ausgelagert habe auf diese index.php um Script zu sparen!
    liegt es daran weil der Check vor allem anderen kommen muss? Wenn ja was wäre eine Idee??? Ich müsste dann für die Seiten die intern sind alles in ein Dokument packen was sonst vorher stehen würde oder???
    *hoffe nicht*

    MfG

    EDIT 2:

    JIPPI ... ^^
    endlich ... is gut das keiner geantwortet hat! Ich habs absolut selbst gebuggt bekommen!!! *extrem stolz sei*
    ...
    Ich Depp hab ni dran gedacht das der Spaß nur in ner .php Datei funktioniert! Jetzt mal in eine gesetzt und schwups ... da ging es!^^

    MfG