Eine Anmeldung in 2 Datenbanken?

Brian Folte

Angesehenes Mitglied
Hallo. Ich habe zwei Verschiende Scripst. Einmal ein Chat Portal und das andere ist ein SMS Portal. Beide liegen auf den selben Server. Nun zu dem Problem. Da es für mich schon fast unmöglich ist das SMS Script an dem Chat Script anzupassen möchte ich es mir einfacher machen und einfach wenn sich zb. jemand in dem SMS Portal anmeldet auch gleichzeitig in dem Chat Portal ist und umgedreht natürlich auch.


Meine Frage, wie ist das möglich? Beide Scripte, greifen auf die eigene Datenbank zu und bei der einen heißt die user tabelle user und bei dem anderen script heißt sie chwuser so nun muß es doch wie gesagt irgendwie möglich sein das die anmeldung in beiden datenbanken gespeichert wird oder? vielen dank für eure hilfe im vorraus. lg brian
 
Hi brian,

Ja, eigentlich ist das schon möglich. Du wirst aber nicht um eine Anpassung eines der Scripts an den entsprechenden Stellen herumkommen (überall wo die Tabelle ausgelesen wird und wo in sie geschrieben wird). Das würde ja vom Aufwand her noch vertretbar sein. Problematisch wirds erst, wenn die beiden Tabellen nicht denselben Aufbau haben, was ja ziemlich sicher so ist. D.h. du musst die Tabelle so abändern, dass das Script, dessen Tabelle es eigentlich ist, immer noch funktioniert und das andere Script mit der neuen Tabelle zurechtkommt.

Ferndiagnose ist hier schwierig, ich weiss ja nicht wie die Scripte und ihre Tabellen aufgebaut sind...

Greats,

Stefan
 
hi hier mal ein vergleich der beiden user tabellen von der datenbank
$db->query("CREATE TABLE ".$db_tblpre."user_registration (
`regid` INT(10) UNSIGNED NOT NULL auto_increment PRIMARY KEY,
`username` VARCHAR(255) NOT NULL UNIQUE,
`password` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`activationid` VARCHAR(255) NOT NULL,
`time` INT(14) UNSIGNED NOT NULL,
`additionalfieldinfo` TEXT NOT NULL
)");


und hier die andere

CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`login` text NOT NULL,
`passwort` text NOT NULL,
`name` text NOT NULL,
`vorname` text NOT NULL,
`nummer` varchar(11) default NULL,
`email` text NOT NULL,
`aktiv` tinyint(1) NOT NULL default '0',
`strasse` varchar(100) NOT NULL default '',
`plz` int(5) NOT NULL default '0',
`ort` varchar(100) NOT NULL default '',
`free` int(12) NOT NULL default '0',
`free_send` int(1) NOT NULL default '0',
PRIMARY KEY (`id`,`id`)
) TYPE=MyISAM AUTO_INCREMENT=236 ;

wie bzw was müßte ich nun dort genau ändern bzw anpassen damit das alles klappt?
könnte ich nicht einfach, die beiden tabbellen zusammen kommen lassen?
also das beide scripte in eine tabelle schreiben? nur dazu müßte mir einer sagen können wie und wo ich was ändern muß. lg brian
 
hallo brian,
wie stefan schon schreibt, musst du deine beiden scripte entsprechend anpassen. d.h. du erweiterst beide scripte um einen weiteren INSERT-befehl. hier musst du natürlich die post-werte deiner anmeldeformulare in die entsprechenden felder schreiben.

die felder username, passwort und email hast du ja in beiden tabellen vorliegen.

wenn du genauere infos brauchst, poste einfach mal den schnipsel wo die INSERT-befehle stehen.


viele grüße,
torge
 
hi meinst du das?
SQL mysql_query("

INSERT INTO user (login, passwort, name, vorname, nummer, email, strasse, plz, ort)

VALUES ('$login', '$passwort', '$name', '$vorname', '$nummer', '$email', '$strasse', '$plz', '$ort')

");


und hier das stück aus dem anderen script.

SQL $db->query("INSERT INTO ".$db_tblpre."user_registration (username,password,email,activationid,time)
VALUES ('$username','".MD5($password)."','$email','$activationid',$time)");
showsystempage("<b>".insertText('registrationcompleted')."</b><p>".insertText('pleasewaitforconfirm')."</p>");
 
hi,
genau. hier werden die daten bei beiden scripten in die datenbank geschrieben:

bei dem oberen script stehen dir folgende variablen zur verfügung:

$login,
$passwort,
$name,
$vorname,
$nummer,
$email,
$strasse,
$plz,
$ort

hier brauchst du natürlich noch die variable:

".$db_tblpre."user_registration

die wird irgendwo in der config stehen

und

$activationid
$time
$username -> gehört bestimmt zum chat, oder?

dann kannst du vom ersten script die daten einfach in einem 2ten query in die datenbank schreiben.

vielleicht solltest du das obere formular noch anpassen, damit du $username erhälst.

das ganze dann noch in die andere richtung.

nur bei der anmeldung für einen chat, gibt man ja ungerne seine komplette anschrift und telefonnummer an, oder?
d.h. entweder du verzichtest auf die daten und übergibst per 2tem query die daten die du hast oder du erweiterst
auch hier die anmeldung...

hoffe das war verständlich...

grüße,
torge
 
Du hast zweimal das Passwort feld, falls das eine mal das passwort nicht kodiert ist, kannst du die tabellen nicht in eine zusammenführen ohne wegen der select und updates dein gesamtes template umzuschreiben.
tongue.gif
. Dann must du erst entweder das passwort im template überall kodieren oder überall entkodieren oder einfach zwei felder mit passwörtern unter verschiedenem feldnamen einrichten und überall im script den alten passwortfeldnamen durch den neuen ersetzen.

ganz einfach mit crimson editor find in files, alle files öffnen und replace in all open files.
laugh.gif


Andererseits kannst du ja auch im sms formular die insert vom chat hinzufügen. allerdings kriegst du hier probs mit der id als primary und autoincrement. falls du mehr anmeldungen im chat hast, schreib zuerst die
chat insert und lies dann mit $idchat=mysql_insert_id() die id aus. im sms insert löscht du autoincrement und setzt in den insert ganz an den anfang das feld id hinzu und fügst $idchat als wert ein.

gruss

Tümmel
 
Zurück
Oben