CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
20.10.2004, 15:48:19
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 25
|
|
Brauch Hilfe bei ner kleinen Sache
So ein Anfänger braucht mal wieder Hilfe^^
Ich hab folgendes zusammenbekommen.
Auf meine Seite gibt es viele Downloads und ich will demnächst was einbauen, so das jeden User nur eine begrenzte Anzahl an Downlaods pro Tag zur verfügung stehen.
Hier erstmal das Script was ich bis jetzt zusammen bekommen habe:
PHP-Code:
if (isset($id)) {
$sql = "SELECT * FROM users WHERE ID='$pid'";
$sql = mysql_query($sql,$conn);
$row = mysql_fetch_assoc($sql);
$klicks = $row['dlcount'];
$neu_klicks = $klicks + 1;
$update = "UPDATE users SET dlcount = $neu_klicks WHERE ID='$pid'";
$update = mysql_query($update,$conn);
}
Klickt man aufn Link steigt der dlcount prima um 1 zähler an.
Nur jetzt folgendes problem.
Ich hab noch eine extra spalte die den Namen dlcountmax trägt. Dort steht halt die zahl der Downloads drinne die einem User zu verfügung steht.
Ich mein Script steht jetzt nur das halt der dlcount jedesmal um 1 Zähler steigen soll. Wie mach ich jetzt das er vorher noch kontrolliert ob der vorhandene dlcount nicht die zahl in dlcountmax überschreitet und wenn das maximum erreicht ist ne art fehlermeldung rausgibt?
|
20.10.2004, 15:55:01
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Versuch's mal so:
PHP-Code:
if (isset($id)) {
$result = mysql_query("UPDATE users
SET dlcount = $neu_klicks + 1
WHERE dlcountmax <= dlcount + 1 AND
ID='$pid'", $conn) or die(mysql_error($conn)); // " or die(mysql_error($conn))" nach der Testphase entfernen!!
if (mysql_affected_rows($conn)>0) { // oder $result?
echo 'Du darfst©!';
}
else {
echo 'Trafficabnutzer, Du!';
}
}
|
20.10.2004, 16:27:36
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 25
|
|
Erstmal danke für die fixe antwort... nur komm ich damit irgendwie überhaupt net klar.
ich glaub ich poste dochmal alles was in der datei zu finden ist:
PHP-Code:
<?php
include("mysql.php");
if (isset($id)) {
$sql = "SELECT * FROM users WHERE ID='$pid'";
$sql = mysql_query($sql,$conn);
$row = mysql_fetch_assoc($sql);
$klicks = $row['dlcount'];
$neu_klicks = $klicks + 1;
$update = "UPDATE users SET dlcount = $neu_klicks WHERE ID='$pid'";
$update = mysql_query($update,$conn);
}
$string = base64_decode($_GET[id]);
$name = explode("//", $string);
$name2 = $name[1];
$name3 = str_replace(" ", "_", $name2);
function download($string, $file) {
$size = filesize($string);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$file);
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Expires: 0");
readfile($string);
}
download($string, $name3);
?>
Die varibla $conn findet man in der mysql.php. Und das findet man unter $conn
PHP-Code:
$conn=mysql_connect($db_host,$db_user,$db_passwort);
Ich hoffe ich mach jetzt nicht zuviel umstände :/
|
20.10.2004, 16:41:59
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Zitat:
Original geschrieben von KiKoN
nur komm ich damit irgendwie überhaupt net klar.
|
Das hilft uns überhaupt nicht weiter. Information wären da schon praktischer.
PHP-Code:
<?php
// zu MySQL verbinden
include('mysql.php');
// Funktion download() deklarieren
function download($string, $file) {
$size = filesize($string);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$file);
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Expires: 0");
readfile($string);
}
// wenn $_GET['id'] gesetzt ist, dann pruefen, ob Download erlaubt
if (isset($_GET['id'])) {
$result = mysql_query("UPDATE users
SET dlcount = $neu_klicks + 1
WHERE dlcountmax <= dlcount + 1 AND
ID='$pid'", $conn) or die(mysql_error($conn)); // " or die(mysql_error($conn))" nach der Testphase entfernen!!
if (mysql_affected_rows($conn)>0) { // oder $result?
$string = base64_decode($_GET['id']);
$name = explode('//', $string);
$name2 = $name[1];
$name3 = str_replace(' ', '_', $name2);
download($string, $name3);
}
else {
echo 'Trafficabnutzer, Du!';
}
}
?>
|
20.10.2004, 17:37:31
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 25
|
|
Also nochmal danke^^
Aber das klappt immer nicht so alles :/
Ich hab die zeilen
PHP-Code:
$result = mysql_query("UPDATE users
SET dlcount = $neu_klicks + 1
WHERE dlcountmax <= dlcount + 1 AND
ID='$pid'", $conn) or die(mysql_error($conn)); // " or die(mysql_error($conn))" nach der Testphase entfernen!!
in folgendes geändert
PHP-Code:
$result = "UPDATE users
SET dlcount = $neu_klicks + 1
WHERE dlcountmax <= dlcount + 1 AND
ID='$pid'"; // " or die(mysql_error($conn))" nach der Testphase entfernen!!
$result = mysql_query($result,$conn);
Weil zuvor immer eine Fehlermeldung erschienen ist. Jetzt ist die weg, aber folges Problem gibt es jetzt:
Der Download startet nicht mehr und der zähler in der Datenbank unter dlcount wird auch nicht mehr um ein Punkt erhöht.
Das einziege was erscheint ist der Satz Trafficabnutzer, Du!
|
20.10.2004, 17:47:08
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
PHP-Code:
<?php
$sql = "UPDATE
users
SET
dlcount = dlcount + 1
WHERE
dlcountmax > dlcount AND
ID = '$pid'";
$result = mysql_query($sql, $conn) or die(mysql_error($conn));
?>
|
20.10.2004, 18:04:01
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 25
|
|
danke es funktioniert :)
Endlich mal ein Forum gefunden wo einem schnell geholfen wird :)
Vielen dank
|
21.10.2004, 08:05:52
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ups, Denkfehler von mich. :)
|
30.10.2004, 20:17:56
|
Anfänger
|
|
Registriert seit: Oct 2004
Beiträge: 25
|
|
So liebe Leute ich bins wieder^^
Ich hab das Script inzwischen ein wenig erweitert da ich ein paar andere Funktion für mein DL Script hinzugefügt habe.
Aber irgendwas stimmt schon wieder net :/
Erstmal der Code:
PHP-Code:
<?php
include("mysql.php");
session_start();
if(!$pid) { echo "Einloggen bitte!"; } else {
// Funktion download() deklarieren
function download($pfad, $file) {
$size = filesize($pfad);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$file);
header("Content-Length: ".$size);
header("Pragma: no-cache");
header("Expires: 0");
readfile($pfad);
}
// wenn $_GET['id'] gesetzt ist, dann pruefen, ob Download erlaubt
if (isset($_GET['id'])) {
$sql = "UPDATE
users
SET
dlcount = dlcount + 1
WHERE
dlcountmax > dlcount AND
ID = '$pid'";
$result = mysql_query($sql, $conn) or die(mysql_error($conn));
if (mysql_affected_rows($conn)>0) { // oder $result?
$query = mysql_query("SELECT * FROM downs WHERE ID = '$id'");
$result = mysql_num_rows($query);
$datei = mysql_result ($query,$i,"File");
$cat = mysql_result ($query,$i,"Cat");
$subcat = mysql_result ($query,$i,"Subcat");
$pfad = "../downs/$cat/$subcat//$datei"
$name = explode('//', $pfad);
$name2 = $name[1];
$name3 = str_replace(' ', '_', $name2);
download($pfad, $name3);
}
else {
echo 'Limit erreicht!';
}
}
}
?>
So un folgende fehlermeldung kommt immer:
Parse error: parse error, unexpected T_VARIABLE in /home/schulz/public_html/dl.php
in folgender Zeile:
PHP-Code:
$name = explode('//', $pfad);
Kann wer melfen?^^"
|
31.10.2004, 11:02:09
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
Hi,
schau dir mal die Zeile über der mit der Fehlermeldung an. Da fehlt das abschließende Semikolon ;-)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:55:13 Uhr.
|