Gå til innhold

Lage en liste av alle linjer i et dokument


Anbefalte innlegg

hmm..ser ikke ut som unlink-greien funker, textfilen blir barefordobllet hver gang jeg prøver å slette..

 

<?php
$lines = file('pameldte.txt');
$countlines = count($lines);
$maxplasser = "60";
$plasserigjen = $maxplasser-$countlines;
$width = "50%";
echo "<table width=$width cellspacing=0>";

$filens_innhold = array();

if ($countlines < 1){
echo "<p>Det er ingen påmeldte deltagere enda!</p>";
}
if ($countlines === 1){
echo  "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>";
}
if($countlines > 1){
echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>";
}

$fil_navn = "pameldte.txt";
$innhold = file($fil_navn);
$i = 1;


foreach($innhold as $linje){

echo "<tr bgcolor=$color> <td> $i. $linje
<a href='pameldte.php?slett=$i'>Slett denne linje </a>
</td></tr>";

$filens_innhold[$i] = $linje;
$color = $i%2 ? "#CCCCCC": "#FFFFFF"; // takk ?????????
$i++;
}
echo"</table>";
echo"<p>Antall plasser igjen: $plasserigjen </p>";



if (!empty($_GET['slett'])) {

// NB! ha dette etter den delen som samler filen i et array!

$slettes_skal = $_GET['slett'];

for ($i=0;$i<sizeof($filens_innhold);$i++) {

if ($i !== $slettes_skal) { // sjekker om det ikke er den linjen som skal slettes.
$hele_fil .= $filens_innhold[$i] . "
"; //linje skift
}
}
unlink("pameldte.txt"); // sletter txt filen

$fil = fopen("pameldte.txt", "a+");
fwrite($fil, $hele_fil);
fclose($fil);
// Skriver til filen på nytt.

}

?>

Endret av Tha_Zaynt
Lenke til kommentar
Videoannonse
Annonse

Det må du ta opp med host'en din...

 

Har testet selv og modifisert litt lokalt på min maskin.

Her er skriptet i to filer + textfila. Alt virker som det skal hos meg nå, men det ser ut til at web hosten din enten har tatt av unlink i php eller det er noe galt med chmodinga.

 

pameldte.php

<?php

 

$maxplasser = "60";

$plasserigjen = $maxplasser-$countlines;

$width = "50%";

$fil_navn = "pameldte.txt";

$innhold = file($fil_navn);

$i = 0;

 

echo "<table width=$width cellspacing=0>";

 

$countlines = 0;

foreach($innhold as $linje){ $countlines++; } // Teller Linjene (Forige (count($lines)) virket ikke.

 

if ($countlines == 1){

echo  "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>";

}

if($countlines > 1){

echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>";

}

if ($countlines == 0) {

echo "<p>Det er ingen påmeldte deltagere enda!</p>";

}

 

foreach($innhold as $linje){

$nr = $i+1;

 

echo "<tr bgcolor=$color> <td> $nr. $linje

<a href='slett.php?slett=$i&fil=$fil_navn'>Slett</a>

</td></tr>";

 

$color = $i%2 ? "#CCCCCC": "#FFFFFF";

$i++;

}

echo"</table>";

echo"<p>Antall plasser igjen: $plasserigjen </p>";

 

?>

 

slett.php

<?

$slett = $_GET['slett'];

$fil_navn = $_GET['fil'];

$filens_innhold = array();

$innhold = file($fil_navn);

$i = "0";

 

foreach($innhold as $linje){

$filens_innhold[$i] = $linje;

$i++;

}

 

for ($i=0;$i<sizeof($filens_innhold);$i++) {

if ($i != $slett) {

$hele_fil .= $filens_innhold[$i];

}

}

 

 

if ($slett >= 0 ) {

unlink($fil_navn); // sletter txt filen

 

$fil = fopen($fil_navn, 'a+');

fwrite($fil, $hele_fil);

fclose($fil);

//Skriver til filen på nytt.

chmod($fil_navn, 0777);

// Chmoder

}

 

 

header("Location:pameldte.php");

?>

Lenke til kommentar

Hva er feil med følgende kode da? Får denne feilmeldingen etter at jeg prøvde å legge til login-sjekking me session..;

 

Parse error: parse error, unexpected T_IF, expecting ',' or ';' in /mnt/home4/l/lu/luffert/public_html/lansystem/pameldte.php on line 57

 

foreach($innhold as $linje){

echo "<tr bgcolor=$color> <td> $i. $linje </td>";
if($_SESSION['auth']){
echo "<td><a href='pameldte.php?slett=$i'>Slett</a></td>";
} 
"</tr>";

Lenke til kommentar
Hva er feil med følgende kode da? Får denne feilmeldingen etter at jeg prøvde å legge til login-sjekking me session..;

 

Parse error: parse error, unexpected T_IF, expecting ',' or ';' in /mnt/home4/l/lu/luffert/public_html/lansystem/pameldte.php on line 57

 

foreach($innhold as $linje){

echo "<tr bgcolor=$color> <td> $i. $linje </td>";
if($_SESSION['auth']){
echo "<td><a href='pameldte.php?slett=$i'>Slett</a></td>";
} 
"</tr>";

<?php

session_start();

 

// resten

 

//resten ^^

 

foreach($innhold as $linje){

$nr = $i+1;

 

echo "<tr bgcolor=$color> <td> $nr. $linje";

if ($_SESSION['auth']) {

echo "<a href='slett.php?slett=$i&fil=$fil_navn'>Slett</a>";

}

echo"</td></tr>";

 

 

 

 

du glemte en echo, (eller print om du vil).

 

Jeg anbefaler deg til å ha slettingen i en egen fil kalt slett.php, da vil listen oppdateres med (tilsynelatende) en gang du trykker på slett. Og du slipper og slette den oppføringen under den du vil slette om du presser F5 tasten.

For i slett.php helt nederst, står det:

 

header("Location:pameldte.php"); som vil ta deg tilbake til listen.

 

Evn. Beskytt den med Admin session også.

 

slett.php -> øverst

<?

session_start();

if(!$_SESSION['auth']) {

exit;

}

//.. resten.

 

exit; stopper php skriptet i det dokumentet.

Endret av robgar
Lenke til kommentar
Ser ut som jeg må ha det inn med teskje...hva skal stå i pameldte.php og hva skal stå i slett.php?

 

Jeg prøvde å legge alt som (jeg tror) har noe med slettingen å gjøre inn i slett.php, emn da blir det bare tull ...Beklager at jeg er sånn til bry

`Jeg har jo postet det allerede:

 

pameldte.php <<<<<<<<<<<<<<<<<<<<<<<<<<

<?php

 

$maxplasser = "60";

$plasserigjen = $maxplasser-$countlines;

$width = "50%";

$fil_navn = "pameldte.txt";

$innhold = file($fil_navn);

$i = 0;

 

echo "<table width=$width cellspacing=0>";

 

$countlines = 0;

foreach($innhold as $linje){ $countlines++; } // Teller Linjene (Forige (count($lines)) virket ikke.

 

if ($countlines == 1){

echo  "<p>Det er bare $countlines deltager påmeldt for øyeblikket. Den eneste påmeldte deltageren er:</p>";

}

if($countlines > 1){

echo "<p>Det er $countlines påmeldte deltagere så langt. Disse er:</p>";

}

if ($countlines == 0) {

echo "<p>Det er ingen påmeldte deltagere enda!</p>";

}

 

foreach($innhold as $linje){

$nr = $i+1;

 

echo "<tr bgcolor=$color> <td> $nr. $linje

<a href='slett.php?slett=$i&fil=$fil_navn'>Slett</a>

</td></tr>";

 

$color = $i%2 ? "#CCCCCC": "#FFFFFF";

$i++;

}

echo"</table>";

echo"<p>Antall plasser igjen: $plasserigjen </p>";

 

?>

 

 

OG så:

 

slett.php<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

<?

$slett = $_GET['slett'];

$fil_navn = $_GET['fil'];

$filens_innhold = array();

$innhold = file($fil_navn);

$i = "0";

 

foreach($innhold as $linje){

$filens_innhold[$i] = $linje;

$i++;

}

 

for ($i=0;$i<sizeof($filens_innhold);$i++) {

if ($i != $slett) {

$hele_fil .= $filens_innhold[$i];

}

}

 

 

if ($slett >= 0 ) {

unlink($fil_navn); // sletter txt filen

 

$fil = fopen($fil_navn, 'a+');

fwrite($fil, $hele_fil);

fclose($fil);

//Skriver til filen på nytt.

chmod($fil_navn, 0777);

// Chmoder

}

 

 

header("Location:pameldte.php");

?>

 

Endret av robgar
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...