YourWBB


yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Infoseiten Problem » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 2.911 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Zum Ende der Seite springen Infoseiten Problem
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Lenox Lenox ist männlich
Mitglied


images/avatars/avatar-2072.gif

Dabei seit: 11.03.04
Beiträge: 517
Fähigkeiten: WBB2 Fortgeschritten
Herkunft: AP
Forenversion: 2.3

 Infoseiten Problem Antworten Zitieren Editieren Melden       UP

Folgendes Problem hab ich gerade:

Ich versuche grad eine Informationsseite im wbb zu integrieren so das man bei einem TEAM-Mitglied darauf klicken kann

nun hab ich aber das Problem das wenn ich auf einen User klicke steht zwar in der adresszeile team.php?action=info&userid=1

Aber es wird nicht der Name zu der ID ausgegeben

Kann mir da einer Helfen wie ich das ermögliche irgendwie bin ich da zu blöd für

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
// Information
if (isset($_REQUEST['action'])) $action $_REQUEST['action'];
else $action '';

if ($action == 'info') {

$info=$db->unbuffered_query ("SELECT userid, username FROM bb".$n."_users ORDER by userid='".$row['userid']."'");
    while($row=$db->fetch_array ($info)) {
        $row['userid'];
        $row['username'] = htmlspecialchars($row['username']);
        $username $row['username'];
                
        eval("\$team_info_bit = \"".$tpl->get("team_info_bit")."\";");
    }

    eval("\$tpl->output(\"".$tpl->get("team_info")."\");");
} else {
    
eval("\$tpl->output(\"".$tpl->get("team")."\");");
}


Wenn ich vor ORDER by ein WHERE und danach abfrage userid=$row['userid'] dann bekomme ich eine leere weise seite
24.10.06 13:35 Lenox ist offline E-Mail Finden Als Freund hinzufügen
Broken Sword Broken Sword ist männlich
Mitglied


images/avatars/avatar-5300.jpg

Dabei seit: 18.06.04
Beiträge: 537
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Eine Frage: was ist $row['userid']?
Wo wurde das deklariert?
WHERE ist schon richtig, anstatt ORDER BY. Denn ORDER BY sortiert nur.

Außerdem kannst du deinen Code vereinfachen:
$row['username'] = htmlspecialchars($row['username']);
$username = $row['username'];
Warum nicht gleich:
$username = htmlspecialchars($row['username']);
?
24.10.06 14:01 Broken Sword ist offline WWW Finden Als Freund hinzufügen
Lenox Lenox ist männlich
Mitglied


images/avatars/avatar-2072.gif

Dabei seit: 11.03.04
Beiträge: 517
Fähigkeiten: WBB2 Fortgeschritten
Herkunft: AP
Forenversion: 2.3

Themenstarter Thema begonnen von Lenox
Antworten Zitieren Editieren Melden       UP

Zitat:
Original von Broken Sword
Eine Frage: was ist $row['userid']?
Wo wurde das deklariert?
WHERE ist schon richtig, anstatt ORDER BY. Denn ORDER BY sortiert nur.

Außerdem kannst du deinen Code vereinfachen:
$row['username'] = htmlspecialchars($row['username']);
$username = $row['username'];
Warum nicht gleich:
$username = htmlspecialchars($row['username']);
?


Öhm... naja eigentlich dachte ich wenn ich WHERE userid='".$row['userid']."' nehme dann weiss der Code was ich möchte aber wenn ich das mache kommt eine weisse seite von daher weiss ich nicht weiter

wie müsste dann der WHERE-Befehl lauten?

den ich möchte wenn man direkt auf der Team-Seite steht und hinterdem Username auf Info klickt dann zu dem auch die Userid und dazu dann derUsername in der Info steht

Aber das macht er derzeit nicht
24.10.06 14:06 Lenox ist offline E-Mail Finden Als Freund hinzufügen
Broken Sword Broken Sword ist männlich
Mitglied


images/avatars/avatar-5300.jpg

Dabei seit: 18.06.04
Beiträge: 537
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Wie wäre es damit?
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
// Information
if (isset($_REQUEST['action'])) $action $_REQUEST['action'];
else $action '';

if ($action == 'info') {
$uid intval($_GET['userid']);
$info=$db->unbuffered_query ("SELECT userid, username FROM bb".$n."_users WHERE userid='".$uid."'");
    while($row=$db->fetch_array ($info)) {
        $row['userid'];
        $username htmlspecialchars($row['username']);                
        eval("\$team_info_bit = \"".$tpl->get("team_info_bit")."\";");
    }

    eval("\$tpl->output(\"".$tpl->get("team_info")."\");");
} else {
    
eval("\$tpl->output(\"".$tpl->get("team")."\");");
}


Aber eines fällt mir noch auf, warum benuzt du eine while-Schleife, wenn es doch nur ein User ist? Wäre das denn nicht besser?
php:
1:
2:
3:
4:
5:
if ($action == 'info') {
$info=$db->query_first("SELECT userid, username FROM bb".$n."_users WHERE userid='".intval($_GET['userid'])."'");
$username htmlspecialchars($row['username']);                
eval("\$tpl->output(\"".$tpl->get("team_info")."\");"); //In dem Template   team_info_bit   integrieren
}

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Broken Sword: 24.10.06 14:13.

24.10.06 14:13 Broken Sword ist offline WWW Finden Als Freund hinzufügen
Lenox Lenox ist männlich
Mitglied


images/avatars/avatar-2072.gif

Dabei seit: 11.03.04
Beiträge: 517
Fähigkeiten: WBB2 Fortgeschritten
Herkunft: AP
Forenversion: 2.3

Themenstarter Thema begonnen von Lenox
Antworten Zitieren Editieren Melden       UP

Ah danke hab das jetzt so gelöst:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
if ($action == 'info') {

$info=$db->query ("SELECT userid, username, title, regdate FROM bb".$n."_users WHERE userid='".intval($_GET['userid'])."'");
    while($row=$db->fetch_array ($info)) {
    
        $row['userid'];
        $username htmlspecialchars($row['username']);
        $row['title'] = htmlconverter($row['title']);
        $regdate formatdate($wbbuserdata['dateformat'], $row['regdate']);
                
        eval("\$team_info_bit = \"".$tpl->get("team_info_bit")."\";");
    }

    eval("\$tpl->output(\"".$tpl->get("team_info")."\");");
}
24.10.06 14:21 Lenox ist offline E-Mail Finden Als Freund hinzufügen
Moes Moes ist männlich
Mitglied


images/avatars/avatar-3805.gif

Dabei seit: 30.12.05
Beiträge: 161
Herkunft: Wien
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Statt $_GET würde ich $_REQUEST benutzen. Augenzwinkern

__________________

Tune Up Your Moe

24.10.06 17:15 Moes ist offline E-Mail Finden Als Freund hinzufügen Füge Moes in deine Kontaktliste ein
Lenox Lenox ist männlich
Mitglied


images/avatars/avatar-2072.gif

Dabei seit: 11.03.04
Beiträge: 517
Fähigkeiten: WBB2 Fortgeschritten
Herkunft: AP
Forenversion: 2.3

Themenstarter Thema begonnen von Lenox
Antworten Zitieren Editieren Melden       UP

Zitat:
Original von Moes
Statt $_GET würde ich $_REQUEST benutzen. Augenzwinkern


Danke dir mal wieder Moe

Man liest sich nachher im ICQ Augenzwinkern
24.10.06 17:24 Lenox ist offline E-Mail Finden Als Freund hinzufügen
Broken Sword Broken Sword ist männlich
Mitglied


images/avatars/avatar-5300.jpg

Dabei seit: 18.06.04
Beiträge: 537
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Nach deiner Beschreibung ist GET, durch die Speicherplatzersparnis von 3 Bytes, die bessere Wahl.
24.10.06 18:17 Broken Sword ist offline WWW Finden Als Freund hinzufügen
BreiteSeite BreiteSeite ist männlich
ETIESETIERB


images/avatars/avatar-4074.gif

Dabei seit: 02.10.04
Beiträge: 1.420
Fähigkeiten: WBB3 Anfänger; WBB2 Fortgeschritten
Herkunft: Sachsen
Forenversion: 3.0

Antworten Zitieren Editieren Melden       UP

Zitat:
Original von Moes
Statt $_GET würde ich $_REQUEST benutzen. Augenzwinkern


Mir hat man gesagt immer GET; POST, COOKIE und SESSION benutzen anstatt REQUEST... in einem php-Channel im IRC...

__________________
Mit freundlichen Grüßen
BreiteSeite


» Mancher Mensch hat ein großes Feuer in seiner Seele, und niemand kommt, um sich daran zu wärmen. «
BreiteSeites sysProfile

26.10.06 23:21 BreiteSeite ist offline E-Mail WWW Finden Als Freund hinzufügen Füge BreiteSeite in deine Kontaktliste ein AIM-Name von BreiteSeite: dackelheinz53 YIM-Name von BreiteSeite: dackelheinz53 MSN Passport-Profil von BreiteSeite anzeigen
xundy xundy ist männlich
Mitglied


Dabei seit: 16.01.04
Beiträge: 817
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Grundsätzlich sind ja alle methoden auch eine Art filter, ausser REQUEST(kommt eher einem catch all gleich) un beschränken halt die Methode wie Werte an ein Script übergeben werden.

Werden in einem Script 2 Möglichkeiten der Werteübergabe verwendet zB. POST und GET dann nutzt man auch REQUEST um diese aufzufangen, da man ansosnten "denselben" Code 2 mal im Script einbauen muß einmal wenn ein Wert per POST und einmal wenn ein WERT per GET übergeben wird.

Kommt ja oft vor wenn ein Formular Werte übergibt und nach Abarbeitung das Script per header wieder sich selbst mit entsprechen Parametern aufruft.

Ich sage es mal ganz Plumb, eigentlichkönnte immer REQUEST(mache ich natürlich nur im obigen FallAugenzwinkern ) benutzt werden, man muß halt dann nur Sorge tragen, die Daten entsprechend aufzubereiten, um nicht Lücken in seinem Script für Angriffe zu schaffen, aus Performancegründen den ein oder anderen zu nutzen ist wohl eher MakulaturAugenzwinkern

mfg

__________________
Fragen kostet nichts, nicht fragen kann teuer werden!

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von xundy: 27.10.06 12:10.

27.10.06 12:09 xundy ist offline E-Mail WWW Finden Als Freund hinzufügen Füge xundy in deine Kontaktliste ein
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » yourWBB Misc * » Das Proggen » MySQL und PHP » Infoseiten Problem