Avatar billede webcreator Nybegynder
30. juni 2003 - 19:09 Der er 9 kommentarer og
1 løsning

phpBB forum. Input i user-tabel - men ikke via tilmeld-siden

Hej.

Jeg benytter mig af phpBB-forummet. Her ønsker jeg at deaktivere tilmelding, så der ikke kan oprettes brugere. Dette skal nemlig gøres via en anden side.

Dog får jeg fejlen > Duplicate entry '0' for key 1

Jeg skulle mene at denne fejl kan rettes, ved at ændre på min database. Men det vil jeg helst undgå.

Jeg lister nedenfor indholdet af min tabel, og til sidst et par liniers kode, der indsættes en smule data i tabellen.

CREATE TABLE users2 (
  user_id mediumint(8) NOT NULL default '0',
  user_active tinyint(1) default '1',
  username varchar(25) NOT NULL default '',
  user_password varchar(32) NOT NULL default '',
  user_session_time int(11) NOT NULL default '0',
  user_session_page smallint(5) NOT NULL default '0',
  user_lastvisit int(11) NOT NULL default '0',
  user_regdate int(11) NOT NULL default '0',
  user_level tinyint(4) default NULL,
  user_posts mediumint(8) unsigned NOT NULL default '0',
  user_timezone decimal(5,2) NOT NULL default '0.00',
  user_style tinyint(4) default NULL,
  user_lang varchar(255) default NULL,
  user_dateformat varchar(14) NOT NULL default 'd M Y H:i',
  user_new_privmsg smallint(5) unsigned NOT NULL default '0',
  user_unread_privmsg smallint(5) unsigned NOT NULL default '0',
  user_last_privmsg int(11) NOT NULL default '0',
  user_emailtime int(11) default NULL,
  user_viewemail tinyint(1) default NULL,
  user_attachsig tinyint(1) default NULL,
  user_allowhtml tinyint(1) default '1',
  user_allowbbcode tinyint(1) default '1',
  user_allowsmile tinyint(1) default '1',
  user_allowavatar tinyint(1) NOT NULL default '1',
  user_allow_pm tinyint(1) NOT NULL default '1',
  user_allow_viewonline tinyint(1) NOT NULL default '1',
  user_notify tinyint(1) NOT NULL default '1',
  user_notify_pm tinyint(1) NOT NULL default '0',
  user_popup_pm tinyint(1) NOT NULL default '0',
  user_rank int(11) default NULL,
  user_avatar varchar(100) default NULL,
  user_avatar_type tinyint(4) NOT NULL default '0',
  user_email varchar(255) default NULL,
  user_icq varchar(15) default NULL,
  user_website varchar(100) default NULL,
  user_from varchar(100) default NULL,
  user_sig text,
  user_sig_bbcode_uid varchar(10) default NULL,
  user_aim varchar(255) default NULL,
  user_yim varchar(255) default NULL,
  user_msnm varchar(255) default NULL,
  user_occ varchar(100) default NULL,
  user_interests varchar(255) default NULL,
  user_actkey varchar(32) default NULL,
  user_newpasswd varchar(32) default NULL,
  PRIMARY KEY  (user_id),
  KEY user_session_time (user_session_time)
) TYPE=MyISAM;



$username      = $_REQUEST["user"];
$user_password = $_REQUEST["pass"];
$user_email    = $_REQUEST["mail"];


$insertSQL = "insert into users2 (username, user_password, user_email)
              values ('$username', '$user_password', '$user_email')";
mysql_query($insertSQL) or die (mysql_error());

mysql_close($conn);
Avatar billede tipsen Nybegynder
30. juni 2003 - 20:38 #1
Der er tilsyneladende allerede oprettet en bruger i pågældende tabel - og brugeren har user_id=0 - derfor kan der ikke oprettes yderligere poster med dette user_id da der er en primary key på dette felt.
Avatar billede webcreator Nybegynder
30. juni 2003 - 21:39 #2
Jamen den burde jo netop selv tage det næste tal - altså nr. 1. Jeg har som sagt ikke mulighed for at ændre databasen. Hvordan kommer jeg uden om problemet ?
Avatar billede webcreator Nybegynder
30. juni 2003 - 21:42 #3
Jeg prøvede at sætte user_id til auto_increment, så der ikke var en standard-værdi - men så fik jeg fejlen :

Duplicate entry '8388607' for key 1
Avatar billede tipsen Nybegynder
30. juni 2003 - 22:03 #4
Har du mulighed for at tømme tabellen - fordi det er stadig entydigheden af det nøgle-felt der giver problemer!
Avatar billede webcreator Nybegynder
30. juni 2003 - 22:05 #5
Ja, jeg kan tømme den - men det er absolut ikke noget der må sker mere end i starten. Surt at skulle "smide 500 brugere" væk :-)
Avatar billede tipsen Nybegynder
30. juni 2003 - 22:15 #6
lav en backup af tabellen vha. phpmyadmin, tøm den og genopfyld den!

På den måde tror jeg at det vil fungere med auto_increment, da den indstilling så har været der fra starten!
Avatar billede webcreator Nybegynder
30. juni 2003 - 22:17 #7
IC. Jeg vil lige arbejde lidt med det så - tak ! :)
Avatar billede webcreator Nybegynder
18. juli 2003 - 10:19 #8
Jeg fik løst problemet vha. en while-løkke, der tjekkede det største tal, og lagde et til dette. På den måde fremkommer det korrekte ID. Blev nød til at lave det sådan, da tabellen ikke kunne ændres :o(

Men tak for hjælpen :-)
Avatar billede tipsen Nybegynder
18. juli 2003 - 11:21 #9
Lyder mærkeligt...
Avatar billede webcreator Nybegynder
18. juli 2003 - 11:31 #10
Ja - men forummet fungerede simpelthen ikke, hvis jeg ændrede ID tabellen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester