Aktivierung

  • Themenstarter Themenstarter Sweetiegeraet
  • Beginndatum Beginndatum
S

Sweetiegeraet

Guten Abend,

ich habe mal eine ganz wichtige Frage an euch alle. Ich hoffe mal, dass Ihr mir da auch weiter helfen könnt.

Bei mir auf der Seite müssen sich User registrieren. Nun möchte ich aber, dass der User eine richtige Mail Addy angibt.

Nun habe ich mir das so überlegt: Ein User bekommt nach der Anmeldung eine Mail von mir. Da steht einfach etwas über die Seite drin. Kann man das denn nicht machen, dass da noch ein Link drin ist, dass der Account erst dann frei geschalten wird? Hmm wenn JA wie muss ich das dann machen?

Ich hoffe Ihr könnt mir heute Abend da noch helfen.

Gruß Sweetiegeraet
 
Hi,

vorweg erstmal: Verwendest du eine MySQL Datenbank?
Wenn dies der Fall sein sollte, kannst du nach der Registrierung des Users im Skript eine Zeichenkette zufällig generieren lassen, die du dann zu dem jeweiligen User mit in der Datenbank speicherst und natürlich auch mit dem dazugehörigen Level (level = 0). Genau diese Zeichenkette sendest du dem User auch mit der eMail. Wenn der User nun auf den Link klickt, prüfst du im Skript, ob die Zeichenkette der Zeichenkette aus der Datenbank entspricht und wenn dies der Fall ist (TRUE), setzt du den Zähler (level) auf 1...

Vielleicht hilft es dir weiter.
 
Guten Abend,

jepp ich habe eine MySQL DB. So sieht die gerade aus:

CREATE TABLE `userdata` (
`id` int(6) unsigned NOT NULL auto_increment,
`benutzername` varchar(30) default NULL,
`email` varchar(50) default NULL,
`passwort` varchar(32) default NULL,
`rights` varchar(5) default 'user',
`registriert` datetime default NULL,
`name` varchar(80) default NULL,
`geschlecht` char(1) default NULL,
`geburtstag` date default NULL,
`single` varchar(4) default NULL,
`newsletter` varchar(4) default 'nein',
`woherkennen` text,
`selbstbeschreibung` text,
`hobbies` text,
`ichmag` text,
`ichmagnicht` text,
`motto` text,
`nachricht` text,
`homepage` varchar(30) default NULL,
`messenger` varchar(5) default 'ICQ',
`messengerid` varchar(30) default NULL,
`buddies` varchar(255) default NULL,
`profil_views` int(6) default '1',
`points` int(6) default NULL,
`lastlogin` datetime default NULL,
`lastid` varchar(15) default NULL,
`falschlogin` int(2) default '0',
`gesperrt` int(1) default '0',
`zaehler` int(8) NOT NULL default '0',
`profil_besucher` varchar(200) NOT NULL default '',
`fusszeile_forum` varchar(150) NOT NULL default '',
`aktiviert` int(2) default NULL,
`bundesland` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `benutzername` (`benutzername`)
) TYPE=MyISAM AUTO_INCREMENT=116 ;

was müsste ich jetzt machen, dass ich das so machen kann, wie du mir das gerade gesagt hast? Ich hoffe du kannst mir dabei ein wenig helfen.

Gruß Sweetiegeraet
 
Was schreibst du in "rights", "zaehler" und "aktiviert"?

Hätte in die Tabelle in "rights" nach der Registrierung "0" eingetragen und ein weiteres Feld mit z.B. "activationcode" mit der generierten Zeichenkette gefüllt. Beim Klicken des Links vergleichst du generierte Zeichenkette mit "activationcode" und wenn es TRUE zurückgibt, setzt du "rights" auf die Rechte des Users.
 
du fügst noch eine spalte hinzu z.B. zufall
bei der anmeldung generierst du eine zufällige zeichenkette, die du in der DB speicherst und per mail nach verschickst als link
bsp.: http://www.deinedomain.de/activate.php?zufall=*hierdiezufälligeZeichenkette*
die spalte aktiviert ist solange auf 0 (nicht aktiviert)
wenn der user jetzt den link aus der mail klickt, dann muss dein script die zeichenketten vergleichen und bei übereinstimmung den aktivierungsstatus auf 1 (aktiviert ) setzten
dann ist die email bestätigst
flooo
 
Hallo

in "rights" steht ob der User Admin oder Mitarbeiter oder User ist

in "zaehler" steht wie oft der User sich eingeloggt hat

in "aktiviert"´sthet noch gar nichts. Das woltle ich mal für sowas nehmen.

Hmm wie müsste ich denn nun weiter machen?
 
@flooo,

das hört sich gut an. OK dann mache ich das in dem Feld "aktiviert" aber wie muss ich das machen, dass er mir da beim registreiren da gleich was einträgt und wie mach ich das dann dass er mir das in die Mail schickt und was muss dann in dem Skript stehen dass das vergleicht?
 
Hallo und guten Morgen,

danke für den Link hab mir das mal genau angesehen. Was ich nicht verstehe, wie Ihr auf den Feldtyp kommt: Aktiviert ENUM('N','Y') DEFAULT 'N' das habe ich bei mir nicht im PHPMyAdmin :-(

Dann weiter. Da steht ja folgendes:

PHP:
# Code generieren: 
srand ((double)microtime()*1000000); 
while(strlen($c) < 5) 
{ 
$c .= rand(0,9); 
}

das muss wohl ganz oben in dem Skript dann von mir auch hin oder?

Dann bei Insert verstehe ich nicht ganz was das sein soll?

PHP:
'N'
oder ist N für NEIN also beim Aktivieren?

DAnn steht noch folgendes:

PHP:
# Zur Datenbank verbinden: 
$mysqlverb = @mysql_connect($db_host, $db_user, $db_pass); 

$sql = "UPDATE users SET Aktiviert='Y' WHERE UserName='".$user."' ANDCode='".$code."'"; 

# SQL ausführen 
mysql_db_query($db_name, $sql, $mysqlverb); 

#Anzahl betroffener Datensätze ausgeben: 
if (mysql_affected_rows() < 1) 
{ 
echo "Account nicht aktiviert\nKombination aus Benutzer und Code ist nicht vorhanden."; 
} 
else 
{ 
echo "Account aktiviert!"; 
}

In was für eine Datei muss das rein? Muss ich da z.B. eine Datei anlegen, die dann aktivierne oder so heißt?

Gruß Sweetiegeraet
 
Guten Morgen Sweetiegeraet,

ein wenig kann ich dir da auch helfen. Alos das
PHP:
'N'
das ist nur dazu da, dass er es wenn die aktivierung OK ist auf
PHP:
Y
setzten kann. Sprich N heißt nicht Aktiv Y heißt Aktiv.

Warum allerdings der Code vor dem zur DB verbinden steht, das kann ich dir auch nicht sagen. Aber ich wurde das auf alle Fälle erst später setzten :-) Aber es kommt auch immer druf an wie du das Skript dann aufgebaut hast. Bei mir z.B. wir auf jeder Seite automatisch eine verbindung zur DB aufgebaut.

Dann mit dem Skript. Das kannst du dann nennen wir du willst. Du musst eben dann nur wenn du den Link erzeugen lässt auch darauf achten, dass du die richtige Datei angibst :-)

Dein Problem mit dem Type Feld das kann ich dir auch nicht sagen, warum du das nicht hast, denn ich habe es drin. Das ist ganz unten. Aber was das bedeutet keine Ahnung. Was mich ein wenig wundert ist folgendes:

('N','Y') DEFAULT 'N'

damit kann ich gar nichts anfangen. Ich hoffe ich konnte dir ein wenig helfen.

Gruß jaylibII
 
Zurück