Seite 2 von 3
Verfasst: 08.09.2005 21:42
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 ...
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
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.
Verfasst: 08.09.2005 21:47
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
Verfasst: 08.09.2005 22:13
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
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
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.
Verfasst: 08.09.2005 23:07
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.
Verfasst: 09.09.2005 17:23
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
Verfasst: 09.09.2005 17:38
von mad-manne
nochmal zur Erinnerung
@mods: dieser Post sollte mal in die
Entwicklungsabteilung verschoben werden, oder
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
So long,
Manne.
Verfasst: 10.09.2005 00:39
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
Verfasst: 17.09.2005 21:52
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
Verfasst: 18.09.2005 11:27
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 ...
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.
Verfasst: 23.09.2005 12:10
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