YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » Empfänger Feld automatisch füllen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 3.513 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als unerledigt markiert. Thread unerledigt

Zum Ende der Seite springen Empfänger Feld automatisch füllen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
#AHBL
Alternativ Mitglied


Dabei seit: 05.02.12
Beiträge: 134

 Empfänger Feld automatisch füllen Antworten Zitieren Editieren Melden       UP

Erstmal wünsche ich allen ein schönes neues Jahr smile

Problembeschreibung:
So zu meinem kleinen Problem wo ich mich wohl die ganze Zeit auf dem Holzweg befinde. Wenn ich in einem Thread auf den PN Button von einem User gehe dann wird der Username ja schon oben bei Empfänger eingetragen damit man nur noch die Nachricht tippen muss. So nun wollte ich mir diese Funktion kopieren. Gesagt werden muss noch, dass ich im Profile einen Link habe zu einem PopUP was sich öffnen wenn man es anklickt und man dem User eine ANfrage schicken kann. Deswegen möchte ich sehr gerne, dass in dem Feld Empfänger, der Username des Accounts steht in derem Profil ich bin damit ich ihn nicht mehr per Hand eintippen muss doch verlaufen meine Versuche bis jetzt, immer in den Sand.

Das wäre mein Feld in der PHP Datei
code:
1:
<input type="text" class="input" name="recipient" value="$username">


Und das der Teil der PHP Datei (ist eine externe)
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if(isset($_POST['send'])) {
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['recipient'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')");
header("Location: relationcp.php?action=view&sid=$session[hash]");
exit();
}
if($wbbuserdata['canusepms']==1) {
$find_username = mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$id."'");
$username = $find_username['username'];
eval("\$anfrage .= \"".$tpl->get("relationcp_suggestion_post")."\";");
}


Weil absenden tut er das ganze nur wird kein Empfänger eingetragen und so kommt diese Anfrage bei keinem an. Aber das Feld in meinem Template bleibt leer.

Liebe Grüße

Fehlermeldung:


Link zum Forum und Screenshot (KEINE Bilderhoster, per Dateianhang):


Was wurde zuletzt geändert oder eingebaut?

Dateianhang:
png screen.png (42,33 KB, 140 mal heruntergeladen)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von #AHBL: 01.01.14 18:00.

01.01.14 18:00 #AHBL ist offline E-Mail Finden Als Freund hinzufügen
Steinadler
Alternativ Mitglied


Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Forenversion: 2.3; Lite 1.0

Antworten Zitieren Editieren Melden       UP

Wenn Dein Value: $username ist, sollte der Name auch: username sein.

also so:

php:
1:
<input type="text" class="input" name="username" value="$username">


Das da:

php:
1:
if (isset($_POST['username'])) $username trim($_POST['username']);


sollte auch in Deiner php Datei stehen, und zwar unterhalb von:

php:
1:
if (isset($_POST['send'])) {


Aber da müsste man Deine eigene php Datei als Ganzes sehen.
01.01.14 19:04 Steinadler ist offline Finden Als Freund hinzufügen
Miss Mindless
Mitglied


Dabei seit: 12.09.11
Beiträge: 13

Antworten Zitieren Editieren Melden       UP

Ich programmiere das mit ihr zusammen und habe deinen Vorschlag gerade einmal eingebaut, funktioniert aber leider nicht :-/

Ich kopier hier gleich mal einen größeren Teil des Codes rein und geb euch eine kleine Erklärung, was der überhaupt macht, vllt hilft das ja smile

Der Sinn und Zweck der Sache ist, dass wir automatische Relas für RPG-Foren schreiben wollen. Der Teil der Relas, um denen es dabei geht, ist die Ansicht - also wenn man also UserA eingeloggt ist und im Thread oder Profil von UserB auf die Relas klickt, kommt dort ein PopUp-Fenster und Zeigt die Relas von UserB an. Die PopUp-Seite ist folgendermaßen aufgebaut:
1. Infos zu UserB
2. Relas (unten im Code durch (...) ersetzt)
3. Wishlist (zB "ich wünsche mir noch eine beste Freundin")
4. Direkt Vorschläge machen

Die Funktionen 1-3 haben bisher problemlos funktioniert und tun das auch noch immer.

Bei der 4. Funktion ist dann allerdings das Problem. Unten auf dem PopUp befindet sich das, was im ersten Post angehängt wurde. Wenn UserA nun UserB eine Anfrage stellen möchte, ist es eben blöd, wenn er in das Feld Empfänger noch extra "UserB" eintippen muss. Deshalb soll dort einfach automatisch UserB stehen smile Unser Gedanke war bisher: Wir haben eh schon die UserID von UserB ausgelesen, dass heißt wir müssen nur den zugehörigen Usernamen aus der bb1_users auslesen und ihn automatisch in das Feld "Empfänger" eingeben. Aber das Feld "Empfänger" bleibt leer unglücklich

Das hier wäre dann der Teil der PHP, der die Ansicht betrifft smile

code:
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:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
if($action == "view"){ 
$id = $_GET['id'];

$infos = $db->query_first("SELECT * FROM bb".$n."_relations_infos WHERE userid = '$id'"); 
$banner = "<img src=".$infos[banner].">";
$titel = $infos[titel];
$untertitel = $infos[untertitel];
$descr = $infos[descr];
$lyrics = $infos[lyrics];

(...)

$wishbit="";
  $result_wunsch = $db->query("SELECT * FROM bb".$n."_relations_wunsch WHERE userid='".$id."' ORDER BY wishname ASC"); 
  while ($viewww=$db->fetch_array($result_wunsch)) { 
     $name = "$viewww[wishname]";
     $description = "$viewww[wishdescription]";
     if($viewww[wishimage]==''){
      eval("\$wishimg = \"".$tpl->get("relationcp_wishlist_noimage")."\";");
     } else {
      eval("\$wishimg = \"".$tpl->get("relationcp_wishlist_image")."\";");
     }

      eval ("\$wishbit .= \" ".$tpl->get("relationcp_wishlist_bit")."\";");
  }

if(isset($_POST['send'])) {
if (isset($_POST['username'])) $username = trim($_POST['username']);
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['username'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')");
header("Location: relationcp.php?action=view&sid=$session[hash]");
exit();
}

if($wbbuserdata['canusepms']==1) {

$find_username = mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$id."'");
 $username = $find_username['username'];
eval("\$anfrage .= \"".$tpl->get("relationcp_suggestion_post")."\";");
} 

eval("\$tpl->output(\"".$tpl->get("relationcp_view")."\");"); 
} 

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Miss Mindless: 01.01.14 19:47.

01.01.14 19:32 Miss Mindless ist offline E-Mail Finden Als Freund hinzufügen
Steinadler
Alternativ Mitglied


Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Forenversion: 2.3; Lite 1.0

Antworten Zitieren Editieren Melden       UP

Ich sehe das hier nicht in Deinem Code:

php:
1:
if (isset($_POST['username'])) $username trim($_POST['username']);


Hast Du auch diese Zeile entsprechend bearbeitet?

php:
1:
$db->query("INSERT INTO bb".$n."_relations_suggestions (id,sender,recipient,status,senderid,text,reagiert) VALUES (NULL,'$wbbuserdata[username]','".addslashes($_POST['recipient'])."','".addslashes($_POST['status'])."','$wbbuserdata[userid]','".addslashes($_POST['text'])."','0')");


Den ganzen 4. Abschnitt würde ich anders programmieren.

Vielleicht schaffe ich es bis Samstag Dir das mal vernünftig hin zu stricken.
01.01.14 19:45 Steinadler ist offline Finden Als Freund hinzufügen
Miss Mindless
Mitglied


Dabei seit: 12.09.11
Beiträge: 13

Antworten Zitieren Editieren Melden       UP

Tut mir leid, hab die Version von vor der Bearbeitung gepostet :-/

Habs jetzt oben nochmal reineditiert, wie es inkl. deinem Vorschlag aussieht smile Im Template haben wir auch genau das stehen, was du in deinem ersten Post geschrieben hattest smile

Was mich nur verwirrt ist, dass er in der Variable "$username" gar nichts zu speichern scheint. Hatte das jetzt schon öfter (also mit und ohne deiner Änderung) versucht, die Variable $username mir einfach hinter dem Empfänger, sozusagen einfach als Text ausgeben zu lassen und selbst das funktioniert schon nicht :-/
01.01.14 19:52 Miss Mindless ist offline E-Mail Finden Als Freund hinzufügen
Steinadler
Alternativ Mitglied


Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Forenversion: 2.3; Lite 1.0

Antworten Zitieren Editieren Melden       UP

Da kann ja auch nichts gefunden werden, wenn man sich diese Zeile anschaut:

php:
1:
$find_username mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$id."'");


Was soll $id darstellen?

Steht das so in Deiner Tabelle?

Glaube ich eher nicht.

Wenn dann eher so:

php:
1:
$find_username mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$userid."'");

oder so:

php:
1:
$find_username mysql_query("SELECT username, userid FROM bb".$n."_users WHERE userid='".$wbbuserdata['userid']."'");

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Steinadler: 01.01.14 20:06.

01.01.14 19:59 Steinadler ist offline Finden Als Freund hinzufügen
Miss Mindless
Mitglied


Dabei seit: 12.09.11
Beiträge: 13

Antworten Zitieren Editieren Melden       UP

Die id wird (oben) in Zeile 2 ausgelesen:
code:
1:
$id = $_GET['id'];


Hab $id auch mal an beliebiger Stelle ins Template gesetzt, das gibt er mir genau die Userid aus, die ich auch haben will smile Das funktioniert also wie gewollt.

(deine beiden Vorschläge habe ich natürlich trotzdem mal ausprobiert, änder sich aber nichts :-/)
01.01.14 20:36 Miss Mindless ist offline E-Mail Finden Als Freund hinzufügen
Steinadler
Alternativ Mitglied


Dabei seit: 02.09.08
Beiträge: 212
Fähigkeiten: WBB2 Fortgeschritten; WBB Lite 1 Profi
Forenversion: 2.3; Lite 1.0

Antworten Zitieren Editieren Melden       UP

Die Zeile:

php:
1:
$id $_GET['id'];

ist absolut tödlich!
Das solltest Du unbedingt abändern in:

php:
1:
if (isset($_REQUEST['id'])) $id intval($_REQUEST['id']);

Ansonsten bitte mal die kompletten Templates und die komplette php.Datei als Dateianhang beifügen.

Wie gesagt.....vielleicht schaffe ich es WE Da mal ne Lösung anzubieten.
01.01.14 21:24 Steinadler ist offline Finden Als Freund hinzufügen
#AHBL
Alternativ Mitglied


Dabei seit: 05.02.12
Beiträge: 134

Themenstarter Thema begonnen von #AHBL
Antworten Zitieren Editieren Melden       UP

So wir haben das mit dem GET sofort geändert.
Es ist sehr nett das du mal schaust smile

Ich hatte erst gedacht das man es so machen könnte wie mit der PN aus dem Profil senden wo man den Betreff hat und das Nachrichtenfenster

Grüße

Dateianhang:
zip Daten.zip (23 KB, 7 mal heruntergeladen)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von #AHBL: 01.01.14 23:48.

01.01.14 22:15 #AHBL ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Zitat:
Original von Steinadler
Die Zeile:

php:
1:
$id $_GET['id'];

ist absolut tödlich!
Das solltest Du unbedingt abändern in:

php:
1:
if (isset($_REQUEST['id'])) $id intval($_REQUEST['id']);

Ansonsten bitte mal die kompletten Templates und die komplette php.Datei als Dateianhang beifügen.

Wie gesagt.....vielleicht schaffe ich es WE Da mal ne Lösung anzubieten.


Hallo,

Falls ich das noch hinzufügen darf:
Sollte man Daten nur mit der "GET"-Methode senden dann sollte nur mittels "$_GET" eingelesen werden.
Dies gilt natürlich auch für "POST"-Methode und "$_POST".

"$_REQUEST" ist, falls möglich, zu vermeiden.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 09.01.14 11:58.

09.01.14 11:57 Schrimm ist offline Finden Als Freund hinzufügen
#AHBL
Alternativ Mitglied


Dabei seit: 05.02.12
Beiträge: 134

Themenstarter Thema begonnen von #AHBL
Antworten Zitieren Editieren Melden       UP

Hallo Schrimm, ich habe es in POST geändert in meiner Datei die bei mir auf dem Server liegt.

Also sollte ich immer mir das POST ans Herz legen anstatt das GET und REQUEST geht klar
18.01.14 22:23 #AHBL ist offline E-Mail Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Zitat:
Original von #AHBL
Hallo Schrimm, ich habe es in POST geändert in meiner Datei die bei mir auf dem Server liegt.

Also sollte ich immer mir das POST ans Herz legen anstatt das GET und REQUEST geht klar


Hallo,

Nein, so war das nicht gemeint.

"$_POST" ist "$_REQUEST" vorzuziehen.
"$_GET" ist "$_REQUEST" vorzuziehen.

Ergo: "$_REQUEST", wenn möglich, vermeiden!

Ob nun "$_POST" oder "$_GET" verwendet wird, hängt davon ab, was man möchte. Augenzwinkern

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Schrimm: 19.01.14 04:25.

19.01.14 04:24 Schrimm ist offline Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » Empfänger Feld automatisch füllen