ilch Forum » Allgemein » HTML, PHP, SQL,... » Download Link editieren

Geschlossen
  1. #1
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Heyho,
    probier seit gestern schon wieder bisschen rum.

    Heute wollt ich den Download link von

    ?downloads-down-{id}

    abändern, sodass der alte link auch NICHT mehr aktivierbar ist per browsereingabe.

    meinetwegen als beispiel mal {name}

    find nur nicht die stelle zum editieren.
    wenn mir die einer zeigt/schreibt kann ich weiter machen^^


    Hab noch Standard Download, und in Zeile 209 kommt die entsprechende query.

    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.680
    Beitragswertungen
    1218 Beitragspunkte
    Ich hoffe ich habe dich richtig verstanden.

    Download-Url prüfen, ab
    contents/downloads.php
    266
    case 'down' :


    Der Downloadlink wird folgend definiert
    templates/downloads_show.htm
    51
    <a href="index.php?downloads-down-{id}">{_lang_download}</a>

    und die SQL-Abfrage für die ID,
    contents/downloads.php
    209
    prefix_downloads.id

    Übergabe an das Template per
    contents/downloads.php
    261
    $tpl->set_ar_out($row,0);



    Zuletzt modifiziert von Lord|Schirmer am 02.01.2012 - 18:02:17
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Richtig, das krieg ich mitlerweile auch zusamm geleihert^^

    nur hät ich gern zum beispiel:

    1
    <a href="index.php?downloads-down-{name}">{_lang_download}</a>


    und das

    1
    <a href="index.php?downloads-down-{id}">{_lang_download}</a>


    NICHT mehr aufrufbar ist.

    Find nur die nicht die Stelle, wo das definiert wird.

    Weil ich kann Dateien ja auch ohne <a href> downloaden via Direkt-Link-Eingabe.

    Und das soll komplett raus, weil ich n temp link crypt einbaun möchte.


    Zuletzt modifiziert von Forcey am 02.01.2012 - 19:39:48
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.680
    Beitragswertungen
    1218 Beitragspunkte
    Dann habe ich dich richtig verstanden! Jedem Upload wird ja eine ID per AUTO_INCREMENT zugewiesen und diese wird dann an genannter Stelle als Link abgefragt.

    Wenn Du Namen haben möchtest würde ich je nachdem eine Spalte hinzufügen.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Und wo findet dieses auto_increment statt?

    Beim Upload sagst du, dann wohl in der archiv.php ausm admin vermute ich zunge
    Mal die Datein dort durchwühlen.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.680
    Beitragswertungen
    1218 Beitragspunkte
    AUTO_INCREMENT bedeutet, dass automatisch der Wert des Feldes um Eins erhöht, ohne dass dieses extra in der INSERT-Query angegeben werden muss bzw. darf. Das passiert automatisch in der Datenbank ohne php Einfluss.

    Die Uploadoptionen sind in admin/archiv.php richtig.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Ah okay, dachte bei auto_increment kommt sonst was, aber das ist ja n SQL Basic lächeln

    Mich interessiert weiterhin, wo festgelegt wird, was bei diesen link passieren soll:

    domain/index.php?downloads-down-1




    Irgendwo muss ja auch ohne <a href="?downloads-down-{id}> festgehalten sein, was hinter den Link vesteckt ist!

    OKEEE..

    Doch downloads.php?^^

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $qry = db_query("SELECT d.`url`, IFNULL(c.`recht`,0) AS recht FROM `prefix_downloads` d LEFT JOIN `prefix_downcats` c ON c.`id` = d.`cat` WHERE d.`id` = $fid");
    $row = db_fetch_assoc($qry);
    $url = 'http://' . $_SERVER["HTTP_HOST"] . dirname($_SERVER["SCRIPT_NAME"]) . '/index.php?downloads';
    if ($qry !== false and has_right($row['recht'])) {
        db_query("UPDATE prefix_downloads SET downs = downs +1 WHERE id = " . $fid);
        if (file_exists($row['url'])) {
            header('Content-type: application/octet-stream');
            header('Content-Disposition: attachment; filename="' . basename($row['url']) . '"');
            readfile($row['url']);
            exit;
        } else {
            $url = iurlencode($row['url']);
        }
        $error = false;
    }
    header('Location: ' . $url);


    Nur hab von meisten der begriffe noch nichts gehört^^

    Bleiben wir mal bei dem Beispiel: NAMEN statt ID


    Zuletzt modifiziert von Forcey am 02.01.2012 - 22:59:17
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.680
    Beitragswertungen
    1218 Beitragspunkte
    Das Prinzip des Linkes:

    ?downloads-down-{id}

    downloads = $menu->get(0) = conents/downloads
    down = $menu->get(1) = hier wird über
    contents/downloads.php
    130
    switch ( $menu->get(1) )

    auf
    contents/downloads.php
    266
    case 'down':

    weitergeleitet und dann die ID per
    contents/downloads.php
    267
    intval($menu->get(2));

    ermittelt!


    Zuletzt modifiziert von Lord|Schirmer am 02.01.2012 - 23:01:21
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Soo, ich hab echt schon viiel mit Ilch gemacht, aber das sprengt heut den Rahmen^^

    intval hab ich mich eben belesen, und gibt schonmal keine buchstaben aus.

    was ich jedoch nich so ganz kapür is diese $menu->get geschichte, zumal das kein gängiger php befehl ist, sondern irgendeine in Ilch verwendete funktion/variable.

    1
    intval($menu->get(2));


    Damit wird die ID ermittelt die beim Direktaufruf eingegeben wird?
    Also muss ich das anpassen?
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.680
    Beitragswertungen
    1218 Beitragspunkte
    Entwickler Referenz ilchClan 1.1 I - 3. Menu

    Richtig -> zukünftig wird ja $menu->get(2) ein Wort/Name und keine Zahl mehr sein, somit ist kein intval(); mehr notwendig!

    ?downloads-down-banane -> $menu->get(2); = 'banane'

    ...hier könnte man noch das Format oder verbotene Zeichen prüfen usw.


    Zuletzt modifiziert von Lord|Schirmer am 02.01.2012 - 23:44:57
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Forcey Mitglied
    Registriert seit
    19.09.2010
    Beiträge
    411
    Beitragswertungen
    66 Beitragspunkte
    Uhm, jetzt macht alles auch viel mehr Sinn lächeln

    Ich danke dir, hat mir sehr geholfen^^

    Hab auch nichts anderes von dir erwartet (:
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten