Hast du nur das Eingabefeld für den Nicknamen ausgebaut und das Update der Datenbank drin gelassen?
Gruß
EarlofMidnight
Hast du nur das Eingabefeld für den Nicknamen ausgebaut und das Update der Datenbank drin gelassen?
Gruß
EarlofMidnight
hmm, erstmal ja....
was muß ich da noch alles rausschmeißen?
is das alles, was dazu gehört?PHP-Code:
if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
.
und
.
//Nickname ändern beginn !
if ($_POST['aendern'] == 'Jetzt ändern!') {
if (isset ($_POST['nickname'])) {
$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
$nickname = strip_tags($nickname);
$nickname = substr($nickname,0,18);
$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']."");
}
}
}
hmmm...
aber um ohne Maske auf die DB zuzugreifen, ist wohl doch etwas.. hmm... kriminelle Energie nötig, oder?
eigentlich nicht, ist mit dem entsprechenden browser & addons überhaupt kein problem, gabs ja schon mal mit html code in den nicknames:
http://www.designerscripte.net/showthread.php?t=5325
nur ist da natürlich noch nichts vorgesehen, wenn der nickname nur aus einem leerezichen besteht oder so, entweder macht man da noch eine abfrage rein:
oder du entfernst die funktion ganz, dazu das input feld im html code ganz entfernen oder auf readonly="readonly"setzen, und den teil:PHP-Code:
//Nickname ändern beginn !
if ($_POST['aendern'] == 'Jetzt ändern!')
{
if (isset ($_POST['nickname'])) {
$nickname = mysql_real_escape_string(ucfirst($_POST['nickname']));
$nickname = strip_tags($nickname);
$nickname = substr($nickname,0,20);
$nickname = trim($nickname); //entfernt leerzeichen am anfang und am ende
if(strlen($nickname)<3){
$change .= 'Der Nickname muss mindestens 3 Zeichen lang sein!<br>';
}else{
$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']."");
}
}
}
}
komplett löschen.PHP-Code:
//Nickname ändern beginn !
if ($_POST['aendern'] == 'Jetzt ändern!')
{
...
...
...
db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}
}
Kill one man, and you are a murderer.
Kill millions of men, and you are a conqueror.
Kill them all, and you are a god. - Jean Rostand, Thoughts of a Biologist (1939)
oki, danke erstmal,
ich hab im UserProfil die Funktion jetzt ganz entfernt und geschrieben, bei Änderungswünschen sollen die User bitte nen Admin kontaktieren.
kann ich die Funktion für die "mindest drei sichtbare Zeichen" direkt bei der Anmeldung einbaun? wie müßte das dann aussehen?
jo, das macht natürlich sinn, da auch eine abfrage dahingehend einzubauen.
wobei ich da empfehlen würde, das ganze per regulärem ausdruck zu überprüfen, mag zwar für php-anfänger etwas verwirrend aussehen, brignt aber in dem falle am meisten, da es auch die meisten möglichkeiten bietet:
datei: content/intern/anmelden.php
zwischen:
folgendes einfügen:PHP-Code:
if ($schnittstelle['anfragen_tag'] != 0 and $schnittstelle['anfragen_tag'] <= $s_verbrauch) $error = 'Die Schnittstellenanfragen sind für heute verbraucht!!!<br>';
... //hier einfügen ...
// User mit der Datenbank abgleichen
if (!$error) {
dieses suchmuster /^[a-z0-9]{3,20}$/iD erkläre ich jetzt noch schnell, denke sollte aber so in etwas schon den erwartugnen entsprechen:PHP-Code:
if(!preg_match('/^[a-z0-9]{3,20}$/iD', $_POST['nickname']) ){
$error.= 'Bitte nur Buchstaben und Ziffern verwenden! [a-z,A-Z,0-9]<br>';
}
erlaubt sind im nickname alle buchstaben von a bis z, aber nur die englischen, also nicht ß,ä,ü,ö, wobei die groß/kleinschreibung keine rolle spielt. zusätzlich sind alle ziffern erlaubt (der username kann auch nur aus ziffern bestehen), und es müssen mindestens 3 zeichen sein, aber maximal 20.
wenn der eingegebene nickname dem nicht entspricht, wird eben die fehlermeldung angezeigt, am besten noch im html code hinter "nickname" noch schreiben, dass 3-20 zeichen sein müssen oder so.
varianten:
/^[a-z0-9]{3,20}$/iD
die 3 und die 20 geben mindest bzw. maximal länge an, können je nach bedarf angepasst werden
/^[a-z0-9][a-z0-9_-]{1,18}[a-z0-9]$/iD
jetzt sind auch strich (-) und unterstrich (_) erlaubt, aber nur in der mitte, also das erste und das letzte zeichen müssenbuchstabe bzw. zahl sein
(nun statt 3,20 je 2 weniger)
/^[A-Z][a-z]{2,19}$/D
der erste buchstabe muss groß sein, alle anderen klein (bietet sich an beim überprüfen von "echten" namen)
und genau diese überprüfung kann man dann auch im userprofil durchführen, falls man die änderung zulässt.
Kill one man, and you are a murderer.
Kill millions of men, and you are a conqueror.
Kill them all, and you are a god. - Jean Rostand, Thoughts of a Biologist (1939)
Dankeschön!
habs eingebaut![]()
kann jemand meinen Thread-Titel zu etwas aussagekräftigerem ändern?
is ne schöne Anleitung hier geworden, die sicher noch mehreren nutzt
Schönes Wochenende euch allen!![]()