webForumDet fria alternativet

Tar bort för mycket...

1 svar · 401 visningar · startad av Gislaved.net

Gislaved.netMedlem sedan juni 20001 521 inlägg
#1

Hej!

Jag har skrivit ett gästboksscript med en liten smidig administrationsdel. Tyvärr lyckas jag inte ta bort ett inlägg ur gästboken, utan hela gästboksfilen raderas när jag försöker. Inläggen sparas i en textfil, ett inlägg per rad.

sub ta_bort_meddelande 
	{
 	  
    open (GBDATA,"$path/$in{'anvaendarnamn'}_gb.dat") or fel("Kunde inte öppna $path/$in{'anvaendarnamn'}_gb.dat. - 8106\n");
       @information=<GBDATA>;
   close (GBDATA);
   (@GBDATA) = split(/\n/,@information);
 
   $antalrader = @information;
   
    # Vi kollar varje rad om den matchar.
for ($i=0;
        $i<$antalrader;
	$i++) {
       
    foreach $line (@GBDATA){
        if ("$in{'meddelande_att_ta_bort'}" ne "$line[$i]"){
 	   if ($new_data ne ""){
 	       $temp = "$new_data\n$line[$i]";
 	       $new_data = "$temp";
 	   }
 
	    if ($new_data eq ""){
		$new_data = "$line[$i]";
	    }
	}
     }

  }
  

     open (GBDATA,">$path/$in{'anvaendarnamn'}_gb.dat") or fel("Kunde inte &ouml;ppna $path/$in{'anvaendarnamn'}_gb.dat. - 8107\n");
     print GBDATA "$new_data";
    close (GBDATA);
}

Alla förslag på förbättringar tas tacksamt emot...

------------------
Gislaved.net - Ett roligare Internet!

RobbanMedlem sedan dec. 19992 555 inlägg
#2

> (@GBDATA) = split(/\n/,@information);

Vad är syftet? Tror inte denna rad gör vad du tror att den gör.

> foreach $line (@GBDATA){

Har du kollat vad @GBDATA innehåller här? Skulle misstänka att den inte riktigt innehåller det du tror. :)

> $temp = "$new_data\n$line[$i]";
> $new_data = "$temp";

Ett smartare sätt att skriva:

$newdata += "\n$line[$i]";

När variabeln är ensam (som i den andra raden ovan) är det dessutom helt onödigt (och slöseri med resurser) att sätta den innan för citattecken.

------------------
Robban < robban@lipogram.com >

127 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)