Gå til innhold

[LØST] Problemer med et enkelt fwrite() script


Anbefalte innlegg

Nå har jeg sittet i nesten 2 timer uten å komme til noen løsning, så da prøver jeg å skaffe litt hjelp her.

 

Scriptet jeg lager har en relativt enkelt oppgave. Fra "registreringssiden" skal det være fire tekstbokser. Disse skal skrives til en tekstfil.

 

Scriptet jeg bruker er som følger:

 

<?php

$dato = date("d.m.y");

$lagre="$verdi1, $verdi2, $verdi3, $verdi4, $dato \n";

$fh=fopen('liste.txt',"a+");
fwrite($fh,utf8_encode($lagre));
fclose($fh);

header("location: ok.php");
?>

 

Dette har jeg nå testet på to servere, med helt forskjellig resultat.

 

Server 1: Alt virker. Verdiene blir skrevet i tekstfilen "liste.php", med kommaseparering slik jeg har satt opp i strengen "$lagre".

Server 2: Strengen blir skrevet med bare kommaene, og ikke innholdet i feltene. Eksempel: " , , , , 01.01.07"

 

Problemet er da at scriptet skal kjøres på Server 2... :ermm:

 

Noen som har en anelse hva dette kan skyldes?

Endret av xenonnet
Lenke til kommentar
Videoannonse
Annonse

Er du sikker på at scriptet får hentet verdiene som det skal i begge scriptene? Du kan jo og se om du får noen error, prøv:

 

PHP
<?php

 

$dato date("d.m.y");

 

$lagre=utf8_encode($verdi1 $verdi2 $verdi3 $verdi4 $dato "n");

 

if(!$fh=fopen('liste.txt',"a+"))

{

die("Kunne ikke åpne fil.");

}

if(!fwrite($fh,$lagre))

{

die("Kunne ikke skrive til fil.");

}

fclose($fh);

 

header("location: ok.php");

 

?>

Endret av Mr. Bakke
Lenke til kommentar
Gjest Slettet+142

Hvor settes verdiene til varablene $verdi1, $verdi2, $verdi3 og $verdi4 hen?

 

Det som er, er at f.eks på serveren du testet det på, kan det være at register_globals er på, mens på din maskin er de av.

 

register_globals gjør at GET_verdiene blir omgjort til variabler ;)

 

Du må nok ha dette før fwrite i koden din:

$verdi1 = $_GET["verdi1"];
$verdi2 = $_GET["verdi2"];
$verdi3 = $_GET["verdi3"];
$verdi4 = $_GET["verdi4"];

Endret av Slettet+142
Lenke til kommentar

Mr. Bakke: Fikk ingen error. Scriptet ble kjørt, verdien ", , , , 25.07.2007" ble skrevet til filen, og ok.php ble lastet. Føler meg ganske sikker på at scriptet får hentet verdiene, siden de samme filene virker på Server 1...

 

mariyo: Fra index.php, som inneholder selve formen. Inputfeltene er satt opp slik:

 

<input name="verdi1" type="text" id="verdi1" size="60">

 

Forsøkte som du nevner med følgende script:

 

<?php

$ticket = $_GET["ticket"];
$remedy = $_GET["remedy"];
$grunn = $_GET["grunn"];
$sendt = $_GET["sendt"];

$dato = date("d.m.y");

$lagre="$verdi1, $verdi2, $verdi3, $verdi4, $dato \n";

$fh=fopen('liste.txt',"a+");
fwrite($fh,utf8_encode($lagre));
fclose($fh);

header("location: ok.php");

?>

 

Resultatet ble fortsatt ", , , , 25.05.07"

Endret av xenonnet
Lenke til kommentar

Selvfølgelig:

 

Index.php:

Klikk for å se/fjerne innholdet nedenfor

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Untitled Document</title>

<style type="text/css">

<!--

.style1 { font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 12px;

}

.style6 {font-family: Arial, Helvetica, sans-serif}

-->

</style>

</head>

 

<body>

<form action="php_script.php" method="post" name="Form 1" id="Form 1">

<table width="690" border="0,5" align="center" cellpadding="0" cellspacing="0" bordercolor="#000000">

<!--DWLayoutTable-->

<tr class="style1">

<td><FONT face=Arial size=2>Felt 1</FONT><FONT face=Arial color=red size=2> *</FONT> </td>

</tr>

<tr class="style1">

<td width="5"><input name="verdi1" type="text" id="verdi1" size="60"></td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=-2>Felt 1</FONT></td>

</tr>

<tr class="style1">

<td> </td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=2>Felt 2</FONT><FONT face=Arial color=red size=2> *</FONT> </td>

</tr>

<tr class="style1">

<td>

<input name="verdi2" type="text" id="verdi2" size="60">

</p>

</td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=-2>Felt 2</FONT></td>

</tr>

<tr class="style1">

<td> </td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=2>Felt 3</FONT><FONT face=Arial color=red size=2> *</FONT> </td>

</tr>

<tr class="style1">

<td>

<input name="verdi3" type="text" id="verdi3" size="60">

</td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=-2>Felt 3</FONT></td><p></p>

</tr>

<tr class="style1">

<td> </td>

</tr>

<tr class="style1">

<td><FONT face=Arial size=2>Felt 4</FONT></td>

</tr>

 

<tr class="style1">

<td><select name="verdi4" id="verdi4">

<option value="1">1</option>

<option value="2">2</option>

</select></td>

</tr>

</table>

<p align="center">

<input name="ok" type="submit" id="ok" value="Send">

<input name="null" type="reset" id="null" value="Nullstill">

</p>

</form>

<p> </p>

</body>

</html>

 

php_script.php:

Klikk for å se/fjerne innholdet nedenfor

<?php

 

$verdi1 = $_GET["verdi1"];

$verdi2 = $_GET["verdi2"];

$verdi3 = $_GET["verdi3"];

$verdi4 = $_GET["verdi4"];

 

$dato = date("d.m.y");

 

$lagre="$verdi1, $verdi2, $verdi3, $verdi4, $dato \n";

 

$fh=fopen('liste.txt',"a+");

fwrite($fh,utf8_encode($lagre));

fclose($fh);

 

header("location: ok.php");

 

?>

Lenke til kommentar
Gjest Slettet+142

Weee. Jeg tror jeg ser feilen :)

 

Du trenger kun endre php_script.php-filen din til:

<?php

$verdi1 = $_POST["verdi1"];
$verdi2 = $_POST["verdi2"];
$verdi3 = $_POST["verdi3"];
$verdi4 = $_POST["verdi4"];

$dato = date("d.m.y");

$lagre="$verdi1, $verdi2, $verdi3, $verdi4, $dato \n";

$fh=fopen('liste.txt',"a+");
fwrite($fh,utf8_encode($lagre));
fclose($fh);

header("location: ok.php");

?>

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...