Gå til innhold

Legge inn i tekstdokument øverst


Anbefalte innlegg

Skrevet (endret)

Har et lite script for å legge inn nyheter på en hjemmeside. Vil ha de nyeste øverst, men de kommer nederst slik scriptet er nå. Noen som kan hjelpe meg til å få det til.

 

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{
?>
<? $today = date("d.m.y");?>
<?
$fp =fopen ("sider/news.txt", "aw");
fputs ($fp,"$today - $text <br><br>");
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

 

Ferdig kode ble slik (for de som ikke orker å scrolle ned):

 

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

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

$fila = file("sider/news.txt");
foreach($fila as $rad) {
$minne .= $rad;
};

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Endret av oya
Videoannonse
Annonse
Skrevet

r+ vil ikke fungere, noe som står beskrevet i manualen:

Open for reading and writing; place the file pointer at the beginning of the file.

mao vil fila overskrives fra starten av fila.

 

for å få inn innhold øverst i en fil, må du åpne fila, lese den inn i minnet (f.eks vha file() ) og deretter skrive nytt innhold til fila fra toppen og legge inn det gamle innholdet etter dette.

Skrevet

Noen som kan lage koden til meg? Jeg er ikke så veldig flink med php. Er flinkest til å redigere script :p

Skrevet (endret)

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

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

$minne = file("sider/news.txt");
$minne = implode("", $minne);

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Burde gjøre susen? :p Om du har eldre PHP versjon enn 4.3.0 kan det hende den ikke funker, pga at implode'en slik den brukes her antageligvis ikke fungerer i eldre versjoner ;)

 

edit: Seriøs skriveleif i koden :p Edit2: Jævla +tegn i w'en som kom for tidlig ;)

Endret av eXZire
Skrevet

funker ikke. Har hjemmesiden på home.no.net... vet ikke helt hvilken versjon de har, men skulle jo anta at de har en ganske nyere versjon

Skrevet (endret)

EDIT: Denne vil nå funke, men anbefaler heller at du bruker den lenger opp :p

<?
if (empty($login))
{
exit();
}

if(strcmp($login,"xxxxxxx")==0 && strcmp($passwd,"xxxxxxx")==0)
{

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

$fila = file("sider/news.txt");
foreach($fila as $rad) {
$minne .= $rad;
};

$fp = fopen ("sider/news.txt", "w+");
fputs ($fp, $today . " - " . $text . "<br><br>" . $minne);
fclose ($fp);
print ("<p>Du har skrevet $text på news</p>");
?>
<a href="index.php?id=index">Tilbake</a>
<?
}
else
{
echo "Feil brukernavn og passord";
}
?>

Endret av eXZire
Skrevet

et par småtterier:

*) bruk <?php istedet for <?

*) husk at login og passord må hentes fra $_GET eller $_POST

*) strenger kan sammenlignes med ==, strcmp blir å skyte spurv med uzi

*) file_get_contents eller join("",file("filename")) for å hente ut filinnhold som streng

 

fjartan: alle har små huller ;)

Skrevet (endret)

join er alias for implode.. brukte det på det første skriptet, trodde da det ikke gikk pga gammel php versjon eller noe, så gikk derfor til foreach'en :p (Viste seg jo at det var en litt for rask + i "w+" ;) som var feilen, ikke implode. Må visst begynne å lese igjennom innlegg igjen gitt ;) )

 

edit: just for the record: Vil bare si at jeg personlig ville gjort ting annerledes, bl.a. tatt inn det Torbjørn sier, men jeg gadd ikke endre på hele skriptet.. ;)

Endret av eXZire

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