hallo...
mir konnte bei meinem problem bisher niemand helfen.
ich hab mich durch etliche tutorials gegraben und ungefähr den code zusammengeschraubt, den ich brauche...
allerdings muß man den jetzt zu einem modul zusammenkriegen
(einfach mit dem dem file-insert tag hat nicht funktioniert)
was ich brauche ist eigentlich das gleiche, wie das content element "DOWNLOAD", welches in TL schon integriert ist. allerdings wird das durch einen freischaltcode und einen counter erweitert.
zuerst mal hier der PHP-code ohne typolight:
PHP-Code:
<?php
session_start();
//$benutzername = $_POST['benutzername'];
$kennwort = $_POST['kennwort'];
//echo "Test: benutzername: $benutzername <br />";
//echo "Test: kennwort: $kennwort <br />";
if ( "1234" == $kennwort )
{
$_SESSION['eingeloggt'] = TRUE;
}
if ( $_SESSION['eingeloggt'] == TRUE )
{
echo "<p>Sie sind eingeloggt</p>";
echo "<p><a href=\"download.php\">download</a></p>";
}
if ( $_SESSION['eingeloggt'] != TRUE )
{
?>
<form action="downloadcode.php" method="post">
Kennwort:<br />
<input type="password" name="kennwort" />
<br />
<br />
<input type="submit" value="einloggen" />
</form>
<?php
}
?>
wie man unschwer erkennen kann, sieht es aus, wie ein login-modul. ist ja eigentlich auch das gleiche. allerdings wird der benutzername weggelassen.
wenn diese datei abgehandelt wird, startet eine zweite php-datei den erzwungenen download (wobei ich mich schon gefragt habe, ob man das nicht auch in einer datei unterbringen kann)
PHP-Code:
<?php
session_start();
if ( $_SESSION['eingeloggt'] == TRUE )
{
$file = 'test.jpg';
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($filename));
header('Content-Disposition: attachment; filename=' . basename($file));
readfile($file);
session_destroy();
}
if ( $_SESSION['eingeloggt'] != TRUE )
{
?>
<form action="downloadcode.php" method="post">
Kennwort:<br />
<input type="password" name="kennwort" />
<br />
<br />
<input type="submit" value="einloggen" />
</form>
<?php
}
?>
soooooooo...
mit diesen zwei PHP-dateien bekomme ich genau das, was ich brauche.
ich möchte aber nun ein conten element für typolight daraus machen.
ich habe mir da etliche beispiele angesehen und tutorials und und und und...
ich habe die dateistruktur erstellt. die config.php und die database.sql hab ich auch erstellt.
ich bin schon soweit, dass ich in typolight mein modul als contentelement einfügen kann.
dort kann ich meine daten eingeben und die zu downloadende datei auswählen.
somit müssten dann diese daten auch in meine datenbank geschrieben werden.
nun komme ich aber nicht weiter.
wie kann ich jetzt den code da oben in meine TL-modul-datei einfügen, damit ich im frontend diese daten abgreifen kann?
das formular wird sicher in die template-datei geschrieben.
aber dieses formular muß eben den im frontend eingegebenen code mit einem code aus der datenbank abgleichen und dann entweder den download anzeigen oder eine fehlermeldung.
außerdem soll der counter -1 gerechnet werden und wenn er bei null ist, soll ebenfalls eine fehlermeldung erscheinen.
das wird sicher durch if/else passieren. aber wie genau muß das aussehen und an welche stelle kommt was?
andi
Lesezeichen