[PHP] fopen - fread - fwrite probs

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kom er niet meer uit, ik heb verschillende manieren van debuggen toegepast zonder enig resultaat en een search op GoT leverde ook nop op dus hier gaan we nog dan maar:

Het volgende werkt wel:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if ($adduser == 'yes') {
    
    $handle = fopen($filename, 'r+');
    $content = fread($handle, filesize($filename));
    
    $usersnpasses = explode("\n",$content);

    while (list($key,$unp) = @each($usersnpasses)) {
    
        list($user,$pass) = explode(":",$unp);
    
        $users[] = $user;
    
    }
    
    if (in_array($username,$users)) {
    
        echo "Alert: this user already exists!";
    
    } else {
    
        $contents = $username.":".$password."\n";
        
        if (!fwrite($handle, $contents)) {
        
            print "Cannot write to file ($filename)";
            exit;
        
        }
    
    }
    
    fclose($handle);

}


En dit niet:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if ($update == 'yes') {
    
    $handle = fopen($filename,"w+");
    $content = fread($handle, filesize($filename));
    
    $usersnpasses = explode("\n",$content);

    while (list($key,$unp) = @each($usersnpasses)) {
    
        list($user,$pass) = explode(":",$unp);
    
        if ($user == $username) {
            
            $newcontents .= $username.":".$password."\n";
        
        } else {
            
            $newcontents .= $unp."\n";
        
        }
    
    }
        
    if (!fwrite($handle, $newcontents)) {
    
        print "Cannot write to file ($filename)";
        exit;
    
    }
    
    fclose($handle);
    
    header("location: index.php"); exit;

}

Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Wat is je probleem? Wat wil je bereiken? Welke foutmelding krijg je?

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Niet toevallig een kwestie van filesystem rechten? :?

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vladimir G. schreef op 29 September 2003 @ 16:07:
Wat is je probleem? Wat wil je bereiken? Welke foutmelding krijg je?
Het probleem: hij doet niets.
Het doel: het aanmaken, editten en verwijderen van usernames en passwords binnen het htaccess systeem.
De foutmelding: HELEMAAL niets :)
OkkE schreef op 29 September 2003 @ 16:55:
Niet toevallig een kwestie van filesystem rechten? :?
Nee het schrijven gaat dus wel.

[ Voor 22% gewijzigd door Verwijderd op 29-09-2003 17:00 ]


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Location moet met een hoofdletter, en volgens de RFC moet de url een volledige URL zijn (inclusief protocol en domeinnaam)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien voordat je gaat schrijven even de handle closen en opnieuw openen?

Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Ik zie nergens fclose staan voor het schrijven, even opnieuw openen :?

offtopic:
Afterlife :*

[ Voor 61% gewijzigd door supakeen op 29-09-2003 20:03 ]


Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:26

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Dan moet je toch beter kijken of houdt bij jou het script op bij regel 35? Want regelnummers stoppen dan idd, maar code gaat wel door

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu laat ik het geheel nog even van wat extra info voorzien.
Een soortgelijk script werkte eerst wel maar geeft ook sinds de laatste PHP update problemen, d.w.z. na het toepassen van het script is de file leeg.......
drm schreef op 29 september 2003 @ 17:08:
Location moet met een hoofdletter, en volgens de RFC moet de url een volledige URL zijn (inclusief protocol en domeinnaam)
nee drm dat doet het dus wel :P

[ Voor 30% gewijzigd door Verwijderd op 29-09-2003 21:05 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem niet echt kunnen vinden maar de oplossing was makkelijker dan ik gehoopt had:
Ik geef nu alleen ff een voorbeeld met de "edit_user.php" (ja ik had voor het debuggen m'n script gesplit).

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
if ($updateuser == 'yes' && $username != '') {
    
    $handle = fopen($filename,"r+");
    $content = fread($handle, filesize($filename));
    
    $usersnpasses = explode("\n",$content);

    while (list($key,$unp) = @each($usersnpasses)) {
    
        list($user,$pass) = explode(":",$unp);
    
        if ($user == $username) {
            
            $newcontents .= $username.":".$password."\n";
        
        } else {
            
            $newcontents .= $unp."\n";
        
        }
    
    }
    
    fclose($handle);
        
    $handle = fopen($filename,"w+");
    $content = fread($handle, filesize($filename));
        
    if (!fwrite($handle, $newcontents)) {
    
        print "Cannot write to file ($filename)";
        exit;
    
    }
    
    fclose($handle);
    
    header("location: index.php"); exit;

}


Het probleem lijkt hem dus te zitten in fopen(); m.b.t. de lees/schrijf opties.

[ Voor 9% gewijzigd door Verwijderd op 02-10-2003 14:09 . Reden: a+ in r+ gewijzigd. ]


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Als je nu gewoon fopen() doet met alleen de filename; dus zonder lees/schrijf-opties te definiëren? Bij mij wil dat nog wel eens werken.

TheStreme - Share anything with anyone

Pagina: 1