php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.07.2005, 10:18  
Gast
 
Beiträge: n/a
Standard Zeile aus Datei löschen - Warum passiert nichts ?

also ich hab eine Datei, in der User eingetragen werden wenn sie sich registrieren...
wenn sich ein user abmeldet oder löscht, dann sollen seine daten aus dieser datei gelöscht werden.
ich hab mir nun folgenden code geschrieben, nur leider passiert nichts ?!

PHP-Code:
<?php
#####################
# User aus db löschen

    # Auslesen der User
$allreguser=file("user.dp.txt");



    
# Zeile suchen'
$zielzeile="unset";    
if (isset(
$senden) && $action_del == "del") {
    
$search=$user_del;
    
$fp=fopen("user.dp.txt","r");
    
$zeile=0;
    while(
$line=fgets($fp,1024)) {
    
$zeile++;
    if(
trim($line) == trim($search))
    {
    
$zielzeile=$zeile;
    }
    } 
    
fclose($fp);
}
    
# Zeile löschen
if (isset($senden) && $action_del == "del" && isset($zielzeile) && $zielzeile != "unset") {    
        
    
$oldfile="user.dp.txt";
    
$old fopen($oldfile"r");
    
flock($old1) or die("Kann die Quelldatei $oldfile nicht locken.");
    
    
$new fopen($oldfile.".new""w");
    
flock($new2) or die("Kann die Zieldatei $newfile nicht locken.");
    
    
$lineno 0;
    
    while(
$line fgets($old1024)) {
      if (
$lineno++ == $zielzeile)
        continue;
    
      
fputs($new$line);
    }
    
    
fclose($old); 
    
unlink($oldfile);

    
fclose($new);    
    
rename($oldfile.".new"$oldfile);
}
?>
datei "user.dp.txt" hat folgenden aufbau:
Code:
Username1|Passwort1|eMail1|... 
Username2|Passwort2|eMail2|... 
Username3|Passwort3|eMail3|... 
Username4|Passwort4|eMail4|... 
Username5|Passwort5|eMail5|... 
Username6|Passwort6|eMail6|...
die variable "$user_del" wird über ein formular übergeben und entspricht dem wert "Username1" ... "Username6"

ich selbst kann keinen fehler finden, eine fehlermeldung wird auch nicht ausgegeben, aber passieren tut nichts...
unglücklich bin ich auch darüber, dass ich die datei zwei mal öffnen und schließen muss, einmal um die zeile zu suchen und dann um sie zu löschen...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.07.2005, 10:30  
Gast
 
Beiträge: n/a
Standard

$zielzeile="unset";
if (isset($senden) && $action_del == "del" && isset($zielzeile) && $zielzeile != "unset")

Dass du immer noch nicht mit $_GET und/oder $_POST arbeitest, ist eher ein schlechter Witz. Wie um alles in der Welt kann man immer noch so programmieren???

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


Gruß
phpfan
 
Alt 12.07.2005, 11:25  
Gast
 
Beiträge: n/a
Standard

hi phpfan,

also erstmal danke für deine schnelle antwort.
zu deiner anmerkung was das programmieren mit $_GETS und $_POST, geb ich dir recht, ist nicht wirklich sicher.
bevor man aber an diese codezeilen heran kommt, werden andere variablen abgefragt, die eines cookies, wechle vorhanden sein müssen...

PHP-Code:
<?php
include ("admin.inc.php");
$phpself=$_SERVER['PHP_SELF'];
$logincheck=$adminlogin."_".md5($adminpw); 
if (isset(
$_COOKIE['admin_check']) && $_COOKIE['admin_check']== $logincheck ) {

####
# Erst hier werden alle weiteren aktionen ausgeführt...
#
# Die Variablen $adminlogin & $adminpw werden aus der admin.inc.php gelesen...
#
####
}
?>
mit dieser einleitung erreiche ich eine für mich ausreichend hohe sicherheit, wenn das für dich nicht so ist, wirst du sicher andere möglichkeiten nutzen, ich aber kann es derzeit nicht besser.

was das debuggen angeht, hab ich inzwischen herausgefunden, dass beim auslesen der zeile irgendwas nicht stimmt, denn hier soll aus $zielzeile="unset"; zB: $zielzeile="6"; werden...

dann würde es in der nächsten operation mit isset($zielzeile) && $zielzeile != "unset" wieder funktionieren... mein ich zumindest.

naja und die anderen "unsicheren" variablen... die werden aus einem vormular übernommen welches auch erst nach der obigen sicherheitsabfrage zugängig ist...
hier erklärt sich nämlich auch diese zeile: $phpself=$_SERVER['PHP_SELF'];
denn das komplette formular wird nach der sicherheitsabfrage mit echo ausgegeben, und ich hatte hier probleme mit der serverseitigen variable... von daher einmal in eine normale ablegen und diese einfach anzeigen lassen and er richtigen stelle...
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Hochgeladene Datei wird doppelt abgelegt thecracked PHP Tipps 2008 3 01.07.2008 16:31
[Erledigt] 'upload-Datei' Zeile für Zeile auslesen Felix PHP Tipps 2008 18 29.06.2008 02:55
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Zeile aus Datei auslesen und teil davon verändern... BartTheDevil89 PHP Tipps 2008 5 04.04.2008 21:00
[Erledigt] Datei mit &amp;amp;amp;amp;quot;w&amp;amp;amp;amp;quot; schreiben -&amp;amp;amp;amp;gt PHP-Fortgeschrittene 17 30.12.2005 13:58
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
[Erledigt] .reg Datei auslesen und bestimmte Zeile ändern PHP-Fortgeschrittene 19 27.10.2004 10:39
Dateien lesen und schreiben [mehr als: r,a,w]? PHP Tipps 2004 4 24.10.2004 18:53
Zeilenumbrüche & Neudatein mit PHP PHP Tipps 2004 5 21.10.2004 11:38
Jede 10 Zeile einer txt Datei ausgeben - Parser PHP Tipps 2004 1 15.10.2004 22:55
Datei mit php erzeugen Stümper PHP Tipps 2004 4 12.10.2004 12:51
php und ftp PHP Tipps 2004 4 07.10.2004 09:58
[Erledigt] Zeile löschen mit Befehl in PHP Datei Datenbanken 2 01.08.2004 17:25
[Erledigt] Funktion MAIL() funkt nicht PHP Tipps 2004 16 11.07.2004 17:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fopen zeile löschen aus der date, durch php eine zeile verändern wobei datei locken, fopen zeile löschen, php erste zeile einer textdatei löschen, datei löschen, was passiert, php fgets zeile löschen, dp datei löschen, fgets zeilen löschen, fgets aktuelle zeile löschen pho, fgets zeile löschen, txt php passiert nichts, php login es passiert nichts, script zeile aus textdatei löschen, php fopen zeile löschen, in die de.php müssen noch folgende zeilen eingetragen werden, php inhalt auslesen und zeile löschen, php bestimmte zeile aus datei löschen, fopen fgets zeilen löschen, php fgets eine zeile zweimal auslesen, zeilen in dateien löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.