Ergebnis 1 bis 6 von 6

Thema: Regestrierung -> neue Tabelle anlegen

  1. #1
    Contao-Nutzer
    Registriert seit
    12.05.2011.
    Beiträge
    86

    Standard Regestrierung -> neue Tabelle anlegen

    Hallo,

    ich hoffe Ihr könnt mir bei meinem Problem helfen.

    Ich möchte zusätzlich nach Abschicken der Registrierung eine neue Tabelle mit dem Benutzernamen in der Datenbank anlegen.

    Der Code dazu sieht folgendermaßen aus:

    PHP-Code:
    mysql_query("CREATE TABLE IF NOT EXISTS $username ( 

        id INT(255) NOT NULL auto_increment,
        Tag date NOT NULL,
        Produkt varchar(255) NOT NULL DEFAULT '',
        Training varchar(200) NOT NULL,
        Kcal varchar(200) NOT NULL,
        PRIMARY KEY (id) );

    "
    );?> 
    Ich hab schon versucht dies in die ModulRegistration.php einzubauen, jedoch führte dies zu keinem Erfolg.

    Gibt es vielleicht eine weitere Möglichkeit?

    mfg Chacky

  2. #2
    AG CMS-Garden
    Contao-Urgestein
    Avatar von lindesbs
    Registriert seit
    05.06.2009.
    Ort
    Oer-Erkenschwick
    Beiträge
    4.154
    Partner-ID
    keine
    User beschenken
    Wunschliste

    Standard

    Erklaere doch bitte zuerst, was du vorhast.
    So wie Du es machst, geht es (zum Glueck) nicht.
    von Willi Voltz aus PR 500: Henry George sagte einmal: »Kultur ist Zusammenarbeit.«


    Contao-Hosting: begeisterter Uberspace-Nutzer

  3. #3
    Contao-Nutzer
    Registriert seit
    12.05.2011.
    Beiträge
    86

    Standard

    Ich bin momentan dabei, eine alte local laufende Webseite auf Contao umzustellen.

    Soweit läuft alles gut, jedoch benötige ich für jeden registrierten User eine eigene Tabelle, in dieser werden nachher Informationen von einem externen script gespeichert.


    Bis jetzt habe ich das folgendermaßen gemacht:

    PHP-Code:
    $passwort md5($passwort);

    $result mysql_query("SELECT id FROM Zugangsdaten WHERE username LIKE '$username'");
    $menge mysql_num_rows($result);



    if(
    $menge == 0)
        {
        
    $eintrag "INSERT INTO Zugangsdaten (username, passwort) VALUES ('$username', '$passwort')";
        
    $eintragen mysql_query($eintrag);

        if(
    $eintragen == true)
            {
            
     echo 
    " <div class='regestrieren'>Benutzername <b>$username</b> wurde erfolgreich erstellt. Du kannst dich direkt einloggen!</div>";
           
           
           
    mkdir("user/$username"); 
           
           
        
           
    //---------------------------------------------------

    mysql_query("CREATE TABLE IF NOT EXISTS $username ( 

        id INT(255) NOT NULL auto_increment,
        xxx date NOT NULL,
        xxxxx varchar(255) NOT NULL DEFAULT '',
        xx varchar(200) NOT NULL,
        xxxxxx varchar(200) NOT NULL,
        PRIMARY KEY (id) );

    "
    );
    mysql_close(); 

           
           
           } 
    --

    Ich könnte natürlich wie oben im Beispiel ein eigenes Registrierungs Formular erstellen, diese Inhalt an einen Frame leiten und somit manuell die Registrierung mit der neuen Tabelle vornehmen.
    Aber ich würde es lieber direkt über Contao machen, da dies auch als Lern-Projekt nicht schlecht ist =)

  4. #4
    Contao-Nutzer
    Registriert seit
    12.05.2011.
    Beiträge
    86

    Standard

    Wie gesagt, das war ein altes Beispiel. Läuft nur local.

    Daher jetzt die umsetzung mit Contao.

  5. #5
    Contao-Nutzer
    Registriert seit
    12.05.2011.
    Beiträge
    86

    Standard

    Momentan habe ich folgenden Code:


    modules/table/config/config.php

    PHP-Code:
    <?php 
    $GLOBALS
    ['TL_HOOKS']['createNewUser'][] = array('table''tableMethod');
    ?>

    modules/table/table.php
    PHP-Code:
    <?php class table 
    {
       
       public function 
    tableMethod($intId$arrData
       {   
       
       
    // Hier sollte der Code für die neue Tabelle stehen
    echo "test";
       }   
    }

    ?>
    Leider bekomm ich es immernochnicht hin, dass er eine Tabelle anlegt..

  6. #6
    Contao-Nutzer
    Registriert seit
    12.05.2011.
    Beiträge
    86

    Standard

    Du hast Recht,

    ich brauche garnicht für jeden User eine Tabelle.

    Der Benutzerordner wird nun über das Registrierungsmodul automatisch erstellt.

    Mit einer eigenen Erweiterung können nun nach Klick auf einen Button eigetragene Werte in der Datenbank gesichert werden.

    Die Erweiterung ist folgerndermaßen aufgebaut, man könnte mit Sicherheit noch kleine Verbesserrungen durchführen, daher poste ich diesen mal:

    PHP-Code:
    <?php

    class NewDay extends Module
    {
      protected 
    $strTemplate 'new_day_list';

      protected function 
    compile()
      {
        
    $data = array();

    /* Variable für das Tempalte erstellen */

        
    $data['newday']['user'] = "{{user::username}}";
        
    $data['newday']['time'] = date"d.m.Y"time() );


        
    /* Überprüfen ob Get_Variablen vorhande sind */

    if ($this->Input->get('neu') and $this->Input->get('tag') != "")
    {

    /* Variable für das Tempalte erstellen */

    $data['newday']['tag'] = $this->Input->get('tag');

    /* Get Variable für MYSQL umbennen */

    $day $this->Input->get('tag');

    /* Datum neu formatieren */

    $explode explode(".",$day);
    $jahr $explode[0];
    $monat $explode[1];
    $tag $explode[2];
    $Tag "$explode[2]"$explode[1]"$explode[0]";

    /* User Abfragen für MYSQL */

    $this->import('FrontendUser''User');
    $username $this->User->username;

    /* Daten in MYSQL abspeichern */

    $sqlInsertFolders "INSERT INTO tl_Kalorien (Tag,Username) VALUES ('$Tag','$username')";
          
    //Execute the database folder insert
    $this->Database->execute($sqlInsertFolders);
          
    }


    $this->Template->data $data;

      }
    }
    ?>

    Template:

    PHP-Code:
    <form method='get'>
    <input type=button onClick="document.getElementById('hidden').style.visibility='visible';" value='Neuer Tag'> 
    <span id="hidden"> 

    Tag:<input name='tag' type='text' value="<?php echo $this->data['newday']['time'] ;?>">
    <input type='hidden' name='neu' value='neu'>
    <input type='submit' value='Erstellen'>
    </span>
    Vielen Dank

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •