Welcher User hat das Formular erstellt?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Cold hat geschrieben:K super ;) Und falls du dich wunderst, das noch nicht alles in Variablen geändert ist, das ist noch in arbeit ;) Warte aber erstmal ab zu was zu einem Ergebnis du kommst ^^
Du musst auf jeden Fall noch einiges besser "formalisieren". So hast du z.B. in deinem search-script das zu durchsuchende Feld sprachabhängig gemacht. Da muss ein "Layer" mehr Abstraktion dazwischen ... :wink:

Ich hab' mich gerade wieder drangesetzt ... warum nutzt du eigentlich nicht die phpBB-eigene DB-Klasse? Ich persönlich kann mit der besser umgehen, als mit den PHP-mysql Bordmitteln :o

Ich könnte dir das gerne so umbauen, dass die phpBB DBAL genutzt wird.
Oder willst du es lieber so lassen?

Sachst bescheid, nä?
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
240709Gast

Beitrag von 240709Gast »

Tu ich so schnell ich kann ;)... Die Scripte hab ich erst unabhängig von phpBB gebaut, da ich erst ein eigenes CMS vorhatte. Da mir allerdings aus mehreren Gründen phpBB besser gefiel (z.B. fertiges CMS = "weniger" Arbeit, Forum und Page in einem Style...) hab ichs erstmal da integriert ;)


Also wenn es dir nicht zu viel Mühe macht würde ich mich natürlich drüber freuen wenn dus direkt umbauen würdest...

Weil von der phpBB eigenen DB-Klasse hab ich gar keine Ahnung...


Bedanken tu ich mich nachher... Je nach dem was du anrichtest ;)

mfg, Cold
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Cold hat geschrieben:Also wenn es dir nicht zu viel Mühe macht würde ich mich natürlich drüber freuen wenn dus direkt umbauen würdest...
Also, ich denke da hab' ich mich fürs Erste etwas zu weit aus dem Fenster gelehnt :oops:
Ich denke ich mach es jetzt auch erstmal so weiter wie du es hast .. es fehlt sowieso nur noch die Mimik, um den User, welcher eine Kneipe eingetragen hat mit auszulesen ... die insert_pub.php ist bereits fertig :D

Wenn ich mal wieder etwas mehr Zeit habe, kann ich die gerne auf die Sprünge helfen, wie du das mit der phpBB DBAL und dem Template-System hinkriegst ...

So long,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

So, gezz aber:
Also zunächst mal eine kurze Anmerkung zur Sicherheit ... studiere mal genau die verschiedenen Ansätze, wie eingegebene Textvariablen von den CORE_phpBB-scripten genutzt werden, um Angriffe abzuwehren, da liegt in deinem Skript noch einiges im Argen soweit ich das sehen kann.

Aber es geht ja zunächst mal um die Funktion, welcher User hat die Kneipe eingetragen!

Dazu habe ich ein neues Feld namens posted_by_id in die Kneipentabelle gepackt, welches du mit diesem SQL-Statement per phpMyAdmin einfügen kannst:

Code: Alles auswählen

ALTER TABLE `kneipen` ADD `posted_by_id` MEDIUMINT( 8 ) NOT NULL ;
In diesem Feld wird die user_id des aktiven Users(also derjenige, der gerade eine neue Kneipe einträgt) gespeichert!

Beim Auslesen muss dann mittels einer Abfrage über 2 Tabellen, der jeweils passende username aus der phpbb_users "geholt" werden, der zu der posted_by_id in der kneipen-Tabelle passt.

Hier also die Änderungen an der insert_pub.php:

Code: Alles auswählen

SUCHE:
if (!get_magic_quotes_gpc())
{
    $kneipe     = addslashes($kneipe);
    $stadt      = addslashes($stadt);
    $gesammt    = addslashes($gesammt);
}

DANACH FÜGE EIN:
//Erweiterungen von mad-manne
$posted_by_id = $userdata['user_id'];


SUCHE:
$query = "insert into kneipen values
          ('', '$kneipe', '$stadt', '$gesammt')";

ERSETZE DURCH:
$query = "insert into kneipen values
          ('', '$kneipe', '$stadt', '$gesammt', '$posted_by_id')";
Und nun noch die search_pub.php:

Code: Alles auswählen

SUCHE:
$sql="SELECT kneipe,gesammt FROM kneipen WHERE MATCH(".$searchtype.") AGAINST('".$searchterm."' IN BOOLEAN MODE)";

ERSETZE DURCH:
$sql = "SELECT kneipe, gesammt, posted_by_id, username 
		FROM kneipen, phpbb_users 
		WHERE kneipen." . $searchtype . " = '" . $searchterm . "' 
		AND phpbb_users.user_id = kneipen.posted_by_id";


SUCHE:
$ausgabe.='<p><b>'.$i.'</b>. '.$row['kneipe'].', Note: '.$row['gesammt'].'</p>';

ERSETZE DURCH:
$ausgabe.='<p><b>'.$i.'</b>. '.$row['kneipe'].', Note: '.$row['gesammt'].' <i>eingetragen von:</i> '. $row['username'].'</p>';
Viel Spass,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
240709Gast

Beitrag von 240709Gast »

So, jetzt kann ich mich wohl offiziell bedanken ;)... Funktioniert wunderbar, genauso, wie ichs mir vorgestellt habe! Habe noch das Datum und die Uhrzeit ergänzt.


Jetzt hab ich noch weiterführende Fragen ;) Würd mich freuen wenn du dir da auch noch ein wenig Zeit für nehmen könntest...

Ist es möglich, das der Username direkt auf das Profil des Users verlinkt ist?
Und wie kann man im Profil anzeigen lassen, wieviele Kneipen ein User eingetragen hat?


mfg, Cold
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

nochmal zur Erinnerung
@mods: dieser Post sollte mal in die Entwicklungsabteilung verschoben werden, oder :roll:
Cold hat geschrieben:Würd mich freuen wenn du dir da auch noch ein wenig Zeit für nehmen könntest...
Hi cold,
mit meiner Zeit sieht es für die nächsten Tage mau aus :-?

Ich bin ab morgen mal wieder unterwegs in Sachen Verunstaltungstechnik und komme erst Donnerstag nächster Woche wieder zurück. Während dieser Zeit werde ich wohl nur ab und an im InternetCafe nach dem nötigsten schauen können. Zeit für phpBB.de hab' ich dann aber keine ...
Wenn ich zurück bin, können wir aber gern schauen, was da noch gemacht werden kann.

Wegen dem Link ins Profil .. studiere doch mal z.B. die memberlist.php, viielleicht kommst du dann ja selber drauf :wink:

So long,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
240709Gast

Beitrag von 240709Gast »

k ist kein Problem ;)... memberlist schau ich mir mal an... denk mal die lösung wird da irgendwo stehen, sonnst hättest dus nicht gesagt ^^...



mfg, Cold
240709Gast

Beitrag von 240709Gast »

So muss den Thread mal wieder ausgraben ^^... Ich arbeite momentan an der verlinkung auf das Profil. Allerdings will das nicht so, wie ich will... Kommt immer fehler in line 80...

Meine search_pub.php:

Code: Alles auswählen

if(!$_POST['submit'])
{

echo '<form action="search_pub.php" method="post">';
echo    $lang['Search_Option'];
echo      '<select name="searchtype"><option>' . $lang['option_city'] . '</option></select>';
echo    '<br /><br />';
echo    $lang['pub_search_in'];
echo    '<select name="searchterm">';
echo      '<option value="Bochum">Bochum</option>';
echo      '<option value="Köln">Köln</option>';
echo    '</select>';
echo    '<br />';
echo    '<input type="submit" value="Suchen" name="submit">';
echo  '</form>';
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
exit;
}


// kurze Variablennamen erstellen
$searchtype = $_POST['searchtype'];
$searchterm = $_POST['searchterm'];
$username = $row['username'];
$posted_by_id = $userdata['user_id'];

$template->assign_block_vars('memberrow', array(
'USERNAME' => $username,
'PROFILE' => $profile,
'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
);


$searchterm = trim($searchterm);

if (!$searchtype || !$searchterm) {
    echo 'Sie haben keine Details für die Suche eingegeben. Bitte gehen Sie zurück und versuchen es noch einmal.';
    include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
exit;
}

if (!get_magic_quotes_gpc()) {
    $searchtype = addslashes($searchtype);
    $searchterm = addslashes($searchterm);
}

$db = mysql_connect("XXXX", "XXXX", "XXXX") or
      die ('Fehler: Verbindung zur Datenbank nicht möglich.<br>Versuchen Sie es zu einem späteren Zeitpunkt nochmal.');

// SELECT
$sql = "SELECT kneipe, gesammt, posted_by_id, posted_by_id, username, insert_date, insert_time FROM kneipen, kneipedia_users WHERE kneipen." . $searchtype . " = '" . $searchterm . "' AND kneipedia_users.user_id = kneipen.posted_by_id";

mysql_select_db("XXXX");
$search = mysql_query($sql) OR die(mysql_error());
$num_rows = mysql_num_rows($search);

$ausgabe.='<p>'.$num_rows.' </b>Treffer für "'.$searchterm.'"</p>';
$i=1;
while($row = mysql_fetch_array($search))
            {
            $ausgabe.='<p><b>'.$i.'</b>. '.$row['kneipe'].', Note: '.$row['gesammt'].' <i>, Eingetragen von</i> '. <a href="{memberrow.U_VIEWPROFILE}">$row['username']</a> .' <i>am</i> ' . $row['insert_date'] . ' <i>um</i> ' . $row['insert_time'] . ' Uhr.</p>';
            $i++;
            }
// Ausgabe
echo $ausgabe;

mysql_close();



include($phpbb_root_path . '/includes/page_tail.'.$phpEx);
?>


Fänds nett wenn mir jemand sagen könnte was falsch ist und wies richtig sein müsste... das hab ich mir bis jetzt aus der memberlist.php und der memberlist_body.tpl zusammengeschustert....



mfg, Cold
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Cold hat geschrieben:Fänds nett wenn mir jemand sagen könnte was falsch ist und wies richtig sein müsste... das hab ich mir bis jetzt aus der memberlist.php und der memberlist_body.tpl zusammengeschustert....
Hi Cold,
so vom ersten schnellen Blick, ist in deinem Script fast gar nix richtig ... :oops:

Du weist oben bereits deine memberrow-Variablen zu .. diese müssten aber innerhalb der "Auslese-Schleife" über das Ergebinss der Datenbankabfrage zugewiesen werden!
Ausserdem sagst du was von wegen Fehler in Line80 ... in welchem Script in Line80 soll das denn sein, da dein hier gepostetes SCript nur aus 72 Zeilen besteht ?!

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
240709Gast

Beitrag von 240709Gast »

So das mit dem Profil funktioniert inzwischen einwandfrei ;) War vielleicht eine Nummer zu einfach ^^...


Nochmal zu der Anzeige im Profil, wieviele Kneipen ein User eingetragen hat. Ich hab mir das in der usercp_viewprofile und in der DB grad mal angeschaut, und finde das ein wenig zu kompliziert um da "einfach so" was zu ändern...

Kannst mir vll dabei helfen?


mfg, Cold
Antworten

Zurück zu „Coding & Technik“