Statistik |
Beiträge: 144.534 (Täglich: 19,19 )
Themen: 16.701
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 159%
Ausl. d. letzten 5 Minuten: 168%
Ausl. d. letzten 15 Minuten: 161%
Aktulle Uhrzeit: 11:01
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
WBB 2.1.x? |
|
ok, ich find den fehler net...
wenn ich anders sortiere, gehts, sortier ich dann in die andere richtung, gehts wieder net...
wenn ich dann z.b. nach emails sortiere in absteigender reihenfolge, gehts, wechsel ich dann einfach in aufsteigender reihenfolge gehts scho wieder net...
sehr komisch.
// EDIT //
so, dann hab ich da noch eine kleine andere kleinigkeit...
wie du ja vllt. noch weißt, speichere bei jedem bild die seiten ID mit (habe mein profil ja auf mehrere seiten aufgeteilt).
z.b. bild1 ist auf seite 1, bild2 auf seite 2, etc.
dies realisiere ich durch eine auswahlliste mit 4 einträgen:
"Auf welcher Seite soll das Bild angezeigt werden?"
- Profil // Hat den Wert 1
- Interessen // Hat den Wert 2
- Über mich // Hat den Wert 3
- In der Galerie // Hat den Wert 4
- - -
die bilder in den einzelnen profilseiten werden dank der seitenID erfasst und können so genau ausgegeben werden.
mein problem ist nun folgendes:
wenn ein user in seinem UCP ein bild uploaded und es auf die seite "Profil" stellt, danach wieder ein bild uploaded und vergisst es z.B. auf die seite "Interessen" zu speichern.
dann habe ich zwei bilder in der datenbank, welche mit der gleichen seitenID sind (wenn mehrere IDs bei den bildern welche in der galerie aufgelistet werden, ist es egal).
d.h. der user hat das bild gespeichert, denkt es wird ausgegeben und wird enttäuscht.
folgender code steht unmittelbar VOR dem eintrag in die datenbank (also, wenn ein user das bild uploaded)
php: |
1:
2:
3:
4:
5:
|
$check = $db->query_first("SELECT seite FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$userid."' AND id = '".$bild_id."'");
if($check['seite'] == 1) {
redirect("Fehler: Auf dieser Seite befindet sich schon ein Foto/Bild.", "vgprofil_gal.php?sid=".$session[hash], 10);
} |
|
jetzt kommts: es funktioniert nicht... vllt. bin ich zu blöd, oder ich hab was übersehen...
__________________ - ... -
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von the_cRu: 09.06.2007 13:09.
|
|
09.06.2007 12:53 |
|
|
|
doch, die gibt es, weil ich sie im nachhinein zugefügt habe.
aus dem grund, damit ich genau angeben kann wo welches bild angezeigt werden soll.
__________________ - ... -
|
|
09.06.2007 18:27 |
|
|
|
ok,
jetzt hast du mich glaub falsch verstanden.
einmal gibts das problem mit der memberlist.
das code-beispiel kennst du ja, das hab ich hjier ja geposted.
das andere, was ich oben editiert habe, ist ein problem in der profil-galerie selber.
wenn ich ein bild uploade, speicher ich halt die seitenID mit in die bilder db.
sorry das ich es scheiße formuliert habe.
__________________ - ... -
|
|
09.06.2007 18:45 |
|
|
|
was brauchst du denn alles für infos, damit du mir evtl. helfen kannst?
wollte eigentlich die community die tage starten,
nur mit den fehlern gehts noch net...
__________________ - ... -
|
|
09.06.2007 20:39 |
|
|
|
ok, also, ich versuch das ganze nu nochmal richtig zu trennen.
erstes problem, die memberlist:
ich habe die memberlist ein wenig umgestaltet.
nun sieht man in einer anderen auflistung die user.
wobei bei jedem user das profilbild, welches er übers UCP eingestellt hat, angezeigt werden soll. z.b. unter dem nickname.
nun habe ich ja, folgenden code:
php: |
1:
2:
3:
4:
|
$gb = $db->query_first("SELECT * FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$members['userid']."');
if($gb['id']) {
$gb_pic = $gb['id'];
} |
|
über diesen in der memberlist.php getan.
php: |
1:
2:
3:
4:
5:
|
eval("\$membersbit .= \" ".$tpl->get("memberslist_membersbit")."\";");
}
return $membersbit;
} |
|
im template gebe ich das ganze wie gefolgt aus (in der umgestaltenen memberslist_membersbit):
php: |
1:
2:
3:
4:
5:
|
<if($gb_pic)><then>
<img width="100px" src="vgprofil_gala.php?bildid=$gb_pic&sid=$session[hash]" border="0" alt="" title="" />
</then><else>
<img width="100px" src="{$style['imagefolder']}/profil/kein_bild.gif">
</else></if> |
|
nun kommt das etwas komplizierte problem:
wenn ich nun auf die memberlist gehe, kann ich ja die sortierungsoptionen einstellen.
standard ist: Zeige alle Benutzer und Sortiere nach Beiträgen in absteigender Reihenfolge.
bei dieser einstellungsart, zeigt er mir bei jedem user, dasselbe bild an.
wenn ich jetzt aber z.b. die sortierungsoptionen umstelle, auf z.b. aufsteigender reihenfolge, zeigt er mir die bilder korrekt an.
und genau das ist der knackpunkt...
ich hoffe diesmal das das verständlich genug war, wenn nicht hol ich noch weiter aus *lach
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
zweites problem, die profilgalerie und meine kleine erweiterung:
also, wie ich ja schon erwähnt habe, habe ich das profil, welche user angucken können, in mehrere seiten aufgeteilt.
da auf jeder seite ein bild zu sehen sein soll, habe ich der bb1_vgprofil_gal_user_bilder eine neue spalte namens seite spendiert.
so, wenn ein user nun in seinem UCP ein neues foto hochläd, kann er zusätzlich auswählen, wo er es angezeigt haben möchte. sprich "profil seite 1", "profil seite 2", "profil seite 3" und "in der galerie" (per auswahlliste).
wenn der user z.b. das bild auf seite 1 angezeigt haben möchte, wird beim speichervorgang, sprich wenn das bild in die DB eingetragen wird, der wert auf 1 gesetzt.
würde er seite 2 wählen dann den wert 2, bei seite 3 den wert 3, etc.
im profil gebe ich die bilder so aus (beispiel von profil-seite 1, [template]):
php: |
1:
2:
3:
4:
5:
|
<if($id)><then>
<center><img src="vgprofil_gala.php?bildid=$id&sid=$session[hash]" border="0" alt="" title="" style="border: 1px solid #000000;" /></center><br />$comment1
</then><else>
<center><img src="{$style['imagefolder']}/profil/kein_bild.gif" /></center>
</else></if> |
|
der code sieht so aus und sitzt in der profile.php:
php: |
1:
2:
3:
4:
5:
|
$seite1 = $db->query_first("SELECT * FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$user_info['userid']."' AND seite = '1'");
if($seite1['id']) {
$id = $seite1['id'];
$comment1 = $seite1['comment'];
} |
|
so, das funktioniert auch alles... ich habs nun nur erwähnt um evtl. verständnisprobleme zu beseitigen.
nun das problem:
nehmen wir an, ein user hat sich ein profil-bild hochgeladen und es auf "profil seite 1" gespeichert. nun hat der wert "seite" des bildes ja "1".
wenn der user jetzt aber nochmal ein bild hochläd und es auf "profil seite 1" angezeigt bekommen möchte, wird für das bild ja wieder der wert "1" gespeichert.
da die abfrage oben (auszug aus der profile.php) sich eigentlich nur auf ein bild beschränken soll, gibts natürlich ein kleines problem. -> es gibt zwei bilder mit derselben seitenID in der datenbank.
um das zu unterbinden, muss man ja theoretisch bei dem speichervorgang (sprich beim upload des bildes), checken ob die seitenID schon vergeben ist, oder nicht.
ich habe das soweit auch schon probiert, doch es klappte nicht...
der code ist folgender (steht in der vgprofil_gal.php):
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
$check = $db->query_first("SELECT seite FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$userid."' AND id = '".$bild_id."'");
if($check['seite'] == 1) {
redirect("Fehler: Auf dieser Seite befindet sich schon ein Foto/Bild.", "vgprofil_gal.php?sid=".$session[hash], 10);
}
// Zur Erklärung:
// die IF abfrage habe ich aus testzwecken auf seiteID 1 gesetzt.
// später sollt sie noch um 2 und 3 erweitert werden.
// da die bilder, welche in der galerie angezeigt werden, die
// seitenID 4 bekommen, muss diese natürlich ausgerenzt werden. |
|
dieser code steht über der zeile:
php: |
1:
2:
3:
4:
|
/* Dateigröße vom Original ermitteln */
$filename = 'vgprofil_gal/org/org-'.$bild_id.'.'.$uploadpic_file_extension;
list($width, $height, $type) = @getimagesize($filename);
$fsize = @filesize($filename); |
|
wenn ich nun probiere ein bild zu uploaden, dann speicherts er und gibt halt keine fehermeldung aus.
und genau das soll halt nicht passieren. ich möchte, dass wenn ich nen bild uploade wessen seitenID schon vergeben ist (außer die ID 4), dass er nen fehler ausgibt (in diesem fall der redirect).
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
so, ich hoffe, dass das nun ausführlich genug war...
liebe grüße und vielen dank, the_cRu
__________________ - ... -
|
|
09.06.2007 21:23 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.775.659
Nächster Level: 266.777.854
|
|
Hallo,
so jetzt langsam steige ich durch.
1. memberlist.php
Du musst die Variable "$gb_pic" schon leeren da sonst immer das gleiche Bild angezeigt wird.
Ich würde den Code einsetzen.
code: |
1:
2:
3:
4:
5:
6:
7:
|
$gb_pic = '';
$gb = $db->query_first("SELECT * FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$members['userid']."');
if($gb['id']) {
$gb_pic = $gb['id'];
}
|
|
Zu 2. vgprofil_gal.php
Der Code und die Abfrage ist an der falschen Stelle.
Ich gehe dafon aus das das Feld im Template wo der User die Seite angeben kann "$seite" heißt.
Ich würde dann folgendes machen.
Editiere die Datei "vgprofil_gal.php".
Suche:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
$checkimage = 0;
if (in_array($uploadpic_file_extension, array('gif', 'jpg', 'jpeg', 'png'))) {
/* Bildinhald prüfen */
$imagecheck = @implode('', $_FILES['uploadpic_file']['tmp_name']);
$imagecheck = preg_replace('/[^a-z0-9]+/i', '', $imagecheck);
if (stristr($imagecheck, 'script')) $checkimage = 1;
}
|
|
Setze darunter ein:
code: |
1:
2:
3:
4:
|
$check = $db->query_first("SELECT * FROM bb".$n."_vgprofil_gal_user_bilder WHERE userid = '".$userid."' AND seite = '".$seite."'");
if($check) redirect("Fehler: Auf dieser Seite befindet sich schon ein Foto/Bild.", "vgprofil_gal.php?sid=".$session[hash], 10);
|
|
Teste es mal so.
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
09.06.2007 22:00 |
|
|
|
so, das erste problem ist nun verschwunden.
super vielen dank!
zum zweiten:
ich habe es wie gefolgt geändert. er gibt mir zwar den fehler (redirect) aus, doch wenn ich dann zurück in die galerie im UCP gehe, sind zwei neue "leere" einträge da.
es wird kein bild angezeigt, aber es wird aufgelistet...
hm...
__________________ - ... -
|
|
09.06.2007 22:29 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.775.659
Nächster Level: 266.777.854
|
|
|
Zitat: Original von the_cRu
so, das erste problem ist nun verschwunden.
super vielen dank!
zum zweiten:
ich habe es wie gefolgt geändert. er gibt mir zwar den fehler (redirect) aus, doch wenn ich dann zurück in die galerie im UCP gehe, sind zwei neue "leere" einträge da.
es wird kein bild angezeigt, aber es wird aufgelistet...
hm... |
|
|
Hallo,
schön das der erste Fehler schon mal beseitigt ist.
Sorry bei zweiten Fehler ist der Einbau an der falschen Stelle.
Der muss über den Code:
code: |
1:
2:
3:
4:
|
$db->query("INSERT INTO bb".$n."_vgprofil_gal_user_bilder (userid,bild_name,extension) VALUES ('".$userid."', '".addslashes(htmlspecialchars($uploadpic_file_name2))."', '".addslashes(htmlspecialchars($uploadpic_file_extension))."')");
$bild_id = $db->insert_id("bb".$n."_vgprofil_gal_user_bilder","id");
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
09.06.2007 22:52 |
|
|
|
klasse viktor,
funzt nun wie es soll...
bis auf eins, das hatte ich vergessen.
man kann die bilder bearbeiten. also wenn ich auf bearbeiten klicke,
kann ich auch dort die seite einstellen...
wie mach ich das denn da? weil wenn ich nur z.b. nen kommentar ändern möchte (hab die funktion auch noch zugefügt), dann bleibt die ID ja gleich...
__________________ - ... -
|
|
09.06.2007 23:16 |
|
|
|
hm,
momentan habe ich den code unter dem teil:
hm, kann ich das net theoretisch mit einigen abfragen umsetzen?
bin schon am grübeln, aber irgendwie find ich nichts...
__________________ - ... -
|
|
09.06.2007 23:34 |
|
|
|
huhu viktor,
also mit mir musst du wohl auch nerven haben... args.
aber es kommt so langsam zum ende.
problem in der profil_galerie:
wie gesagt, hast du evtl. ideen wie ich das umsetezn könnte, dass wenn ich nen bild bearbeite, auch die seitenID ändern kann, ohne das die dann doppelt in der DB ist?
problem memberlist:
hat ja alles geklappt. doch zwei dinge habe ich nicht beachtet.
die sortierungsoptionen, man kann ja nach beiträgen, homepage, etc. suchen.
aus der liste möchte ich gerne die einträge "email" und "homepage" löschen...
dafü würd ich aber gerne 5 geschlechter zusätzlich drinnen haben:
"neutrum" , "männlich" , "weiblich" , "TS/TV" "paar"
hast du ne idee wie ich das machen kann?
hab mir die memberlist.php scho angeguckt... aber nichts gefunden womit ich was anfangen könnte.
__________________ - ... -
|
|
10.06.2007 19:56 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.775.659
Nächster Level: 266.777.854
|
|
|
10.06.2007 20:18 |
|
|
|
|
Zitat: Original von Viktor
jo wie schon gesagt ist das Editieren in der VGProfil-Galreie nicht vorgesehen.
Da muss man schon was neues einbauen.
Einen Link zum editieren, Template zum editieren und dann den Code in der Datei "vg_profile.php".
|
|
|
achso, nu hab ich dich verstanden.
ja, das habe ich ja schon lange eigentlich.
hier mal mein code:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
/* Bild bearbeiten */
if ($action == 'editpic'){
if ($wbbuserdata['can_use_vgprofil_gal'] == 0) access_error();
if(isset($_REQUEST['id'])) $id = intval($_REQUEST['id']);
if (isset($id)) {
$query = $db->query_first("SELECT * FROM bb".$n."_vgprofil_gal_user_bilder WHERE id = '".$id."'");
if($query['id']) {
$id = $query['id'];
$comment = $query['comment'];
$seite = $query['seite'];
}
}
eval("\$tpl->output(\"".$tpl->get("vgprofil_gal_pic_edit")."\");");
}
if ($action == 'editpic_save'){
if ($wbbuserdata['can_use_vgprofil_gal'] == 0) access_error();
if(isset($_REQUEST['id'])) $id = intval($_REQUEST['id']);
if(isset($_POST['seite'])) $seite = $_POST['seite'];
if(isset($_POST['comment'])) $comment = $_POST['comment'];
$db->unbuffered_query("UPDATE bb".$n."_vgprofil_gal_user_bilder SET seite = '".$seite."', comment = '".strip_tags($comment)."' WHERE id = '".$id."'");
header("Location: vgprofil_gal.php?action=welcome&page=".$page."&sid=$session[hash]");
exit();
} |
|
ich weiß nun halt nicht wie ich das mit den seitenIDs machen soll. weil wenn ich ja ein bild editiere, nur das kommentar ändere, bleibt die ID ja gleich. dann meckert er ja wenn ich den code von oben nehme.
|
Zitat: Original von Viktor
Die Felder in der Memberslist kannst du selbst im ACP einstellen.
Schaue Dir mal im ACP -> Mitgliederliste bearbeiten an.
|
|
|
also irgendwie schnall ich das nicht.
wie kann ich denn bei "angezeigte felder" die einträge da rauslöschen?
__________________ - ... -
|
|
10.06.2007 20:27 |
|
|
|
den code probier ich morgen aus...
leider kann ich da nichts hin und her schieben
benutze FF 2.0.0.4... aber daran sollts glaub ja net liegen.
schieben geht nit, doppelklick bringt au nichts, nichts irgendwie...
__________________ - ... -
|
|
10.06.2007 21:08 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.775.659
Nächster Level: 266.777.854
|
|
|
10.06.2007 21:12 |
|
|
|
|
|
|