PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nick nicht ändern



Sam2004
04.11.2009, 20:53
Abend,

hab mal wieder ein "sonderbares" Problem, dass sich bis dato nicht aufgezeigt hatte.
Jemand hat sich heut ein scherz in der SB erlaubt und dauernd den Nick geändert. Ich hab erst gedacht, dass sich jemand von außerhalb Zugang verschafft hat, was aber nicht so war. Der joke entstand, weil im Userprofil den Nick jederzeit ändern kann, was ich gern ab sofort unterbinden möchte, soll aber im Profil noch angezeigt werden...What can i do?

Wäre vorhin fast die Wände hoch gegangen :D ...

Danke für Tipp :)

Hardy
04.11.2009, 20:59
Einfach das formular rausnehmen für den nickname?

Sam2004
04.11.2009, 21:01
Japp, bei der Idee war ich auch schon, aber auf einmal waren manche User bei "Wer ist Online" nicht mehr vorhanden^^

Deswegen fällt das weg...

Hardy
04.11.2009, 21:05
:suspicious: was hat das eine mit den anderen denn zu tun?

Wenn du lediglich das entfernst aus der userprofil.php dürfte das ja keine weitern auswirkungen haben:


<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>

Sam2004
04.11.2009, 21:07
:suspicious: was hat das eine mit den anderen denn zu tun?
Da fragst den richtigen...Ich hab absolut kein Plan...Komischerweise is es auch nur bei manchen und nicht bei allen...

*edit*
Die Zeile hatte ich ja rausgenommen in der Hoffnung das es keine genrellen mucken macht...aber wie beschrieben, auf einmal war der Nick weg in der Liste...

*edit2*
Durch 2 maliges ändern des Nicks, wurde nicht mehr bei "Wer ist Online" angezeigt. Als der Ursprüngliche Nick wieder eingetragen wurde, wurde er dann auch wieder angezeigt...
Danke und sry wegen überflüssigem Thread...Muss man auch erstmal wissen...*closed*

Lokutos
04.11.2009, 21:55
:suspicious: was hat das eine mit den anderen denn zu tun?

Wenn du lediglich das entfernst aus der userprofil.php dürfte das ja keine weitern auswirkungen haben:
Lösche:

<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>


Quatsch den dann wird bei einem update des Profils der username auf ' ' gesetzt. weil der name"nickname" nicht vorhanden ist.


//Nickname ändern beginn !
if ($_POST['aendern'] == 'Jetzt ändern!')
{
if (isset ($_POST['nickname'])) {
$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$nickname_check2 =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'AND uid=".$_SESSION['uid']."");
if (mysql_num_rows($nickname_check))
if (mysql_num_rows($nickname_check2)) {

}else{
$change = 'Dieser Nickname ist schon vergeben!<br>';
}
else
{
db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}


ändere

<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>
Zu

<tr>
<td>Nickname:</td>
<td><?=$info['nickname'];?></td>
</tr>


MFg Lokutos

Sam2004
04.11.2009, 22:07
So hat ich mir das vorgestellt^^...Danke dir...

Hardy
04.11.2009, 22:16
Quatsch den dann wird bei einem update des Profils der username auf ' ' gesetzt. weil der name"nickname" nicht vorhanden ist.

:der:


if (isset ($_POST['nickname'])

Lokutos
04.11.2009, 23:30
:der:


if (isset ($_POST['nickname'])

Ok fehler eingesehen das hatte ich übersehen.

Sam2004
05.11.2009, 19:30
Nabend,

muss das Thema leider nochmal aufreissen.
Als ich gestern mit dem Nick geändert hat, is wohl nicht alles so rund gelaufen
wie es sollte. Ich hab das sonderbare Phenomen, dass eine Userin, nachdem sie im Userprofil was geändert wird, dass der Nick in der DB verschwindet und damit bei allen Rallys usw weiter weg ist...
Frage: Wie kann das sein?

Jemand ne Idee?

Sam

*edit*
Beim löschen des Accounts, sind auch nicht alle anderen Daten gelöscht worden, nick war noch in den Rallys vorhanden.

Ich dachte an ein Backup, aber das letzte is paar Tage zurück, so dass ich das gern vermeiden würde.

eXcite
07.05.2010, 19:47
*push*

Habe dasselbe Problem .. der Nickname wird gelöscht!
Jemand ne Lösung parat?

Lieben dank

jpwfour
07.05.2010, 22:54
Wobei wird der Nickname gelöscht?
Was hast du an welchen Dateien geändert?
Evtl. mal die userprofil.php hier reinstellen.

eXcite
08.05.2010, 00:31
Wie in einen der letzteren Posts! Wenn ich das Userprofil so umschreibe das man den Nickname (der ja standardmäßig änderbar ist) nicht ändern kann! Und man dann z. B. das Passwort ändert -> wird der Nickname auf "" gesetzt! (in der sql) folge daraus ist das man sich nicht mehr einloggen kann.

Ich denke nicht das das mit irgendeiner anderen Datei zutun hat als mit der Userprofil.php ... denn solange der Nickname genau so drin ist wie es standard ist, kann man ändern was man möchte und der Nickname bleibt so wie er ist.

mfg

Jenny
08.05.2010, 00:54
<tr>
<td>Dein Nickname:</td>
<td><?= $userdaten['nickname'];?> </td>
</tr>

glaube bei Euch heisst das
<td><?= $info['nickname'];?> </td>

eXcite
08.05.2010, 10:23
So wie du es geschrieben hast hatte ich es schon probiert, Nickname wird auf "nichts" gesetzt bei ändern z. B. des Passwortes.

Desweiteren musste ich gerade feststellen das sich der Nachname nicht ändern lässt... wenn man auf ändern klickt aktualisiert er zwar die Seite aber weder in der Datenbank noch im Userprofil steht dann der geänderte Nachname.

Naja das mit dem Nachnamen ist glaube ich eher unwichtig, da erscheint mir das Problem mit dem nicknamen als wichtiger.

Ich poste euch jetzt mal meine Userprofil.php:


<?
userstatus();
// Variabeln definieren
if (!isset($_POST['aendern'])) $_POST['aendern'] = "";
if (!isset($_POST['acc_del'])) $_POST['acc_del'] = "";
if (!isset($_POST['del_passwort'])) $_POST['del_passwort'] = "";
if (!isset($_POST['pwd'])) $_POST['pwd'] = "";
if (!isset($_POST['pwd2'])) $_POST['pwd2'] = "";
if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
if (!isset($_POST['newsletter'])) $_POST['newsletter'] = "";
if (!isset($_POST['paidmails'])) $_POST['paidmails'] = "";
if (!isset($change)) $change = "";
if (!isset($mailstatus)) $mailstatus = "";
if (!isset($delchange)) $delchange = "";

if ($_POST['acc_del'] == 'Jetzt löschen!' && $_POST['del_passwort']) {
$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
@require_once ("lib/schnittstellen/".$schnittstelle['schnittstelle'].".php");
@uservalidate ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['del_passwort']);
if ($error) {
$delchange = $trans_ausgabe.'<br>';
} else {
$sperrzeit = time()+(86400*30);
db_query("INSERT INTO ".$db_prefix."_userblacklist (uid,zeit) VALUES ('".$_SESSION['uid']."','".$sperrzeit."')");
db_query("DELETE FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_emaildaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_werberdaten WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_werberdaten SET werber = 0 WHERE werber=".$_SESSION['uid']."");
echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
}

}

if ($_POST['aendern'] == 'Jetzt ändern!') {
// Passwort ändern beginn!
if ($_POST['pwd'] && $_POST['pwd2']) {
if ($_POST['pwd'] == $_POST['pwd2']) {
if (strlen($_POST['pwd']) >= 8) {
db_query("UPDATE ".$db_prefix."_kontodaten SET passwort = '".md5($_POST['pwd'])."' WHERE uid=".$_SESSION['uid']."");
echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
//$change .= 'Das Passwort wurde geändert!<br><b><font color="#FF0000">Bitte logge Dich jetzt aus und wieder neu ein!</font></b><br>';
} else {
$change = 'Passwörter müssen min. 8 Zeichen haben!';
}
} else {
$change = 'Die Passwörter stimmen nicht überein!';
}
}
// Passwort ändern ende!

//Nickname ändern beginn !
if ($_POST['aendern'] == 'Jetzt ändern!')
{
if (isset ($_POST['nickname'])) {
$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$nickname_check2 =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'AND uid=".$_SESSION['uid']."");
if (mysql_num_rows($nickname_check))
if (mysql_num_rows($nickname_check2)) {

}else{
$change = 'Dieser Nickname ist schon vergeben!<br>';
}
else
{
db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}

if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse']))
{
$change .= 'Der Emailsyntax ist falsch!<br>';
}
else
{
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
$_POST['max_forced'] = (int)$_POST['max_forced'];
db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."' WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_userdaten SET max_forced = '".$_POST['max_forced']."', pnmail = ".intval($_POST['pnmail'])." WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_userdaten SET max_forcedt = '".$_POST['max_forced']."' WHERE uid=".$_SESSION['uid']."");
$change .= 'Deine Daten wurden aktualisiert!<br>';
}

}


$info = mysql_fetch_array(db_query("SELECT u.*,e.emailadresse,e.freigabe_fuer FROM
".$db_prefix."_userdaten AS u
LEFT JOIN ".$db_prefix."_emaildaten AS e ON e.uid=u.uid
WHERE u.uid=".$_SESSION['uid']." LIMIT 1"));


if ($info['freigabe_fuer'] == 0) {$newsletter = 0; $paidmails = 0;}
if ($info['freigabe_fuer'] == 1) {$newsletter = 1; $paidmails = 0;}
if ($info['freigabe_fuer'] == 2) {$newsletter = 0; $paidmails = 1;}
if ($info['freigabe_fuer'] == 3) {$newsletter = 1; $paidmails = 1;}
?>

<div class="content_head"><?=$seitenname;?> - Profildaten</div>
<div class="content_bg">
<form action="" method="post">
<table width="100%" border="0" cellpadding="1" cellspacing="0">
<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" value="<?=$info['nachname'];?>"></td>
</tr>
<tr>
<td>Vorname:</td>
<td><input type="text" value="<?=$info['vorname'];?>"></td>
</tr>
<tr>
<td>Klamm-Id:</td>
<td><?=$_SESSION['uid'];?></td>
</tr>
<tr>
<td>Emailadresse:</td>
<td><input type="text" name="emailadresse" value="<?=$info['emailadresse'];?>"></td>
</tr>
<tr>
<td>Neues Passwort:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>Neues Passwort bestätigen:</td>
<td><input type="password" name="pwd2"></td>
</tr>
<tr>
<td>Newsletter:</td>
<td>
<select name="newsletter">
<option value="1" <? if ($newsletter == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($newsletter == 0) echo 'selected';?>>Nein</option>
</select>
</td>
</tr>
<tr>
<td>Paidmails:</td>
<td>
<select name="paidmails">
<option value="1" <? if ($paidmails == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($paidmails == 0) echo 'selected';?>>Nein</option>
</select>
</td>
</tr>
<tr>
<td>eMail bei neuer PN?:</td>
<td>
<select name="pnmail">
<option value="1" <? if ($info['pnmail'] == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($info['pnmail'] == 0) echo 'selected';?>>Nein</option>
</select>
</td>
</tr>
<tr>
<td>Angezeigte Banner/Mails/Textlinks:</td>
<td>
<select name="max_forced">
<option value="5" <? if ($info['max_forced'] == 5) echo 'selected';?>>5</option>
<option value="10" <? if ($info['max_forced'] == 10) echo 'selected';?>>10</option>
<option value="20" <? if ($info['max_forced'] == 20) echo 'selected';?>>20</option>
<option value="30" <? if ($info['max_forced'] == 30) echo 'selected';?>>30</option>
<option value="40" <? if ($info['max_forced'] == 40) echo 'selected';?>>40</option>
<option value="50" <? if ($info['max_forced'] == 50) echo 'selected';?>>50</option>
</select>
</td>
</tr>
<tr>
<td align="center" colspan="2"><br>
<input type="submit" name="aendern" value="Jetzt ändern!"><br>
<br>
<?=$change;?>
</td>
</tr>
</table>
</form>
</div>
<div class="content_foot"></div>

<div class="content_head"><?=$seitenname;?> - Account löschen</div>
<div class="content_bg">
Hier an dieser Stelle kannst Du deinen Account sofort selber löschen wenn Du es wünscht.
Bitte bedenke das alle Daten von Dir verloren gehen und bestehendes Guthaben dann auch
verloren geht, eine spätere Forderung an <?=$waehrung;?> ist ausgeschlossen!
<div align="center">
<form action="" method="post"><br>
<?=$delchange;?>
Schnittstellen-Passwort:&nbsp;&nbsp;<input type="Password" name="del_passwort" value="">&nbsp;&nbsp;&nbsp;<input type="Submit" name="acc_del" value="Jetzt löschen!">
</form>
<div align="center"><font color="#cc0000">Bei Löschung des Accounts bist Du für 30 Tage für eine Neuanmeldung gesperrt!</font></div><br>
</div>
</div>
<div class="content_foot"></div>

Lokutos
08.05.2010, 11:34
if (isset ($_POST['nickname'])) {
$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$nickname_check2 =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'AND uid=".$_SESSION['uid']."");
if (mysql_num_rows($nickname_check))
if (mysql_num_rows($nickname_check2)) {

}else{
$change = 'Dieser Nickname ist schon vergeben!<br>';
}
else
{
db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}

ein /* davor und ein */ dahinter

eXcite
09.05.2010, 16:35
mmh funktioniert nicht... kommt dann Syntax error :/

Lokutos
09.05.2010, 17:06
pecvh mehr kann ich dir nicht helfen bei mir gehts
und ohne fehlermeldung keine idee worans bei dir schaitert

eXcite
09.05.2010, 17:36
Kein Problem habe mir selbst geholfen und einfach den Nick Ändern teil im Userprofil komplett gelöscht ... soll ja eh nicht Möglich sein

sascha2703
24.01.2011, 14:27
Für alle User die es Ändern wollen.

Das hier:


if ($_POST['aendern'] == 'Jetzt ändern!')
{
Ausschneiden und an die stelle davor einfügen:


if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse']))
{
Sieht dann so aus:


if ($_POST['aendern'] == 'Jetzt ändern!')
{

if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse']))
{
Suche das und mach eine Klammer weg:


db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}
Sieht dann so aus:


db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
Suche das hier.


$change .= 'Deine Daten wurden aktualisiert!<br>';
}
}
Und ersetzte das mit denn hier:


$change .= 'Deine Daten wurden aktualisiert!<br>';
}
}
}
Suche das hier:


<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
Und ersetzte es mit dem hier.


<td><?=$info['nickname'];?></td>
Das war es schon jetzt wird beim ändern des Profils der Nickname nicht mehr geändert oder oder ausversehen gelöscht.

Ich hoffe ich konnte helfen.

Sam2004
15.11.2011, 09:10
Moin,
ich hab mich nochmal dran gemacht und variante 1 Lokutos und variante 2 sascha ausprobiert. Variante 2 ist durchgefallen^^
Ich hab die Änderungen nach Anleitung vorgenommen. Im Userprofil hab ich
dann die Bannerzahl verändert, und nach dem aktualisieren war der Nick futsch^^ Ebenso in der DB gelöscht.

Hingegen hat Variante 1 funktioniert. Danke dafür :thumb:

tonicboom
15.11.2011, 14:18
Also, bin ja kein Profi, aber wieso setzt du das Feld nicht auf readonly

bei Zeile 120 ca is das :


<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>änden in das :


<td><input type="text" name="nickname" value="<?=$info['nickname'];?>" readonly ></td>

oder hab ich was falsch verstanden ?!

Sam2004
15.11.2011, 14:38
Also, bin ja kein Profi, aber wieso setzt du das Feld nicht auf readonly

bei Zeile 120 ca is das :

änden in das :


Sers,
das les ich jetzt zum ersten Mal, daher wußte ich das nicht.

Ist aber auch ne nette Möglichkeit ;) Danke Dir.
LG

Lokutos
15.11.2011, 17:29
Sers,
das les ich jetzt zum ersten Mal, daher wußte ich das nicht.

Ist aber auch ne nette Möglichkeit ;) Danke Dir.
LG

Nur aleine das ist aber definitive kein schutz.
da es dan immer noch die moglichkeit gibt den wert einfach an den server zu senden egal welches formular.