 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 30.05.2007, 23:59 Titel: [PHP] Ärger mit redirect Script |
|
|
Hi,
ich beschäftige mich mit zur Zeit mit PHP, und wollte mir ein sript schreiben, wo man 1) die aufzurufende Seite (?redirect=) 2) die Pyroactive Counter nummer angibt (&counter=)
Aber irgendwie kommt da nur murcks raus...
Code: |
<php?
if (isset($_URL['redirect'] and isset($_URL['counter']) {
$Kopf = "<meta http-equiv=\"refresh\" content=\"5; URL../files\".$_URL['redirect'].">"
echo"<html>",
"<head>",
"<meta http-equiv=\"Content-Language\" content=\"de\">",
"<meta http-equiv=\"Content-Type\" content=\"text/html; charsetwindows-1252\">",
echo $Kopf,
echo "<title>".$_URL['redirect']."Downloading...</title>",
"</head>",
echo"<p><!--webbot bot=\"HTMLMarkup\" startspan --><TABLE BORDER \"0\" CELLSPACING \"0\" CELLPADDING \"0\">",
"<TR>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><img src \"http://www.pyroactive.de/counter/logo.php3?counter".$_URL['counter']."\" border \"0\" alt \"PyroActive Webdesign Community\"></a> </TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit0\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit1\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit2\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit3\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit4\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit5\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"</TR>",
"</TABLE> ",
"<!--webbot bot=\"HTMLMarkup\" endspan -->",
echo" </p>",
"<p>Falls der Download nicht automatisch starten sollte, klicken sie <a href=\"".$_URL['redirect']."\"> hier</a></p>",
"</body>",
"</html>",
}
else {
echo "ERROR! Keine Variable übergeben!"
}
?>
|
PS: Jaja, ich bin halt noob  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.05.2007, 00:56 Titel: |
|
|
Was kommt denn raus? Stell doch mal den erzeugten HTML-Quellcode ein (oder einen Link zu der "vermurksten" Seite). _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 31.05.2007, 10:05 Titel: |
|
|
Hallo,
da du deine Homepage bei Funpic hostest, kannst du doch auch gleich MySQL statt eines Counters eines Drittanbieters verwenden. Funpic bietet doch glaube ich MySQL an, oder?
Code: | // MySQL Verbindung herstellen...
if (!isset($_GET['dlname'])) die('Keine Datei angegeben.');
$dlname = $_GET['dlname'];
if (stripos($dlname,"://")) die('Fremdadresse angegeben...');
// ^ Besser mit Regular Expression alle Zeichen außer A-Z,a-z,0-9,.,_,- entfernen lassen
$dlname = mysql_real_escape_string($dlname); //<-Wichtig!
$query = "UPDATE download_log SET counter = counter + 1 WHERE dlname='".$dlname."'";
$res = mysql_query($query);
// eventuell abfragen, ob's geklappt hat.
mysql_close();
header('Location: http://meinehomepage.xy/files/'.$dlname); |
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.05.2007, 11:21 Titel: |
|
|
Wenn kein MySQL zur Verfügung steht, lässt sich ein Counter auch über eine Textdatei regeln, wenn auch nicht so elegant wie mit Datenbank. Das würde ich aber nur machen, wenn nicht all zu viele Counter gleichzeitig gezählt werden sollen, sonst gibt es Performance-Schwierigkeiten. Die Speicherdatei sollte außerdem einen kryptischen Namen haben, damit keiner von außen den Counterstand verändert.
Aber wenn du eine Datenbank hast, mache es lieber damit. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.05.2007, 13:09 Titel: |
|
|
also server sind ja eigentlich normalerweise so konfiguriert, dass angelegte dateien standardmäßig nur vom Besitzer verändert werden dürfen
EDIT :kommt dein murks ganz zufällig von
das muss so heißen;
_________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 31.05.2007, 15:08 Titel: |
|
|
@Jojo: Ahja, jetzt kommt kein echo "","","","" usw. mehr, aber eine Fehlermeldung die ich nicht ganz verstehe:
Code: |
Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ',' or ')' in /usr/export/www/vhosts/funnetwork/hosting/csderats/HP/download.php on line 3 |
Zeile 3:
Code: | if (isset($_URL['redirect'] and isset($_URL['counter']) { |
@Sebastian: Sehr nett, dass du den Code für MySQl postest, dass werde ich dann wohl auch verwenden, wenn ich im tut so weit bin
@nemored (1):
Es wurde gar kein HTML generiert, sondern es wurden die echos ausgegeben (FF hat dann echo "","","","","" angezeigt)
@nemored (2):
Es gibt schon eine solche Datei (http://csderats.cs.funpic.de/HP/counter.txt), aber da steht die Zuordnung Seite => Counternummer drin (kann ich mir nicht merken ) _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
A.K.

Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 31.05.2007, 16:32 Titel: |
|
|
Zitat: |
Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ',' or ')' in /usr/export/www/vhosts/funnetwork/hosting/csderats/HP/download.php on line 3
if (isset($_URL['redirect'] and isset($_URL['counter']) { |
Da fehlen ein paar Klammern. (3 mal auf, 1 mal zu )
So sollte das gehen:
Code: |
if (isset($_URL['redirect']) and isset($_URL['counter'])) {
|
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 31.05.2007, 16:45 Titel: |
|
|
Danke A.K. ich vermute mal das das typische Anfängerfehler sind
das ist gefixt, und ich bin jetzt schon bei Kapitel 14 allerdings habe ich dann schon 25 gelesen
aktueller code:
Code: |
<?php
if ((true == isset($_URL['redirect']) AND (true == isset($_URL['counter'])) {
$file = $_URL['redirect']
$num = $_URL['counter']
echo "<html>",
"<head>",
"<meta http-equiv=\"Content-Language\" content=\"de\">",
"<meta http-equiv=\"Content-Type\" content=\"text/html; charsetwindows-1252\">",
echo "<meta http-equiv=\"refresh\" content=\"5; URL../files//".$file.">",
echo "<title>".$file."Downloading...</title>",
"</head>",
echo "<p><!--webbot bot=\"HTMLMarkup\" startspan --><TABLE BORDER \"0\" CELLSPACING \"0\" CELLPADDING \"0\">",
"<TR>",
// "<TD><a href \"http://www.pyroactive.de\" target \"_new\"><img src \"http://www.pyroactive.de/counter/logo.php3?counter".$num."\" border \"0\" alt \"PyroActive Webdesign Community\"></a> </TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit0\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit1\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit2\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit3\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit4\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$num."&digit5\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"</TR>",
"</TABLE> ",
"<!--webbot bot=\"HTMLMarkup\" endspan -->",
echo " </p>",
"<p>Falls der Download nicht automatisch starten sollte, klicken sie <a href=\"".$file."\"> hier</a></p>",
"</body>",
"</html>",
}
else {
echo "ERROR! Keine Variable übergeben!"
}
?>
|
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.05.2007, 17:33 Titel: |
|
|
Jojo hat Folgendes geschrieben: | also server sind ja eigentlich normalerweise so konfiguriert, dass angelegte dateien standardmäßig nur vom Besitzer verändert werden dürfen  |
Das Problem ist aber, dass diese Datei für alle freigegeben werden muss, weil sie ansonsten die Counter-Zugriffe nicht speichern kann.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 31.05.2007, 18:28 Titel: |
|
|
Zitat: | also server sind ja eigentlich normalerweise so konfiguriert, dass angelegte dateien standardmäßig nur vom Besitzer verändert werden dürfen |
Jo, ich würd die entsprechenden Text-Datenbankdateien vielleicht noch in ein Unterverzeichnis packen und dem normalen Surfer mittels .htaccess den Zugriff darauf verweigern, damit auch niemand sonst deine Counterstände auslesen kann.
nemored hat Folgendes geschrieben: | Das Problem ist aber, dass diese Datei für alle freigegeben werden muss, weil sie ansonsten die Counter-Zugriffe nicht speichern kann. |
Wie kommst du darauf, dass man einfach Dateien auf fremden Webservern verändern kann, nur weil ein php-Script über das lokale Dateisystem darauf zugreift? Damit ein php-Script eine lokale Datei bearbeiten kann, muss kein Surfer irgendwelche Bearbeitungsrechte oder gar FTP-Zugangsdaten haben.  _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.05.2007, 18:36 Titel: |
|
|
In Ordnung, Denkfehler. Die Sache ist die, dass ich normalerweise auf Dateien zugreifen möchte, die nicht vom Skript selbst angelegt wurden. In diesem Fall ist das Skript dann nicht der "Besitzer". _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.05.2007, 19:06 Titel: |
|
|
der besitzer ist der hoempage-besitzer! das heißt, wenn du auf deinem BS einen benutzer "maxmueller" hast, dieser den apache laufen lässt, ein php-skript hat, dann hat das phpskript soviel ich weiß auch den benutzer "maxmueller"!
@csderats: ich empfehle dir wärmstens PSPad, ein wirklich genialer texteditor für HTMl, CSS, PHP, Batch, INI und viele viele mehr Der kann auch paarige klammern anzeigen und zeigen, wo noch klammern fehlen. wenn du ne klammer aufmachst, macht er sie auch automatisch wieder zu (kann man deaktivieren, ist aber echt praktisch!!) _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 31.05.2007, 19:56 Titel: |
|
|
@Jojo: Hatte das bis jetzt mit notepad gemacht danke für den tipp
/€dit:
Ahh, es ist dank der Hilfe von euch allen vollbracht; keine parsing-errors mehr naja, trotzdem führt nur den teil hinterm else aus
Code: | <?php
if (isset($_URL['redirect']) AND isset($_URL['counter'])) {
echo "<html>",
"<head>",
"<meta http-equiv=\"Content-Language\" content=\"de\">",
"<meta http-equiv=\"Content-Type\" content=\"text/html; charsetwindows-1252\">",
"<meta http-equiv=\"refresh\" content=\"5; URL../files//".$_URL['redirect'].">",
"<title>".$_URL['redirect']."Downloading...</title>",
"</head>";
echo "<p><!--webbot bot=\"HTMLMarkup\" startspan --><TABLE BORDER \"0\" CELLSPACING \"0\" CELLPADDING \"0\">",
"<TR>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit0\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit1\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit2\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit3\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit4\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"<TD><a href \"http://www.pyroactive.de\" target \"_new\"><IMG SRC \"http://www.pyroactive.de/counter/counter.php3?counter".$_URL['counter']."&digit5\" border \"0\" alt \"PyroActive Webdesign Community\"></a></TD>",
"</TR>",
"</TABLE> ",
"<!--webbot bot=\"HTMLMarkup\" endspan -->",
" </p>",
"<p>Falls der Download nicht automatisch starten sollte, klicken sie <a href=/files/".$_URL['redirect']."\"> hier</a></p>",
"</body>",
"</html>";
}
else {
echo "ERROR! Keine Variable übergeben!";
}
?>
|
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.05.2007, 20:31 Titel: |
|
|
kein wunder, das heißt in PHP auch nicht "AND", sondern &&
sieht so aus, als ob du dich erstmal durch die äußerst (!) hilfreiche (!) php hilfe durcharbeiten solltest
übrigens: es ist einfacher echo 'text' statt echo "text" zu verwenden, wenn du in deinem text keine variablen benutzt und darin anführungszeichen auftauchen, denn diese musst du dann nicht mühevoll maskieren
link zur hifle:
komfortable CHM-Variante (nur für windows)
alle downloads _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 31.05.2007, 20:48 Titel: |
|
|
scheiße... ich habe nichts verändert, und es kommt jetzt der error:
Code: |
Parse error: syntax error, unexpected '{' in /usr/export/www/vhosts/funnetwork/hosting/csderats/HP/download.php on line 3 |
_________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.05.2007, 20:49 Titel: |
|
|
und ich benutz eigentlich nie AND oder OR
nächster versuch: ich kenne keine vordefinierte variable namens $_URL - meinst du vielleicht $_REQUEST?
edit: dass es "pltötzlich" kommt, geht nicht. poste mal den source nochma. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.

Zuletzt bearbeitet von Jojo am 31.05.2007, 20:51, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|