PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktivierungslink erneut zuschicken lassen [Ohne Klamm]



FloMK
19.11.2009, 15:31
Hallo,

ich habe mir das Addon geladen, damit User sich den Aktivierungslink erneut zuschicken lassen können.

entfernt von DimpleX fremdcode


Nun betreibe ich jedoch ein Vms ohne Klammanbindung und jetzt bekomme ich es nicht hin, dass das auch so klappt.

Ich habe in das Feld Klamm-Id jetzt einfach mal die User Id eingetragen. Das klappt nicht.

Was kann ich tun.

LG

didith1207
19.11.2009, 15:41
ich gehe mal davon aus das du deinen account schon aktiviert hast das klappt dann natürlich nicht da deine uid nicht mehr unter aktivierungen in der DB drinnen ist ;)

ich sehe im script keinen fehler sollte also funktionieren

Rallef
20.11.2009, 18:56
Funktioniert auch.

Wenn man es mit einem bereits aktiviertem Account testen will, dann einfach die User-ID des eigenen Accounts in der db in vms_aktivierungen einfügen.

Dort landen auch die User-IDs aller neu erstellen Accounts - beim Klicken der Aktivierungsmail wird der Eintrag dort wieder gelöscht.

Alles was man bei einem VMS ohne Klammanbindung hierbei noch tun kann ist "Klamm-ID" in z.B. "User-ID" ändern.

Rallef
20.11.2009, 19:19
Was mich aber dann doch interessieren würde ist folgendes:

wenn sich ein User neu auf einer Seite ohne Klammanbindung anmeldet, so weiss er ja nicht, welche User-ID ihm zugeteilt wurde.

Bei Seiten mit Klammanbindung ist User-ID = Klamm-ID, und die Klamm-ID kennt der User ja.

Will der User aber bei Seiten ohne Klammambindung jetzt seinen Link erneut zuschicken lassen, wird das schwierig.

Irgendwie müsste man es machen, dass der Nickname, anstelle der User-ID abgefragt wird. Allerdings müsste dies dann so gemacht werden, dass nicht nur der Nicknamen, sondern dann vom Script auch die damit verbundene User-ID aus der Tabelle vms_aktivierungen auf Vorhandensein geprüft wird, damit sich User die bereits aktiviert sind, nicht nochmal Aktivierungsmails schicken lassen können.

Wie bekommt man denn sowas hin?

FloMK
21.11.2009, 07:57
Das ist auch mein Problem. Ist mir auch erst gestern aufgefallen

LG

jpwfour
21.11.2009, 12:53
evtl so:


$user = db_query("SELECT e.* FROM ".$db_prefix."_userdaten AS u LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid WHERE u.nickname = ".addslashes($_POST['uid'])." LIMIT 1"); und dann in den texten natürlich noch klammid -> nickname

EDIT:

und alle weiteren:

$_POST['uid'] in $usr['uid'] ändern

FloMK
21.11.2009, 16:22
$user = db_query("SELECT e.* FROM ".$db_prefix."_userdaten AS u LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid WHERE u.nickname = ".addslashes($_POST['uid'])." LIMIT 1");



Wo soll der PHP Code denn hin?

LG

didith1207
21.11.2009, 16:29
wie wo soll er hin?? du sollst ihn mit deinem $user = ersetzen damit du nickname auch auslesen kannst

FloMK
21.11.2009, 17:09
So der Code sieht nun so aus:
entfernt von DimpleX fremdcode


Jetzt kommt immer "Alle Felder ausfüllen" als Fehler und als PHP Fehler

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web4/html/neu/content/intern/aktivierungslink.php on line 24LG FLoMK

jpwfour
21.11.2009, 19:49
Ok, hatte so genau den Code nicht angeschaut.

Bitte sowas wie einfach mal ein "@" davor nicht machen, das beseitigt ja nur die Meldung, nicht den Fehler :wink:

Problem ist, dass die Querys immer beim Seitenaufruf ausgeführt werden, wobei sie eigentlich nur nach Absenden des Formulars ausgeführt werden sollten.

Sprich die 4 Zeilen nach //SQL runterschieben nach if ($_POST['ok']

FloMK
21.11.2009, 22:55
"Bitte fülle alle Felder aus"

Ich werde verrückt...

LG

Hardy
21.11.2009, 23:00
<td><input type="text" name="kid" /></td>

ändern in


<td><input type="text" name="uid" /></td>

jpwfour
22.11.2009, 12:11
Irgendwie ein großes Durcheinander grade, sorry.
So sollte es gehn:
entfernt von DimpleX fremdcode
doch keiner :biggrin1:

Lokutos
22.11.2009, 12:48
ob das so richtig ist jpw mit dem copyright und dem posten von codes?


##################\/###################
/*
Addon (c) by alexx
Platin-Casino.de
*/
##################/\###################


:thumb:

DimpleX
22.11.2009, 13:27
danke für den hinweiss , wurde soebend entfernt



MfG
DimpleX

Hardy
22.11.2009, 13:52
ob das so richtig ist jpw mit dem copyright und dem posten von codes?


##################\/###################
/*
Addon (c) by alexx
Platin-Casino.de
*/
##################/\###################


:thumb:


Natürlich war das so richtig denn das addon ist aus den downloadbereich http://www.designerscripte.net/downloads.php?do=file&id=32 :knueppel:

didith1207
22.11.2009, 13:55
:knueppel: ich will den richtigen code nun sehen!

war ja klar das Lokutos uns wieder reinpfuscht :(

DimpleX
22.11.2009, 13:56
da ich und Gremlin das grade nich wusten haben wir uns entschieden es vorsichtshalber zu entfernen ;)



DimpleX

didith1207
22.11.2009, 13:59
er hatte doch im ersten post geschrieben:


Hallo,

ich habe mir das Addon geladen, damit User sich den Aktivierungslink erneut zuschicken lassen können.

wenn ers gekauft hätte hätte er wohl gekauft geschrieben :rant:

FloMK
22.11.2009, 14:01
Und jetzt? :frusty::frusty::frusty::frusty:

LG

DimpleX
22.11.2009, 14:01
sorry für ot

ja den gedanken hatte ich auch erst und als ich die ganzen addons in dl bereich gelesen habe , dacht ich mir fragst Gremlin und er war sich auch nicht sicher

und wenn man nicht sicher ist besser weg als ärger

neuerdings urteilt ja das BGH etwas gegen die foren betreiber und wir wollen ja nicht das forum und gremlin wegen einer kleinigkeit weg ist


DimpleX

FloMK
22.11.2009, 15:01
<?

##################\/###################
/*
Addon (c) by alexx
Platin-Casino.de
*/
##################/\###################


//Variablen Prüfen
if (!isset($_POST['ok'])) $_POST['ok'] = "";
if (!isset($_POST['mail'])) $_POST['mail'] = "";
if (!isset($usr['uid'])) $usr['uid'] = "";
if (!isset($meldung)) $meldung = "";

//Bugfix
$usr['uid'] = (int)$usr['uid'];
//Bugfix Ende

//Auswertung

if ($_POST['ok'] && $_POST['mail'] && $usr['uid']){

//SQL
@$user = db_query("SELECT e.* FROM ".$db_prefix."_userdaten AS u LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid WHERE u.nickname = ".addslashes($_POST['uid'])." LIMIT 1");
@$ak= mysql_query("SELECT * FROM vms_aktivierungen WHERE uid=".$usr['uid']."");
$usr= mysql_fetch_array($user);
$ak2= mysql_fetch_array($ak);

if (@mysql_num_rows($user)){
if(@mysql_num_rows($ak)){
if(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['mail'])){
if($usr['emailadresse']== $_POST['mail']){

$email_message =
'Hallo,
Du hast Dich soeben erfolgreich bei '.$seitenname.' angemeldet.
Bitte aktiviere jetzt Deinen Account, klicke dazu bitte auf den
Aktivierungslink.

---------------------------------------------------------
Kontonummer: '.$usr['uid'].'
Aktivierungslink: '.$domain.'/?content=/intern/aktivieren&ak='.$ak2['ak'].'

---------------------------------------------------------
Nach der Aktivierung kannst Du dich sofort einloggen und bei
uns teilnehmen.
Mit freundlichen Grüßen
Das '.$seitenname.' Team
';
@mail($usr['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");
$meldung="Ein neuer Aktivierungslink wurde an die angegebene E-Mailadresse gesendet";
}else
{
$meldung="Bitte die E-Mailadresse angeben, mit der du dich auf der Seite angemeldet hast!";
}
}else
{
$meldung="Der Emailsyntax ist falsch!";
}
}else
{
$meldung="Du bist bei uns nicht angemeldet";
}
}else
{
$meldung="Klamm ID nicht bekannt";
}
}else
{
if ($_POST['ok'])
{
$meldung="Bitte alle Felder ausfüllen!";
}
}

?>

<? head("Aktivierungslink"); ?>

<form action="" method="POST" enctype="application/x-www-form-urlencoded">
<table width="100%">


<tr>
<td>Nickname</td>
<td><input type="text" name="uid" /></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" name="mail" /></td>
</tr>

<tr>
<td> <input type="submit" value="ok" name="ok" /></td>
</tr>

</table>
<br>
<br>
<?if ($meldung)echo"$meldung";?>
</form>
<? foot(); ?>

So ists zurzeit bei mir drin, aber laufen tut es trotzdem nicht.
Fehler: Bitte Fülle Alle Felder aus

LG

jpwfour
22.11.2009, 16:54
Irgendwie ein großes Durcheinander grade, sorry (für das aktuelle chaos bin ich aber mal nicht verantwortlich :P ).
So sollte es gehn: -
<?

##################\/###################
/*
Addon (c) by alexx
Platin-Casino.de
*/
##################/\###################


//Variablen Prüfen
if (!isset($_POST['ok'])) $_POST['ok'] = "";
if (!isset($_POST['mail'])) $_POST['mail'] = "";
if (!isset($_POST['kid'])) $_POST['kid'] = "";
if (!isset($meldung)) $meldung = "";

//Auswertung

if ($_POST['ok'] && $_POST['mail'] && $_POST['kid']){
//SQL
$user = db_query("SELECT e.* FROM ".$db_prefix."_userdaten AS u LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid WHERE u.nickname = '".addslashes($_POST['kid'])."' LIMIT 1");
if (@mysql_num_rows($user)){
$usr= mysql_fetch_array($user);
$ak= mysql_query("SELECT * FROM vms_aktivierungen WHERE uid=".$usr['uid']."");

if(@mysql_num_rows($ak)){
$ak2= mysql_fetch_array($ak);



if(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['mail'])){
if($usr['emailadresse']== $_POST['mail']){

$email_message =
'Hallo,
Du hast Dich soeben erfolgreich bei '.$seitenname.' angemeldet.
Bitte aktiviere jetzt Deinen Account, klicke dazu bitte auf den
Aktivierungslink.

---------------------------------------------------------
Kontonummer: '.$usr['uid'].'
Aktivierungslink: '.$domain.'/?content=/intern/aktivieren&ak='.$ak2['ak'].'

---------------------------------------------------------
Nach der Aktivierung kannst Du dich sofort einloggen und bei
uns teilnehmen.
Mit freundlichen Grüßen
Das '.$seitenname.' Team
';
@mail($usr['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");
$meldung="Ein neuer Aktivierungslink wurde an die angegebene E-Mailadresse gesendet";
}else
{
$meldung="Bitte die E-Mailadresse angeben, mit der du dich auf der Seite angemeldet hast!";
}
}else
{
$meldung="Der Emailsyntax ist falsch!";
}
}else
{
$meldung="Du bist schon aktiviert";
}
}else
{
$meldung="Nick nicht bekannt";
}
}else
{
if ($_POST['ok'])
{
$meldung="Bitte alle Felder ausfüllen!";
}
}

?>

<? head("Aktivierungslink"); ?>

<form action="" method="POST" enctype="application/x-www-form-urlencoded">
<table width="100%">


<tr>
<td>Nick</td>
<td><input type="text" name="kid" /></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type="text" name="mail" /></td>
</tr>

<tr>
<td> <input type="submit" value="ok" name="ok" /></td>
</tr>

</table>
<br>
<br>
<?if ($meldung)echo"$meldung";?>
</form>
<? foot(); ?> :knueppel::knueppel::knueppel::knueppel:

didith1207
22.11.2009, 17:04
spitze das teil funktioniert :)

FloMK
22.11.2009, 17:35
Klappt wirklich, Danke :thumb:

LG

Rallef
27.11.2009, 21:06
Funktioniert einwandfrei, vielen Dank :thumb: