Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Frage zu PHP/HTML (https://www.delphipraxis.net/113582-frage-zu-php-html.html)

Tommy1988 10. Mai 2008 14:47


Frage zu PHP/HTML
 
Also, mit PHP und HTML habe ich eigentlich NICHTs zu tun, deswegen, denke ich, wird mein Problem für euch lachhaft sein..

Über folgenden Code lasse ich Daten aus der SQL-DB anzeigen:

Code:
<?php
$cat = $_GET[cat];
$abfrage = "SELECT * FROM downloads WHERE Kategorie = '$cat'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo '
<table class="tablesolid" width="100%" border="0">
<tr>
 <td>[b]Betriebssysteme:[/b]</td>
 <td>'.$row->Systeme.'</td>
</tr>
<tr>
 <td>[b]Version:[/b]</td>
 <td>'.$row->Version.'</td>                              
</tr>
<!--<tr>
 <td>[b]Download[/b]</td>
 <td>[url="'.$row->Link.'"]Link[/url]
</td>
</tr>-->
<tr>
 <td>[b]Link[/b]</td>
 <td>
<1-- Ab hier das Problem -->
 [url="./?p=dloads&cat='.$_GET[cat].'&file='.$row->id.'"]Link[/url]</td>
 <td align="right" width=20%">
 </td>
</tr>
</table>


<div style="margin-bottom: 1px;"></div>';
$file = $_GET['file'];
if (isset($file)) // Leere sql-Abfrage abfangen (HÄSSLICHER Fehler sonst!)
{
$id = $_GET['file'];
$result = mysql_query("SELECT Link FROM downloads WHERE id = $id");
$filename = mysql_result($result, 0); // Dateiname aus der DB holen
echo '<meta http-equiv="refresh" content="1; URL='.$filename.'">';
}
}
?>
Wenn ich mit der Maus über den Link fahre bekomme ich folgendes angezeigt:
Code:
http://localhost/?p=dloads&cat=edit&file=1
Weiter unten im Code frage ich die id der variablen "file" ab, suche via WHERE in der DB
nach dem Link der dort hinterlegt ist und navigiere ihn an:
Code:
<meta http-equiv="refresh" content="1; URL='.$filename.'">'
Das Problem:
Man sollte den Link aus der DB nicht sehen können, ich bekomme es aber nicht anders hin :(

mkinzler 10. Mai 2008 14:51

Re: Frage zu PHP/HTML
 
Öffne die Datei und übertrage sie als Stream an den Browser.

Tommy1988 10. Mai 2008 15:07

Re: Frage zu PHP/HTML
 
Nunja, wie gesagt, normalerweise habe ich nichts mit den Sprache zu schaffen, daher weis ich absolut nicht was du meinst.

Edit: Das mit den Streams könnte u.U. nicht funktionieren, da die maximale Größe von Server zu Server unterschiedlich ist.

mkinzler 10. Mai 2008 15:28

Re: Frage zu PHP/HTML
 
Code:
$fh = fopen ( $filename "rb");
$datei .= fread( $fh, filesize( $filename));
fclose( $fh);
echo $datei;

Tommy1988 10. Mai 2008 17:45

Re: Frage zu PHP/HTML
 
Soweit verstehe ich diesen Code schon, nur leider funktioniert es nicht :(

mkinzler 10. Mai 2008 17:52

Re: Frage zu PHP/HTML
 
Was heisst geht nicht?

himitsu 10. Mai 2008 18:01

Re: Frage zu PHP/HTML
 
Einfach wie bei einem Downloadscript:
http://www.delphipraxis.net/internal...&highlight=php

Du mußt aber aufpassen, daß es sonst keine weiteren Ausgaben gibt ... darf also kein HTML-Code vom Script gesendet werden.

z.B.
Code:
// $filename = {Wert aus Datenbank}

@header('Content-Type: image/gif', true);
@header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;

Tommy1988 10. Mai 2008 18:23

Re: Frage zu PHP/HTML
 
Zum Link: Keine Ahnung wie ich das benutzen soll...

himitsu 12. Mai 2008 19:58

Re: Frage zu PHP/HTML
 
etwa so (ungetestet)

$filename muß der serverinterne Pfad zur Datei sein


Code:
<?php
  $cat = $_GET[cat];
  $file = $_GET['file'];
  $abfrage = "SELECT * FROM downloads WHERE Kategorie = '$cat'";
  $ergebnis = mysql_query($abfrage);

  if (isset($file))
  {
    $result = mysql_query("SELECT Link FROM downloads WHERE id = $file");
    $filename = mysql_result($result, 0); // Dateiname aus der DB holen

    //@header('Content-Type: image/gif', true);
    @header('Content-Length: ' . filesize($filename));
    readfile($filename);
    exit;
  }

  while($row = mysql_fetch_object($ergebnis))
  {
    echo '
      <table class="tablesolid" width="100%" border="0">
      <tr>
      <td>[b]Betriebssysteme:[/b]</td>
      <td>'.$row->Systeme.'</td>
      </tr>
      <tr>
      <td>[b]Version:[/b]</td>
      <td>'.$row->Version.'</td>                              
      </tr>
      <!--<tr>
      <td>[b]Download[/b]</td>
      <td>[url="'.$row->Link.'"]Link[/url]
      </td>
      </tr>-->
      <tr>
      <td>[b]Link[/b]</td>
      <td>
      <1-- Ab hier das Problem -->
      [url="./?p=dloads&cat='.$_GET[cat].'&file='.$row->id.'"]Link[/url]</td>
      <td align="right" width=20%">
      </td>
      </tr>
      </table>


      <div style="margin-bottom: 1px;"></div>';
  }
?>


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz