Gå til innhold

Funker lokalt, men ikke på server?


Anbefalte innlegg

Heisann

 

Kan noen fortelle meg hvorfor dette ikke funker når jeg laster det opp på serveren..?

Når jeg kjører det på apache/php på pcen her viser dette skriptet et bilde i /bilder-mappa og legger til 1 på rett linje i tellefila.

Når det kjører på serveren vises ingenting, bare en fullstendig tom (hvit) side.

 

Klikk for å se/fjerne innholdet nedenfor
<?php
/*
visbilde.php
teller klikk på bildene
lagrer i fil - antallklikk.txt
*/

$fil    	= "antallklikk.txt";
$sti    = "bilder/";
$bildenavn    = substr($_SERVER['QUERY_STRING'], strrpos($_SERVER['QUERY_STRING'], '/'), strlen($_SERVER['QUERY_STRING']));
stripslashes($bildenavn);


// sjekk om bildenavn er fylt ut, ellers gå tilbake
if(!isset($bildenavn) || !@file_exists($sti.$bildenavn)) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit(0);
}
else {
//skriv i tellefila
try {
 $lagny  = true; // lager en ny linje i tellefila hvis det er et nytt bilde
 $handle = @fopen($fil, "rb");// or throw new Exception("Filfeil");
 $data   = @fread($handle, @filesize($fil));
 $linjer = explode("\r\n", $data);
 for($i=0;$i<count($linjer);$i++) {
 	$navnfrafil = split("=", $linjer[$i], 2);
 	if(!$navnfrafil || empty($navnfrafil)) {
   throw new Exception("Lesefeil");
 	}

 	if(strcasecmp($navnfrafil[0], $bildenavn) == 0) {
   $nyttantall = (int)$navnfrafil[1]+1;
   $linjer[$i]  = $navnfrafil[0]."=".$nyttantall;
   $lagny  	= false;
 	}
 }

 @fclose($handle); //lukker etter lesing
 $handle = @fopen($fil, "wb"); // åpner for skriving
 @fwrite($handle, implode("\r\n", $linjer));
 if($lagny) {
 	@fwrite($handle, $bildenavn."=1\r\n");
 }
 @fclose($handle);
}
catch(Exception $ex) {
 die("Fatal feil!");
}
//skriv ut bildet
echo "<html>\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<head>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"stil.css\">\n";
echo '<title>'.$bildenavn.'</title></head><body><img src="'.$sti.$bildenavn.'" /></body></html>';
 exit(0);
}
?>

Lenke til kommentar
Videoannonse
Annonse
Det eier jo å sette en @ forran hver eneste kommando.. slik at man slipper alle de "stygge feilmeldingene" som kan hjelpe en med å finne feilen.

8523072[/snapback]

Hehe.

Har prøvd uten også, men satt dem på igjen da det ikke kom noen feilmeldinger uten heller. ;)

Lenke til kommentar
Kanskje du kan poste feilmeldingene? De kommer for å hjelpe :)

8525191[/snapback]

Problemet var at serveren ikke skrev ut feilmeldingene ;)

Men jeg fjernet try-catch'en og så var det en } for mye tror jeg.

 

Funker nå hvertfall. Kan poste den vis noen vil.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...