brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-07-2001, 18:39
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi Leut's,

meine Flash/PHP Highscoreliste funkt super bis auf den Umstand, das php beim zurückschreiben auch den letzten Eintrag löscht wenn nicht 10 Einträge (soviel erlaube ich maximal) vorhanden sind. D.h. dass man noch irgendwo einen Check machen müßte, ob in der Data.txt auch wirklich 10 Highscore-Einträge vorhanden sind.

Data.txt:
Tiger2;1200
tiger;1000
Hoschi;700
Martin;614
Thomas;592
Alex;541
Richi;397
Manfred;341
tiger;1000

php-writeback-funktion:
<?
$winner="tiger"; //kommt von Flash zurück
$credits=1000; //kommt von Flash zurück

$fp = fopen("data.txt","r");
while($data = fgets($fp,1024)){ // zeile für zeile einlesen
$data = explode(";",$data); // jede zeile aufsplitten
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
}
fclose($fp);

arsort($hitlist);
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)

if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
$fp=fopen("data.txt","w");
while (list ($key, $val) = each ($hitlist)) {
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
}
fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen
fclose($fp);
}
?>

Bitte um Rat?!?!?

CU
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #2 (permalink)  
Alt 18-07-2001, 08:11
BrainBug
 PHP Senior
Links : Onlinestatus : BrainBug ist offline
Registriert seit: Mar 2001
Ort: Raum Frankfurt
Beiträge: 1.110
BrainBug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
<? 
$winner="tiger"; //kommt von Flash zurück 
$credits=1000; //kommt von Flash zurück 

$fp = fopen("data.txt","r"); 
while($data = fgets($fp,1024)){ // zeile für zeile einlesen 
	$data = explode(";",$data); // jede zeile aufsplitten 
	$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern 
	} 
fclose($fp); 

arsort($hitlist);
$eintraege=count($hitlist);	// wieviele Einträge sind es überhaupt -> max. 10 Stück 
if ($eintraege<10) {	// letzten Eintrag nicht abspalten, sondern nur holen
	end($hitlist);	// letzter Eintrag selektieren
	list($key_min,$min)=each($hitlist);	// Credits holen, bleibt aber im Array erhalten
	}
else {
	$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert) 
	}

if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben 
	$fp=fopen("data.txt","w"); 
	while (list ($key, $val) = each ($hitlist)) { 
		fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben 
		} 
	fputs($fp,$winner.";".$credits."\n"); // und dann den neuen Eintrag am Ende anhängen 
	fclose($fp); 
	} 
?>
Mit Zitat antworten
  #3 (permalink)  
Alt 18-07-2001, 10:38
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Cool

Danke BrainBug, werde das morgen mal auschecken!

Meld mich!
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #4 (permalink)  
Alt 19-07-2001, 18:47
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi BrainBug. Hab's grad getestet. Es passiert bei der Funktion leider ein Fehler beim Zurückschreiben in die Data.txt
Man kann den neuen Eintrag in die HighscoreListe in Flash zwar durchführen. Wenn man allerdings auf SaveScore klickt müßte php den Eintrag in die Data.txt reinschreiben. Genau das tut es nicht.
Keine Ahnung warum. An Flash liegt es 100%ig nicht. Irgendwo paßt da was in der php-funktion nicht. Da ich ein paar Variablennamen geändert habe, hier nochmal die letzte Version:

<?
$winnername="hetfield"; //kommt von Flash zurück
$winnercredits=998; //kommt von Flash zurück

$fp = fopen("data.txt","r");
while($data = fgets($fp,1024)){ // zeile für zeile einlesen
$data = explode(";",$data); // jede zeile aufsplitten
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
}
fclose($fp);

arsort($hitlist);
$eintraege=count($hitlist); // max.10 Einträge erlauben
if ($eintraege<10) { // letzten Eintrag nicht abspalten, sondern nur holen
end($hitlist); // letzter Eintrag selektieren
list($key_min,$min)=each($hitlist); // Credits holen, bleibt aber im Array erhalten
}
else {
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)
}

if ($credits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
$fp=fopen("data.txt","w");
while (list ($key, $val) = each ($hitlist)) {
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
}
fputs($fp,$winnername.";".$winnercredits."\n"); // und dann den neuen Eintrag am Ende anhängen
fclose($fp);
}
?>
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #5 (permalink)  
Alt 23-07-2001, 07:58
BrainBug
 PHP Senior
Links : Onlinestatus : BrainBug ist offline
Registriert seit: Mar 2001
Ort: Raum Frankfurt
Beiträge: 1.110
BrainBug ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
if ($winnercredits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
du hattest da noch $credits als Variablenname stehen. So kann die If-Bedingung natürlich nie erfüllt werden und genau dort wird ja geschrieben....
Mit Zitat antworten
  #6 (permalink)  
Alt 24-07-2001, 16:07
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy

Hi BrainBug,

tut mir leid, dass ich da extra ein Posting gemacht habe. Anscheinend hab ich zu lange in den Code geschaut. Hab's grad auf winnercredits ausgebessert. Funktionieren tut's aber trotzdem nicht. PHP schreibt nur den neuen Eintrag in die Data.txt und löscht alle anderen raus.

Ich hab's nochmal Zeile für Zeile gecheckt, finde aber keinen Fehler.
Soll ich dir meine Data.txt und die phpSchreiben.php mal mailen damit du es in PHP-Edit testen kannst und vielleicht den Fehler findest ???
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #7 (permalink)  
Alt 25-07-2001, 11:17
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi BrainBug,

hast Du mein Posting bezüglich Highscoretabelle eh gesehen??
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #8 (permalink)  
Alt 26-07-2001, 07:54
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Wink

Hi BrainBug,

eh nicht auf meine Highscoretabelle vergessen ???
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #9 (permalink)  
Alt 26-07-2001, 08:08
BrainBug
 PHP Senior
Links : Onlinestatus : BrainBug ist offline
Registriert seit: Mar 2001
Ort: Raum Frankfurt
Beiträge: 1.110
BrainBug ist zur Zeit noch ein unbeschriebenes Blatt
Standard eh

ei wo denn? Ich kann doch net immer das ganze Forum nach einem Artikel durchsuchen...
Mit Zitat antworten
  #10 (permalink)  
Alt 26-07-2001, 08:31
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy

Vergiß die vorigen Postings. Ich erklär's dir ab dieser Stelle - das genügt.

Es geht lediglich darum, dass bei der Highscore-Schreiben funktion eine Kleinigkeit noch immer nicht stimmt. Es ist nämlich so, dass er den neuen Highscoreeintrag zwar in die Data.txt übernimmt, dabei aber alle anderen Einträge rauslöscht.

Code:

<?
$winnername="hetfield"; //kommt von Flash zurück
$winnercredits=998; //kommt von Flash zurück

$fp = fopen("data.txt","r");
while($data = fgets($fp,1024)){ // zeile für zeile einlesen
$data = explode(";",$data); // jede zeile aufsplitten
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern
}
fclose($fp);

arsort($hitlist);
$eintraege=count($hitlist); // max.10 Einträge erlauben
if ($eintraege<10) { // letzten Eintrag nicht abspalten, sondern nur holen
end($hitlist); // letzter Eintrag selektieren
list($key_min,$min)=each($hitlist); // Credits holen, bleibt aber im Array erhalten
}
else {
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert)
}

if ($winnercredits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben
$fp=fopen("data.txt","w");
while (list ($key, $val) = each ($hitlist)) {
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben
}
fputs($fp,$winnername.";".$winnercredits."\n"); // und dann den neuen Eintrag am Ende anhängen
fclose($fp);
}
?>

Data.txt:
Erich;150
Hoschi;700
Martin;614
Thomas;592
Richi;397
Alex;541

Wir haben die Funktion erweitert für den Fall dass nicht 10 Einträge vorhanden sind. Dann soll php nämlich nicht den letzten rauslöschen, sondern den neuen Eintrag nur hinzufügen. Du erinnerst dich??
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #11 (permalink)  
Alt 26-07-2001, 08:41
BrainBug
 PHP Senior
Links : Onlinestatus : BrainBug ist offline
Registriert seit: Mar 2001
Ort: Raum Frankfurt
Beiträge: 1.110
BrainBug ist zur Zeit noch ein unbeschriebenes Blatt
Standard jetzt aber...

Code:
<? 
$winnername="hetfield"; //kommt von Flash zurück 
$winnercredits=998; //kommt von Flash zurück 

$fp = fopen("data.txt","r"); 
while($data = fgets($fp,1024)){ // zeile für zeile einlesen 
$data = explode(";",$data); // jede zeile aufsplitten 
$hitlist[$data[0]] = trim($data[1]); // ein array erzeugen mit allen spielern 
} 
fclose($fp); 

arsort($hitlist); 
$eintraege=count($hitlist); // max.10 Einträge erlauben 
if ($eintraege<10) { // letzten Eintrag nicht abspalten, sondern nur holen 
end($hitlist); // letzter Eintrag selektieren 
list($key_min,$min)=each($hitlist); // Credits holen, bleibt aber im Array erhalten 
} 
else { 
$min=array_pop($hitlist); // letzten Array-Eintrag (kleinster Credits-Wert) 
} 

reset($hitlist);  // damit Array-Zeiger nicht auf letztem Eintrag steht -> dann würde nämlich nix in der while-Schleife rausgeschrieben werden ;-)

if ($winnercredits>$min) { // wenn übergebener Wert größer als Min-Wert dann Eintrag schreiben 
$fp=fopen("data.txt","w"); 
while (list ($key, $val) = each ($hitlist)) { 
fputs($fp,$key.";".$val."\n"); // vorher alle restlichen Einträge schreiben 
} 
fputs($fp,$winnername.";".$winnercredits."\n"); // und dann den neuen Eintrag am Ende anhängen 
fclose($fp); 
} 
?>
Mit Zitat antworten
  #12 (permalink)  
Alt 26-07-2001, 16:31
Metallica
 PHP Expert
Links : Onlinestatus : Metallica ist offline
Registriert seit: Jun 2001
Ort: 20cm vorm Monitor
Beiträge: 2.037
Metallica ist zur Zeit noch ein unbeschriebenes Blatt
Standard da wäre ich sicher NIE draufgekommen...

BrainBug, mir fehlen echt die Worte. Es funkt!!!!!

Kann ich mich irgendwie revanchieren??
__________________
$PHP resource 4ever$
Mit Zitat antworten
  #13 (permalink)  
Alt 27-07-2001, 07:47
BrainBug
 PHP Senior
Links : Onlinestatus : BrainBug ist offline
Registriert seit: Mar 2001
Ort: Raum Frankfurt
Beiträge: 1.110
BrainBug ist zur Zeit noch ein unbeschriebenes Blatt
Standard Preise den Herrn

Lobe das Forum, ehre den Code, schwöre deine ewige Treue.
Wäre für den Anfang mal ganz okay...

Bin ja auch zufrieden, wenn's geklappt hat. Und nun hoffe ich, deinen Namen nieeee wieder lesen zu müssen

Bis dann...
Mit Zitat antworten
  #14 (permalink)  
Alt 01-09-2001, 16:42
Terminator
 Newbie
Links : Onlinestatus : Terminator ist offline
Registriert seit: Sep 2001
Beiträge: 25
Terminator ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Metallica, ich hab dein Skript ausprobiert, bei mir klappt es nicht
Schikcst du es mir bitte mal, vielleciht hab ich da einen Fehler reingebaut
Tribok@gmx.de
Danke Terminator
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:32 Uhr.