script werkt niet vanuit folder
Hierin staan 5 vakjes waarin je 5 verschillende files kan downloaden.
Elke download staat voor een andere teller.
In mijn php pagina waar de download grafisch staat weergegeven staat deze code in een <div>, als je daarop klikt gaat je naar teller1.php die teller1.txt wijzigt:
[html]<div class="boxDiv"><a href="downloads/teller1.php"><img src="images/box.png" alt="box" /></a>
<div class="phpBox">
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$hit_count = @file_get_contents('http://voorbeeld.com/downloads/teller1.txt');
echo $hit_count;
?>
$hit_count = @file_get_contents('http://voorbeeld.com/downloads/teller1.txt');
echo $hit_count;
?>
</div>
</div>[/html]
Mijn teller1.php file:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$url = 'http://voorbeeld.com/downloads/teller1.txt';
$hit_count = @file_get_contents($url);
$hit_count++;
@file_put_contents($url);
header ('Location: http://voorbeeld.com/downloads/inhoud.zip');
?>
$url = 'http://voorbeeld.com/downloads/teller1.txt';
$hit_count = @file_get_contents($url);
$hit_count++;
@file_put_contents($url);
header ('Location: http://voorbeeld.com/downloads/inhoud.zip');
?>
Wat is mijn vraag?
Dit script, zonder /download/ folder werkt prima.
Dus als ik het voorbeeld script hierboven aanpas en ze in de root zet:
voorbeeld.com/teller.php
voorbeeld.com/teller.txt
voorbeeld.com/inhoud.zip
Dan werkt het.
Maar ik wil dus dit script laten werken met alle downloads en script in
de downloads/ folder. En dan werkt het niet meer.
Ik heb geprobeerd chmod van teller1.txt op 0777 te zetten in de downloads folder.
Maar dat werkt ook niet.
Misschien begrijp ik de functie van chmod ook niet, want
de teller1.txt in root werkt prima onder chmod 0644..
Hoop dat ik niet te ingewikkeld ben..
Jan
Gewijzigd op 18/01/2011 16:03:46 door Frank Jansse
error, no file found etc?
Waarom gebruik je een externe url?
TJVB tvb op 18/01/2011 16:16:07:
errors krijgt die niet omdat die onderdrukt worden met die @
Waarom gebruik je een externe url?
Waarom gebruik je een externe url?
Omdat ik niet beter weet dan dat de @ erbij moet.
Ik heb ze geprobeerd weg te halen, maar ik krijg allemaal foutmeldingen.
Ik zal het juiste adres invoegen voor de duidelijkheid:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$url = 'http://javildesign.com/downloads/001_PSD.txt';
$hit_count = file_get_contents($url);
$hit_count++;
file_put_contents($url);
header('Location: http://javildesign.com/downloads/001_PSD.zip');
?>
$url = 'http://javildesign.com/downloads/001_PSD.txt';
$hit_count = file_get_contents($url);
$hit_count++;
file_put_contents($url);
header('Location: http://javildesign.com/downloads/001_PSD.zip');
?>
En de foutmelding op het moment van schrijven:
Warning: file_put_contents() expects at least 2 parameters, 1 given in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /public/sites/www.javildesign.com/downloads/001_PSD.php:7) in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 9
Wat dit zeg is dat php script 2 parameters verwacht en er maar 1 gegeven word..
Vanaf daar zie ik het niet meer, en dan begrijp ik niet wat ik nou fout doe?
Zeg me ook alsjeblieft als ik een andere manier moet gebruiken.
SQL databases is natuurlijk het beste, maar heb daar helemaal geen ervaringen mee..
Gewijzigd op 18/01/2011 16:51:39 door Frank Jansse
even naar http://php.net/file_put_contents
wat staat daar?
int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
file_put_contents($url, $hit_count);
Of heb ik dat mis? Het werkt niet..
Wat ik zo raar vind is dat het wel werkt in de root, en nu ik
er een folder tussen zet in het script dat het niet werkt.
Ik probeer te begrijpen wat php doet..
Maar ik zie het niet.
Gewijzigd op 18/01/2011 17:51:03 door Frank Jansse
Jan G op 18/01/2011 17:50:02:
file_put_contents($url, $hit_count);
Of heb ik dat mis? Het werkt niet..
file_put_contents($url, $hit_count);
Of heb ik dat mis? Het werkt niet..
Klopt.
Wat werkt er niet? Error?
Warning: file_put_contents(http://javildesign.com/downloads/001_PSD.txt) [function.file-put-contents]: failed to open stream: HTTP wrapper does not support writeable connections in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /public/sites/www.javildesign.com/downloads/001_PSD.php:7) in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 9
Er staat natuurlijk zat info in, maar ik zie het niet..
Oftewel: Je mag niet schrijven naar een url.
Ik heb de chmod van de tekst file naar 0777 gezet, helaas werkte dat ook niet.
Ik zal even onderzoeken hoe dat nou kan..
Kan iemand mij misschien uitleggen waarom het wel vanaf de root werkt?
Ik zal mij ondertussen meer verdiepen in php.net om er achter te komen wat ik nu fout doe..
Toevoeging op 18/01/2011 19:41:06:
ik blijf toch problemen houden met het script.
Als het vanaf de root wel werkt,
file_put_contents($url);
Dan begrijp ik op het moment niet hoe ik nu vanuit
001_PSD.php de 001_PSD.txt kan beschrijven.
Warning: file_put_contents() expects at least 2 parameters, 1 given in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 7
Warning: Cannot modify header information - headers already sent by (output started at /public/sites/www.javildesign.com/downloads/001_PSD.php:7) in /public/sites/www.javildesign.com/downloads/001_PSD.php on line 9
Het heeft 2 parameters nodig, maar in de root heeft het dat niet.
Toevoeging op 18/01/2011 20:27:11:
Ik heb het gevonden..
Ik moest relative pad gebruik. Ik dacht de heletijd vanuit het absolute pad.
$url = '001_PSD.txt';
$hit_count = file_get_contents($url);
/*echo $hit_count;*/
$hit_count++;
file_put_contents($url, $hit_count);
Bedankt voor de hulp.