webForumDet fria alternativet

Flytt av fil och ...

9 svar · 507 visningar · startad av tanten

tantenMedlem sedan nov. 20051 596 inlägg
#1

:( Ska ändra rubriken, när jag vet...
Den här filen ligger på one.com... och fungerar helt som det ska...
Nu har jag försökt flytta filen dit, där den ska vara, också på one.com och då vägrar den fungera.
Jag har samma properties på filerna på båda ställena. Jag har ställt om php till 5 på hennes domän också, så nu är vi lika där också.
Vad har jag glömt?
Detta är det största problemet, men jag behöver också hjälp med att få formuläret att acceptera att textfilen kan vara tom.
Nu säger den att den inte kan läsa filen och öppnar inte textarean.
Och hur ändrar jag i funktionen så den fungerar bara för PHP5?
Någon som kan se varför den inte fungerar på ena stället men inte den andra?

<?php
session_start(); // Alltid överst på sidan
error_reporting(E_ALL);
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
$filename = "annat.txt";
//Om man inte har PHP5, så aktiveras läs/skriv till filer-funktionen här
if (!function_exists('file_put_contents'))
{
function file_put_contents($n) {
  $f=@fopen($n,"r+");
  if (!$f) {
   return false;
  } else {
   fwrite($f);
   fclose($f);
   return true;
   }
 }
}
 
if (!function_exists('file_get_contents')) {
 function file_get_contents($file)
        {
                if (!is_readable($file))
                        return false;
                 $contents = '';
                $fp = fopen($file, 'r+');
                
                do {
                        $data = fread($fp);
                        if ($data == '')
                                break;
                        $contents .= $data;
                } while (true);
                fclose($fp);
                return $contents;
        } 
}  
 
 
function magic_stripslashes($data) {
if (get_magic_quotes_gpc())
        return stripslashes($data);
else
        return $data;
}

// om man tryckt på Spara-knappen i formuläret
if (isset($_POST['submit']))
{
    // Skriver till filen
   file_put_contents($filename, magic_stripslashes($_POST['nytext'])) or die("Kunde inte skriva till filen!");
} 
 
// Hämtar data från filen och sparar det i $annat
$annat = file_get_contents("$filename") or die("Kunde inte hämta filens innehåll!");

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head><title>Annat aktuellt</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<link href="admin.css" type="text/css" rel="stylesheet" media="screen" />
</head>
<body><div id="wrapper"><h1>Skriv något nytt under Annat!</h1>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<textarea name="nytext" cols=30 rows=10><?=$annat?></textarea>
<input type="submit" name="submit" value="Spara" />
</form>
<p><a href="valj.php">Tillbaka</p>
</div>
</body>
</html>
stevenetMedlem sedan juni 20001 251 inlägg
#2

Hej!

Får du något felmeddelande? Skriv ut vad i sådana fall.

Någon som kan se varför den inte fungerar på ena stället men inte den andra?
One.com har ett antal inställningar som går att förändra förutom php 5. Kontrollera att dessa är desamma. Förutom det, kontrollera att filen existerar. ;)

tantenMedlem sedan nov. 20051 596 inlägg
#3

Hejsan!

stevenet skrev:

Hej!
Får du något felmeddelande? Skriv ut vad i sådana fall.

Nej inga felmeddelanden. Den bara lägger dit den gamla texten igen.
Jag har provat att använda w i stället för r+ och då raderas innehållet i filen, oavsett om jag skrivit dit något nytt eller ej.
Kikar jag då på filen i ftp så har den tömts... Då existerar den i alla fall, men jag kan inte skriva dit någon ny text. Den öppnar inte upp textarean om filen är tom och slutar läsa scriptet efter
"die("Kunde inte hämta filens innehåll!"); " och struntar i html-koden...

Någon som kan se varför den inte fungerar på ena stället men inte den andra?
One.com har ett antal inställningar som går att förändra förutom php 5. Kontrollera att dessa är desamma. Förutom det, kontrollera att filen existerar. ;)

Finns det något speciellt jag ska titta efter. Tycker jag tittat över allt :OO

tantenMedlem sedan nov. 20051 596 inlägg
#4

Utan att jag gjort någonting under natten så fungerade formuläret nu när jag testade på morgonen. :q
Jag gissar att omställningen till php5 tog betydligt längre tid än den kvart som det stod att det skulle göra i deras kontrollpanel.
Då återstår frågan hur man ska få formuläret att fungera även om textfilen är tom...
Eftersom jag är ny på detta så vill jag gärna veta om detta är ett bra formulär också...

henkeMedlem sedan dec. 1999286 inlägg
#5

tanten skrev:

Och hur ändrar jag i funktionen så den fungerar bara för PHP5?

Du kan t ex kontrolla om servern kör php5 och gör servern inte det körs inte scriptet. Följande lilla kodsnutt kontrollerar phpversionen:

<?php
if(version_compare('5.0.0', phpversion(), '<=')) {
	echo('5.0.0 eller nyare, servern kör php5');
}
else {
	echo('äldre än 5.0.0, servern kör inte php5');
}
?>
tantenMedlem sedan nov. 20051 596 inlägg
#6

Jag ställde om det till PHP5 i går morse i hennes kontrollpanel och det tog tydligen nästan ett dygn för det att uppdateras, mot den kvart som det stod att det skulle ta. Så jag trodde länge att det var något annat fel. Men nu fungerar allt som det ska med det. :)
Men jag vet fortfarande inte hur jag ska få scriptet att tillåta en tom textfil. Går det?

henkeMedlem sedan dec. 1999286 inlägg
#7

Det går säkert att lösa på nåt sätt... vad gör scriptet för nåt?

tantenMedlem sedan nov. 20051 596 inlägg
#8

henke skrev:

Det går säkert att lösa på nåt sätt... vad gör scriptet för nåt?

:)
Det är en liten textfil som ska skriva ut "annat aktuellt" när det är något speciellt som ska skrivas ut som inte finns i databasen.
Används väldigt sällan, kanske någon gång varannan månad, om ens det. Så vi vill gärna att den ska kunna vara tom. ;)

henkeMedlem sedan dec. 1999286 inlägg
#9

Förstår jag rätt när jag skummade igenom koden och det såg ut som att den fil som laddas upp öppnas och sen överförs texten i den till filen som finns på servern?

I så fall kan du välja att helt enkelt istället direkt skriva över filen som finns på servern med den fil som precis laddades upp. Det är enklare än att öppna filen som laddades upp och sen spara infon. En annan lösning för att inte få en tom fil är att bara skriva in ett mellanslag som inte bör synas på sidan för besökarna.

tantenMedlem sedan nov. 20051 596 inlägg
#10

henke skrev:

Förstår jag rätt när jag skummade igenom koden och det såg ut som att den fil som laddas upp öppnas och sen överförs texten i den till filen som finns på servern?

Ja nu är det så att det som finns i textfilen öppnar upp en textarea som man kan radera innehållet och skriva in något nytt i och sedan spara för att skicka upp den nya texten. Om jag inte har någonting i textfilen öppnas ingen textarea och jag kan inte göra något alls förutom att skicka upp en textfil via ftp:n manuellt för att få ut texten på sidan och få igång formuläret igen. Scriptet dör innan sidan skrivs ut.
Förmodligen har jag helt fel script för ändamålet. :) Men jag är fortfarande på test- och nybörjarstadiet och det är väl av misstag man lär sig...
Att göra ett mellanslag eller en radbrytning fungerade för att kunna använda formuläret igen, så det får vara så tills jag kan mer. ;)
Tack så mycket för tipset!

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)