Tha_Zaynt Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 (endret) 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 6. november 2004 av Tha_Zaynt Lenke til kommentar
Frank2004 Skrevet 6. november 2004 Del Skrevet 6. november 2004 hvorfor ikke bruke html-tabeller til tabulære data? Var det ikke snakk om en liste her, da? Lenke til kommentar
robgar Skrevet 6. november 2004 Del Skrevet 6. november 2004 (endret) Hmm, unlink skal virke ... EDIT: slettet litt feil info. Endret 6. november 2004 av robgar Lenke til kommentar
Tha_Zaynt Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 (endret) Fant feilen...nå skulle det funke fint! Takker så meget! Endret 6. november 2004 av Tha_Zaynt Lenke til kommentar
robgar Skrevet 6. november 2004 Del Skrevet 6. november 2004 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
robgar Skrevet 6. november 2004 Del Skrevet 6. november 2004 Fant feilen...nå skulle det funke fint! Takker så meget! Værsågod Lenke til kommentar
Tha_Zaynt Skrevet 6. november 2004 Forfatter Del Skrevet 6. november 2004 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
robgar Skrevet 7. november 2004 Del Skrevet 7. november 2004 (endret) 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 7. november 2004 av robgar Lenke til kommentar
Tha_Zaynt Skrevet 7. november 2004 Forfatter Del Skrevet 7. november 2004 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 Lenke til kommentar
robgar Skrevet 7. november 2004 Del Skrevet 7. november 2004 (endret) 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 7. november 2004 av robgar Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå