Formular Externe Datenbank

am 20.10.2012 - 19:55 Uhr in
Hallo,
es tut mir leid euch nerven zu müssen da ich die Frage schon mehrfach in google gefunden habe, nur immer heist es nein ein Modul gibt es nicht must du selbst Programmieren und man soll die Daten in Drupal importieren.
Dann ist es nur so das die Themen nicht weiter vervollständigt wurden und ich (vielleicht suche ich falsch?) keinen lösungs ansatz finde oder eine mögliche lösung ist nur für Drupal 6 (verweis auf Module).
Daher nochmal die Frage... wie kann man ein Formular erstellen welches die Formular daten in eine Externe Datenbank speicher? Da die Datenbank von einem Spiel ist und auch bleiben soll wo Sie ist (Spiel und Webseite sollen getrennt laufen anderer Server aber externer Datenbank zugriff) bräuchte ich nun hilfe dabei was ich machen muss.
Habe von Modulen erstellen absulut keine Ahnung. Sorry
Ich benötige ein Formular welches 2 Textfelder hat.
Textfeld Benutzer: Hier kann man einen Belibigen Benutzername im Spiel eingeben
Textfeld Passwort: Hier kann man ein Passwort eingeben welches dann in die Datenbank gespeichert wird mit md5 codierung
PS: es muss geprüft werden ob Benutzername nicht eventuell schon vorhanden ist damit nicht doppelte einträge erstellt werden.
PS2: Es soll für Drupal 7 sein.
Die Datenbank:
CREATE TABLE IF NOT EXISTS `authme` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`ip` varchar(40) NOT NULL,
`lastlogin` bigint(20) DEFAULT NULL,
`x` smallint(6) DEFAULT '0',
`y` smallint(6) DEFAULT '0',
`z` smallint(6) DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Danke
Gruß Armin
- Anmelden oder Registrieren um Kommentare zu schreiben
Da wirst du selbst ein Modul schreiben müssen
am 21.10.2012 - 10:01 Uhr
Das ist keine große Sache, weil du ja nur die Darstellung innerhalb Drupals ziehst.
Du kannst die Zugriffe über Drupal sichern lassen, indem du die externe Datenbank in Drupal einbindest (sollte dann möglichst mySQL sein) und mit der Drupal API darauf zugreifst.
Alle Funktionalität musst du jedoch selbst programmieren, weil Drupal ja nichts damit zu tun hat.
Hallo Ronald, okay aba da
am 21.10.2012 - 16:32 Uhr
Hallo Ronald,
okay aba da habe wir das Problem mit dem "selbst schreiben" und de die Datenbank in Drupal reinhohlen. Beides ist mir nicht möglich :-)
Tja, Armin
am 21.10.2012 - 18:11 Uhr
dafür gibt es zwei Lösungsansätze:
1. du nimmst Geld in die Hand und beauftragst jemanden.
2. du nimmst dir die Zeit, dich in die Programmierung einzuarbeiten.
Ersteres schätze ich auf 500+ € - ist ein wenig abhängig von ein paar Parametern
Zweiteres, wenn php-Kenntnisse und Datenbankwissen vorhanden sind, 2 bis 3 Wochen intensives Arbeiten.
Ok
am 25.10.2012 - 14:46 Uhr
Also nur dass ich es richtig verstehe du willst Userdaten über ein formular das du in Dupal erstellen willst an eine andere Datenbank schicken?
Wenn das so ist muss du ein Modul schreiben. und im Modul die db wechseln hier der Thread kann dir dabei helfen
http://www.drupalcenter.de/node/691
Aber wenn du möchtest kann ich mir vorstellen, dass ich dir bei der Programmierung helfen kann. Schreib mir einfach eine Nachricht. (Du gehst auf mein Profil und dann auf Kontaktieren)
Lösung von diesem Problem
am 29.10.2012 - 09:43 Uhr
Hier ist ein kleines Modul dass dieses Problem schnell löst.
<?php
function adduser_menu () {
$items["Regestrieren"] = array(
'title' => 'Regestrieren',
'description' => 'Bitte hier regestrieren',
'page callback' => 'drupal_get_form',
'page arguments' => array('adduser_do'),
'access arguments' => array('access adduser content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function adduser_do () {
$form['username'] = array(
'#type' => 'textfield',
'#title' => t('Benutzername'),
'#description' => t('Bitte tage hier dien Wunsch Username ein'),
'#required' => TRUE,
);
$form['passwort'] = array(
'#type' => 'password',
'#title' => t('Passwort'),
'#description' => t('Bitte geb Hier ein Passwort ein'),
'#required' => TRUE,
);
$form['passwort'] = array(
'#type' => 'password_confirm',
'#description' => t(''),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Regestrieren'),
);
return $form;
}
function adduser_do_submit ($form, &$form_state) {
global $user;
$user_reg = $form_state['values']['username'];
$passwort = $form_state['values']['passwort'];
//dpm($user->name);
$passwort = md5($passwort);
/**
*Hier musst du deine Datenbank eintragen werden.
**/
//****************************************************//
$other_database = array(
'database' => 'Datenbank',//Name deiner Datenbank
'username' => 'root', //Datenbanknutzer
'password' => '', //Passwort
'host' => 'localhost', //standartmäßig localhost
'driver' => 'mysql',
);
//****************************************************//
Database::addConnectionInfo('test', 'default', $other_database);
db_set_active('test');
$select = db_select('authme', 'f')
->fields('f')
->condition('username', $user_reg, '=')
->execute()
->fetchall();
if(isset($select[0]->username)) {
drupal_set_message('Der Benutzer <b>' . $user . ' </b>ist bereits vorhanden');
}else{
$insert = db_insert('authme')
->fields(array(
'username' => $user_reg,
'password' => $passwort,
'ip' => '000.000.000',
)
)
->execute();
drupal_set_message('Deine Account wurde erfolgreich regestiert.');
}
db_set_active('default');
}
?>