|
| LinkBack | Themen-Optionen | Thema bewerten |
#1
| |||
| |||
Parameter aus Adr.-Leiste auslesen? YaBB SE 1.5.4 (Recent.php YaBB SE 1.5.1)Hi, mein Anliegen sollte an sich ganz einfach sein: Hab die Code Passage: Code: <?php ... function RecentPosts() { global $bla, $bla, $bla $display = 30; ... } ... ?> -- ?action=recent;display=30 -- aus der URL Adressleiste ersetzt werden. Dabei soll 20 als Standardwert genommen werden falls kein Parameter ausgelesen werden konnte. Damit wird die Anzahl der anzuzeigenden Threads beeinflusst wird und es zur Zeit statisch ist wenn ich es aufrufe Falls es wirklich nicht zu kompliziert ist, würde ich mich über Hilfe freuen, da nur PHP Basiskenntnisse. Geändert von netzopfer (24.06.2008 um 21:02 Uhr). |
#2
| |||
| |||
Hui....hui..., dann sind es wohl doch eher niedere Basiskenntnisse Ich lerne aber schnell, sehe ich diese Funktion irgendwo anders komm ich in der Regel immer schnell rein , doch der Anstoss fehlt mir in diesem Fall noch. Ps: Code bis zur Ausgabe von HTML in der Funktion, evt. hilft es dir bzw. mir? Code: function RecentPosts() { global $settings, $txt, $yytitle, $censored, $scripturl, $enable_ubbc, $enable_notification, $menusep, $db_prefix; global $cgi, $img, $color, $imagesdir, $realNames, $sc; $display = 30; // in order to optimize speed, this query gets the ($display * 4) // latest messageID's. guessing that that will be enough to cover // ($display) topics a user is allowed to see. $request = mysql_query(" SELECT ID_MSG FROM {$db_prefix}messages AS m WHERE 1 ORDER BY posterTime DESC LIMIT 0, " . ($display * 4)) or database_error(__FILE__, __LINE__); $messages = array(); while ($row = mysql_fetch_array($request)) $messages[] = $row['ID_MSG']; $yytitle = $txt[214]; template_header(); if (count($messages)) { $request = mysql_query(" SELECT m.smiliesEnabled, m.posterTime, m.ID_MSG, m.subject, m.body, m.ID_TOPIC, t.ID_BOARD, b.name AS bname, c.name AS cname, t.numReplies, m.ID_MEMBER, m2.ID_MEMBER AS ID_FIRST_MEMBER, m.posterName, m2.posterName AS firstPosterName, IFNULL(mem.realName, m.posterName) AS posterDisplayName, IFNULL(mem2.realName, m2.posterName) AS firstPosterDisplayName, b.name AS bName FROM {$db_prefix}messages AS m, {$db_prefix}messages AS m2, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}categories AS c LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER=m.ID_MEMBER) LEFT JOIN {$db_prefix}members AS mem2 ON (mem2.ID_MEMBER=m2.ID_MEMBER) WHERE m.ID_MSG IN (" . implode(',', $messages) . ") AND m2.ID_MSG=t.ID_FIRST_MSG AND t.ID_TOPIC=m.ID_TOPIC AND b.ID_BOARD=t.ID_BOARD AND c.ID_CAT=b.ID_CAT AND (FIND_IN_SET('$settings[7]', c.memberGroups) != 0 OR c.memberGroups='' OR '$settings[7]'='Administrator' OR '$settings[7]'='Global Moderator') ORDER BY m.posterTime DESC LIMIT 0, $display") or database_error(__FILE__, __LINE__); echo '... ... Geändert von netzopfer (24.06.2008 um 21:02 Uhr). |
#3
| |||
| |||
$display = 30; Wird zu: $display = (isset($_REQUEST['display'])) ? (int)$_REQUEST['display'] : 30; if($display <= 0) $display = 30; Das sollte in etwa das bringen, was du willst... dadurch, dass der Input als Integer gecastet wird sollte es auch nicht allzu schlimm sein, wenn irgendein Heini meint ?display=string eingeben zu müssen. __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#4
| |||
| |||
du kannst auf den wert einfach mit $_GET['display'] zugreifen. das wird aber nur funktionieren, wenn in der php konfiguration (php.ini) das semikolon als trennzeichen eingetragen ist. (arg_seperator oder so ähnlich heisst das da.) zumindest wenn du das als modifikation veröffentlichen willst, solltest du dich darauf nicht verlassen. wenns nur für dich sein soll - kein problem. |
#5
| |||
| |||
Zitat:
Hallo danke erstmal für deine/eure Hilfe: hab das mal jetzt so: -- // $display = 30; $display = (isset($_REQUEST['display'])) ? (int)$_REQUEST['display'] : 20; if($display <= 0) $display = 20; eingefügt, kommt aber leider nicht zum gewünschten Ergebniss Überzeugen bitte hier: -- http:// -- Geändert von netzopfer (24.06.2008 um 21:03 Uhr). |
#6
| |||
| |||
lies meinen letzten beitrag. du kannst ds semikolon nicht verwenden. aber -> http://www.netzopfer.de/index.php?ac...cent&display=5 funktioniert natürlich. |
#7
| |||
| |||
aber es funktioniert doch!?! |
#8
| |||
| |||
Zitat:
Geändert von netzopfer (24.06.2008 um 21:04 Uhr). |
#9
| ||||
| ||||
$_SERVER['QUERY_STRING'] exploden, displaywert rausfischen... einfach? PHP-Code: |
#10
| |||
| |||
@Phillip: Generell schon... nur wie willst du rausfinden, an welcher Stelle das liegt? @ciruZ: Sorry, das hatte ich übersehen... sowas "dummes" hab ich aber auch noch nie gesehen... In diesem Fall bräuchte man dann tatsächlich den entsprechenden Abschnitt aus der globalen Datei... __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#11
| ||||
| ||||
regxps? |
#12
| |||
| |||
Viel zu langsam für sowas.... wir bräuchten nur den entsprechenden Codeabschnitt und dann könnte man auf sowas verzichten. __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#13
| ||||
| ||||
Klar gehts leichter mit dem Originalcode - aber wenn er ihn nunmal nicht findet? *kopfschüttel* |
#14
| |||
| |||
Danke....He Jungs & Mädels, ich bedank mich für euren Einsatz an der Unterstützung eines PHP-Dummies. Ich bin voll und ganz zufrieden und werde die Funktion auch mit dem & druchsetzen. Danke... Geändert von netzopfer (24.06.2008 um 21:04 Uhr). |
#15
| |||
| |||
Nein Ach ich weiss ja auch nicht |
#16
| ||||
| ||||
Hier der Code abschnitt ausm YaBB SE 1.4 (glaub das war die version). Hatte diese version noch irgend wo auf der platte und hab schnell nachgeschaut: PHP-Code: Außerdem siehts aus als könnte man beides ; und & verwenden |
#17
| ||||
| ||||
Zitat:
P.S.: Die datei hieß querystring.php |
Stichworte |
- |