Gå til innhold

Funksjon: endre profil


Anbefalte innlegg

Som topic sier, jeg skal lage et script der en bruker logger inn og kan endre sin "profil" som er tilgjengelig for alle. Jeg har ordnet includes så sidene der profilene publiseres er knyttet til en txt-fil for hver bruker.

 

Spørsmålet mitt er: Hvordan endrer jeg txt-filen gjennom web-grensesnittet?

 

Nåværende koder (med feil, vet ikke hva):

 

index.php

<form action="post.php" method="post">
   <textarea name="message" id="message"></textarea><br>
</td></tr>

<tr><td>
<INPUT TYPE="hidden" NAME="returnurl" VALUE="index.php">        
<input type="submit" name="Submit" value="Send">
       <input type="reset" name="Reset" value="Reset">

   </form>

 

 

post.php

<html><head><link rel="stylesheet" href="../../style2.css" type="text/css"></head>
Profilen er endret. <a href="index.php">tilbake</a><?

include("config.php");


$profil = stripslashes($profil);
$wrap = intval((35)/($textsize-2))+1;
$profil = wordwrap($profil, $wrap, ' ');
$comfile = file($data);if ($profil != "") {$df = fopen ($data, "w");$profil = stripslashes($profil);fwrite ($df, "


<table>
 
 <tr height='100%'>
   <td><b>Profil</td>
   <td>$profil</td>
 </tr>
</table>
<br>

");for ($i = 0; $i < $comments; $i++) {fwrite ($df, $comfile[$i]);}fclose($df);}
?>
</html>

 

 

config.php

<?php
//where shout data is stored must be CHOMDED to 777
$data = "omperson.txt";
//max length of input
$length = 999999999999999999;
//messages to show
$comments = 9999999999999999;
//text size
$textsize = 1;

?>

 

 

ser nå at det er en annen feil her også. Man legger bare til ny info i tillegg til den gamle. Trenger noe som fjerner alt tidligere innhold i "omperson.txt" før den endrer til det nye innholdet i textarea..

Lenke til kommentar
Videoannonse
Annonse

du kan fint bruke "w" forå skrive over et dokument, men det du gjør her, er jo at du først leser innholdet i filen inn i arrayet $comfile, så legger du til det nye, også legger du inn hver linje som var i det gamle dokumentet... Derfor får du det gamle i tillegg..

 

Dersom du ikke skal bytte ut hele filen med nytt innhold, bør de sette inn noen kommentar-tags som sier hvor forskjellige ting starter.. F.eks <!-- Profil Start --> og <!-- Profil Slutt --> og hvis du har noen kommentarer under der igjen, som skal legges til (virker sånn), så kan du f.eks bruke <!-- komm start --> og <!-- komm slutt -->, også bytter du bare ut teksten mellom start og slutt av profil med den nye profilen, og skriver hele teksten på nytt...

 

Tips: For å lagre hele innholdet i en variabel, kan du bruke: implode("", file($data)); Så kan du bare erstatte alt mellom profil start og profil slutt :)

 

En annen ting; Du siter at det er en tekstfil pr bruker... Men ifølge koden, så henter du alltid inn filen omperson.txt. stemmer det eller ? Er det kanskje litt kode som ikke vises her...

 

UFF Seint ! Må få lagt meg

Endret av kakkle
Lenke til kommentar
En annen ting; Du siter at det er en tekstfil pr bruker... Men ifølge koden, så henter du alltid inn filen omperson.txt. stemmer det eller ? Er det kanskje litt kode som ikke vises her...

stemmer detta.. men har en tilsvarende side for hver bruker.. gjør det så enkelt at jeg kan klare det :p

Lenke til kommentar

Så du skal ikke erstatte hele filen, er det slik å forstå ? Du vil bare endre deler av filen ?

Her er et konkret eksempel for lagring av $data (filen omperson.txt) i en variabel:

$filelines = file($data); // Her er $data="omperson.txt" iflg config filen din
$helefilen = implode ("", $filelines);

Dersom du vil se litt mer på filer, og lesing fra dem, og endring av filer, så kan du kikke på følgende sider på php.net:

http://www.php.net/filesystem

http://www.php.net/file

http://www.php.net/fopen

http://www.php.net/fputs

Andre sider som er nyttige:

http://www.php.net/array

http://www.php.net/implode

http://www.php.net/explode

http://www.php.net/str_replace

http://www.php.net/ereg_replace

 

for å ha med noen... Det er masse å lære på php.net, så jeg anbefaler deg å lese litt der. Se også på kommentarene som er under funksjonsbeskrivelse. Kan hende det ligger en funksjon for akkurat det du leter etter der.

 

EDIT: Tok med link til Filesystem reference også, og slettet den siste file linken...

 

/KMS

Endret av kakkle
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...