PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pulldown in Userprofil und Link per wert setzen?



cr00sy
21.08.2011, 10:40
Hallo,

ich brauche mal eure hilfe, es wäre sehr nett wenn mir da jemand helfen könnte.

Ich hätte gerne ein Pulldown-Auswahl im Userprofil, wie bei der auswahl ob man einen Newsletter erhalten will oder nicht. Dies sollte ebenfalls Ja/Nein erhalten. Er soll in die Datenbank bei Ja eine 1 in kontodaten/shout eintragen und bei Nein eine 0.

Leider werde ich durch die Newsletter funktion nicht wirklich schlauer.

Mein zweites problem:
Wie kann ich im linken menü einen link anzeigen lassen wenn der wert auf 1 und verschwinden lassen wenn der wert beim User auf 0 ist?

Belohung 20Mio für die Person die es als erstes gelöst hat.

Schönen Sonntag wünsche ich euch noch!

jpwfour
21.08.2011, 12:03
Im Prinzip sollte man das mit Copy&Paste schon weiterkommen, evtl. kannst du uns sagen, was du schon versucht hast/wo Fehler auftreten?



Code für HTML Auswahl kopieren:
<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> an der gewünschten Stelle einfügen, "Newsletter", "newsletter" und "$newsletter" austauschen gegen selbstgewählte Texte/Bezeichner.
(Foo, foo und $foo im Folgenden)
Usereingabe prüfen, dazu nach der Zeile:
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3; foglende einfügen:
if ($_POST['foo'] == 1){ $foo = 1;}else{ $foo = 0;}
Danach Eintrag in Datenbank:
db_query("UPDATE ".$db_prefix."_userdaten SET shout = ".((int)$foo)." WHERE uid=".$_SESSION['uid']."");
Nach der Zeile:
if ($info['freigabe_fuer'] == 3) {$newsletter = 1; $paidmails = 1;} foglende einfügen:
$foo = $info['shout']; zum "Auslesen" des Wertes, bzw Ablegen in der Variablen, die im HTML weiter unten genutzt wird.

Ich hab den Wert mal in die Tabelle vms_userdaten, da die in dieser Datei dann eh schon ausgelesen wird.

Dann erstmal testen, ob das soweit funktioniert (Wert korrekt abgepeichert wird).

cr00sy
21.08.2011, 16:47
Hallo,

danke für deine Hilfe. Es kommt keine Fehlermeldung. Wenn ich etwas auswähle übernimmt er es dann einfach nicht.

jpwfour
22.08.2011, 09:05
Sofern du keine kostenpflichtigen Addons in deiner userprofil.php hast, kannst du sie ja hier mal einstellen, mit dem Code wie du es bisher versucht hast, dann kann man da besser helfen.

cr00sy
22.08.2011, 18:41
Hatte heute etwas mehr zeit und nun funktionier es, es hat nur folgendes gefehlt:


if (!isset($_POST['shout'])) $_POST['shout'] = ""; Das einzige was noch nicht funktioniert ist das er das ausgewählte auch anzeigt, also wenn ich ja auswähle und neu auf das Userprofil gehe das dort nein steht anstatt Ja.

Anscheinend fehlt nur die Abfrage zur $shoutbox = $shoutbox['shout'];. Aber naja, will nicht so gehen, es sei denn meine Abfrage ist falsch.

Die war so:


$shoutbox = mysql_fetch_array(db_query("SELECT shout FROM ".$db_prefix."_kontodaten WHERE u.uid=".$_SESSION['uid']." LIMIT 1"));

$shoutbox = $shoutbox['shout'];


<?
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['shout'])) $_POST['shout'] = "";
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']) >= 4) {
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. 4 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 = htmlentities($nickname);
$nickname = substr($nickname,0,13);
$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 bereits 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) $mailstatus = 0;
if ($_POST['newsletter'] == 1) $mailstatus = 1;
if ($_POST['newsletter'] == 0) $mailstatus = 2;
if ($_POST['newsletter'] == 1) $mailstatus = 3;
if ($_POST['shout'] == 1){ $shout = 1;}else{ $shout = 0;}

db_query("UPDATE ".$db_prefix."_kontodaten SET shout = ".((int)$shout)." WHERE uid=".$_SESSION['uid']."");

db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."' 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;}
if ($info['freigabe_fuer'] == 1) {$newsletter = 1;}
if ($info['freigabe_fuer'] == 2) {$newsletter = 0;}
if ($info['freigabe_fuer'] == 3) {$newsletter = 1;}

$shoutbox = $shoutbox['shout'];
?>

<?head("$seitenname - Userprofil");?>
Hier findest Du deine Profildaten, bitte passe diese Daten immer an so das diese aktuell sind.<br>
<?foot();?>

<?head("$seitenname - Profildaten");?>
<form action="" method="post">
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>
<tr>
<td>Emailadresse:</td>
<td><input type="text" name="emailadresse" value="<?=$info['emailadresse'];?>"></td>
</tr>
<tr>
<td>Klamm-Id:</td>
<td><input type="text" value="<?=$_SESSION['uid'];?>" readonly></td>
</tr>
<tr>
<td>Neues Passwort:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>Neues Passwortbestätigung:</td>
<td><input type="password" name="pwd2"></td>
</tr>
<tr>
<td>Newsletter empfangen:</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>Shouts empfangen:</td>
<td>
<select name="shout">
<option value="1" <? if ($shout == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($shout == 0) echo 'selected';?>>Nein</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>
<?foot();?>

<?head("$seitenname - Account löschen");?>
Hier an dieser Stelle kannst Du deinen Account sofort selbstständig löschen.
Bitte bedenke das alle Daten von Dir verloren gehen und bestehendes Guthaben dann auch
verloren geht, eine spätere Forderung an Lose ist ausgeschlossen!
<div align="center">
<form action="" method="post"><br>
<?=$delchange;?>
Losepasswort:&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>
<?foot();?>

Lokutos
23.08.2011, 00:30
$shout != $shoutbox

lösch folgendes
$shoutbox = $shoutbox['shout'];

und nutz unten die variable
$shoutbox['shout'];

cr00sy
23.08.2011, 10:21
$shout != $shoutbox

lösch folgendes
$shoutbox = $shoutbox['shout'];

und nutz unten die variable
$shoutbox['shout'];

Funktioniert auch nicht.

Er Speichert die einstellung weiterhin ab aber er zeigt trotzdem als einstellung immer Nein an obwohl es eigentlich auf Ja stehen sollte.

jpwfour
23.08.2011, 12:44
So sollte es funktionieren:


<?
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['shout'])) $_POST['shout'] = "";
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']) >= 4) {
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. 4 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 = htmlentities($nickname);
$nickname = substr($nickname,0,13);
$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 bereits 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) $mailstatus = 0;
if ($_POST['newsletter'] == 1) $mailstatus = 1;
if ($_POST['newsletter'] == 0) $mailstatus = 2;
if ($_POST['newsletter'] == 1) $mailstatus = 3;
if ($_POST['shout'] == 1){ $shout = 1;}else{ $shout = 0;}

db_query("UPDATE ".$db_prefix."_kontodaten SET shout = ".((int)$shout)." WHERE uid=".$_SESSION['uid']."");

db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."' 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;}
if ($info['freigabe_fuer'] == 1) {$newsletter = 1;}
if ($info['freigabe_fuer'] == 2) {$newsletter = 0;}
if ($info['freigabe_fuer'] == 3) {$newsletter = 1;}

$shoutbox = mysql_fetch_array(db_query("SELECT shout FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1"));

$shout = $shoutbox['shout'];
?>

<?head("$seitenname - Userprofil");?>
Hier findest Du deine Profildaten, bitte passe diese Daten immer an so das diese aktuell sind.<br>
<?foot();?>

<?head("$seitenname - Profildaten");?>
<form action="" method="post">
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$info['nickname'];?>"></td>
</tr>
<tr>
<td>Emailadresse:</td>
<td><input type="text" name="emailadresse" value="<?=$info['emailadresse'];?>"></td>
</tr>
<tr>
<td>Klamm-Id:</td>
<td><input type="text" value="<?=$_SESSION['uid'];?>" readonly></td>
</tr>
<tr>
<td>Neues Passwort:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>Neues Passwortbestätigung:</td>
<td><input type="password" name="pwd2"></td>
</tr>
<tr>
<td>Newsletter empfangen:</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>Shouts empfangen:</td>
<td>
<select name="shout">
<option value="1" <? if ($shout == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($shout == 0) echo 'selected';?>>Nein</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>
<?foot();?>

<?head("$seitenname - Account löschen");?>
Hier an dieser Stelle kannst Du deinen Account sofort selbstständig löschen.
Bitte bedenke das alle Daten von Dir verloren gehen und bestehendes Guthaben dann auch
verloren geht, eine spätere Forderung an Lose ist ausgeschlossen!
<div align="center">
<form action="" method="post"><br>
<?=$delchange;?>
Losepasswort:&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>
<?foot();?>

Einmal waren die Variablennamen falsch, eben mit $shout -> $shoutbox, und in der Abfrage stand u.uid (aber der Alias u war nicht definiert).