Hallo,
ich habe ein Problem mit der Erweiterung des Your_Account Modules. Ich habe noch ein zusätzliches Feld "user_pres" in der Datenbank eingerichtet (enthält nur 0 oder 1), das über das Userformular gespeichert werden soll. Leider schlägt dies Fehl. Nachfolgende der Quelltext der geänderen Scriptseiten:
mainfile.php
global $userinfo, $user_prefix, $dbi;
$user2 = base64_decode($user);
$user3 = explode(":", $user2);
$result = sql_query("select uid, name, uname, email, femail, url, user_occ, user_from, user_intrest, pass, storynum, umode, uorder, thold, noscore, bio, ublockon, ublock, commentmax, newsletter, user_pres from ".$user_prefix."_users where uname='$user3[1]' and pass='$user3[2]'", $dbi);
if (sql_num_rows($result, $dbi) == 1) {
$userinfo = sql_fetch_array($result, $dbi);
}
//echo "User: $userinfo[uname]Name: $userinfo[name]Newsletter: $userinfo[newsletter]showPress: $userinfo[presentation]";
return $userinfo;
modules\Your_Account\index.php
function edituser (...)
....
echo "<form name=\"Register\" action=\"modules.php?name=Your_Account\" method=\"post\">"
...
## Präsentation ->wurde von Newsletter kopiert und nur die Namen angepasst.
if ($userinfo[user_pres] == 1) {
echo "<input type=\"radio\" name=\"user_pres\" value=\"1\" checked>"._YES." "
."<input type=\"radio\" name=\"user_pres\" value=\"0\">"._NO."";
} elseif ($userinfo[user_pres] == 0) {
echo "<input type=\"radio\" name=\"user_pres\" value=\"1\">"._YES." "
."<input type=\"radio\" name=\"user_pres\" value=\"0\" checked>"._NO."";
}
........
."<input type=\"hidden\" name=\"uname\" value=\"$userinfo[uname]\">"
."<input type=\"hidden\" name=\"uid\" value=\"$userinfo[uid]\">"
."<input type=\"hidden\" name=\"op\" value=\"saveuser\">"
."<tr><td colspan=\"2\" align=\"right\">"
."<input class=\"formbutton\" type=\"submit\" value=\""._SAVECHANGES."\">"
."</form>
function saveuser($uid, $realname, $uname, $email, $femail, $url, $pass, $vpass, $bio, $user_occ, $user_from, $user_intrest, $attach, $newsletter , $user_pres) {
## Hier erhalte ich immer den Fehler das Argument 15 ($user_pres) fehlen würde ??? Tausche ich die Reihenfolge erscheint der Fehler immer noch ???
.....
if ($pass != "") {
cookiedecode($user);
sql_query("LOCK TABLES ".$user_prefix."_users WRITE", $dbi);
$pass = md5($pass);
sql_query("update ".$user_prefix."_users set name='$realname', email='$email', femail='$femail', url='$url', pass='$pass', bio='$bio' , user_occ='$user_occ', user_from='$user_from', user_intrest='$user_intrest', newsletter='$newsletter' , user_pres='$user_pres' where uid='$uid'", $dbi);
} else {
sql_query("update ".$user_prefix."_users set name='$realname', email='$email', femail='$femail', url='$url', bio='$bio', user_occ='$user_occ', user_from='$user_from', user_intrest='$user_intrest', newsletter='$newsletter' , user_pres='$user_pres' where uid='$uid'", $dbi);
Frage nun: Wo muß evtl. noch was geändert werden? Gibt es evtl. eine maximale Länge des übergebenen Strings an die Funktion?
[Editiert am 14/3/2003 von Carsten3110]
[Editiert am 14/3/2003 von Carsten3110]
Hatte ich total übersehen - jetzt funkts !
Danke für die prompte Hilfe
Zitatfunction saveuser($uid, $realname, $uname, $email, $femail, $url, $pass, $vpass, $bio, $user_occ, $user_from, $user_intrest, $attach, $newsletter , $user_pres) {
## Hier erhalte ich immer den Fehler das Argument 15 ($user_pres) fehlen würde ??? Tausche ich die Reihenfolge erscheint der Fehler immer noch ???
Hast Du das Feld denn unten in der Your_Account/index.php auch im case Teil zu der Funktion save_user hinzugefügt ??
case "saveuser":
saveuser($uid, $realname, $uname, $email, $femail, $url, $pass,
$vpass, $bio, $user_avatar, $user_icq, $user_occ, $user_from,
$user_intrest, $user_sig, $user_aim, $user_yim, $user_msnm, $attach,
$newsletter); <---- muß da auch hin !!
break;
Monika
[Editiert am 14/3/2003 von MoniK]