php mehr als nur ein eintrag...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dimaster

Betreff: php mehr als nur ein eintrag...

BeitragDo, Aug 04, 2005 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo zusammen,
ich hab mal n bischen mit php rumprobiert. ich möchte eine serverliste erstellen bei der jeder neue server eingetragen wird... in bb is das auch net schwer aber da ich praktisch kein php kann weiss ich nicht wie ich denn php code ändern soll
hier mal der code:
Code: [AUSKLAPPEN]

<?php
define( 'SCORE_FILE', 'ip_host.html' );

$name  = $_GET[ "name" ];
$ip = $_GET[ "ip" ];

if ( !isset( $name ) || !isset( $ip ) )
        die( "IP wird automatisch gespeichert" );

if ( file_exists( SCORE_FILE ) )
        $file = fopen( SCORE_FILE, "w" );
else
        $file = fopen( SCORE_FILE, "a" );

fwrite( $file, "$name $ip" );
fclose( $file );

echo "Erfolgreich gespeichert...";
?>

mfg dimaster

P.S. hab die suche schon benutzt aber nichts gefunden!!!

Ctuchik

BeitragDo, Aug 04, 2005 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn dir mysql zur verfügung steht dann würde ich das benutzen, das erleichtert meiner Meinung nach sehr vieles.
Zum Problem: Wenn ich es richtig verstehe überschreibt er immer die vorherigen Daten wenn er einen neuen Server hinzufügt, richtig?
EDIT: Halt ich nehm alles zurück, es müsste eigentlich funktionieren wenn du die if-Abfrage mit file exists rausnimmst und die Datei mit fopen(SCORE_FILE,"a"); öffnest.
Siehe dazu: http://www.php.net/fopen
Du benutzt nämlich wenn file_exists true ist den Parameter "w", d.h. er überschreibt die Datei quasi.
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

dimaster

BeitragDo, Aug 04, 2005 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
danke Very Happy ez gehts

dimaster

BeitragDo, Aug 04, 2005 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
nun noch ne ganz dumme frage.... also wie mach ich dass die ips nicht neben einander geschrieben sondern untereinander?
Code: [AUSKLAPPEN]

<?php
define( 'SCORE_FILE', 'ip_host.html' );

$name  = $_GET[ "name" ];
$ip = $_GET[ "ip" ];

if ( !isset( $name ) || !isset( $ip ) )
        die( "IP wird automatisch gespeichert" );

if ( file_exists( SCORE_FILE ) )

        $file = fopen( SCORE_FILE, "a" );

fwrite( $file, "$name $ip" );
fclose( $file );

echo "Erfolgreich gespeichert...";
?>

bruZard

BeitragDo, Aug 04, 2005 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
fwrite( $file, "$name $ip\n" );


Hänge einfach ein \n hinter den Teil des Strings an dem eine neue Zeile begonnen werden soll.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

dimaster

BeitragDo, Aug 04, 2005 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
mann bin ich dumm Embarassed das is ja wie in c warum bin ich nich selber drauf gekommen danke

dimaster

BeitragFr, Aug 05, 2005 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo da bin ich nochmal mit noch ner dümmeren frage hab in php tutorials etc nach geschaut aber nichts gefunden
code:
Code: [AUSKLAPPEN]

<?php
define( 'SCORE_FILE', 'ip_host.html' );

$name  = $_GET[ "name" ];
$ip = $_GET[ "ip" ];

if ( !isset( $name ) || !isset( $ip ) )
        die( "IP wird automatisch gespeichert" );

if ( file_exists( SCORE_FILE ) )

        $file = fopen( SCORE_FILE, "a" );

fwrite( $file, "$name $ip\n" );
fclose( $file );

echo "Erfolgreich gespeichert...";
?>


wie kann ich machen wenn der server geschlossen wir wird er gelöst wie es in bb geht weiss ich aber wie gehts in php?sorry für die dummen fragen

mfg dimaster

Ctuchik

BeitragFr, Aug 05, 2005 18:54
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]



Erklärung:
mit $daten = file(SCORE_FILE) wird die Datei zeilenweise in einen Array eingelesen.
Danach wird sie zum schreiben mit "w" geöffnet, also überschrieben.
Jetzt werden die Daten in einer Schleife durchgegangen (count($daten) gibt die Anzahl der Einträge im Array $daten zurück)
$serverinfo = explode(" ",$daten[$i]) splittet den String auf mit einem Leerzeichen als Trennzeichen. In $serverinfo[0] ist also jetzt der Name und in $serverinfo[1] die Ip des jeweiligen Servers.
Dann wird nur noch überprüft ob die Ip ungleich der zu löschenden ip ist und dann der Server wieder in die Datei geschrieben.

Am Ende haben wir also alle Server wieder hineingeschrieben, bis auf den den wir löschen wollten.

Noch was: Ich benutze zum Zeilenumbruch immer \r\n, ob das einen Unterschied zu nur \n amcht weiss ich nicht, glaube aber mal gelesen zu haben, dass Windowsdateien das \r brauchen.

MfG Ctuchik
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

bruZard

BeitragFr, Aug 05, 2005 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Programm muss einen sogenannten Query an den Server schicken. Dieser sagt dass das Programm geschlossen wird. Das heisst für das PHP Script: "Lösche den Server aus der Liste" ... nun ist die Aufgabenstellung das in einem Textfile zu lösen wesentlich komplexer als ein einzeiliger Aufruf in einer Datenbankabfrage.

Du solltest Dich wirklich zunächst stärker mit PHP befassen, dann ein wenig über MySQL Datenbanken lernen und dann erst versuchen das Ganze in BB anzuwenden.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Ctuchik

BeitragSa, Aug 06, 2005 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei meinem Code bin ich natürlich dvon ausgegangen, dass der Server dem PHp-Script meldet, dass er geschlossen wird.
Wenn der Server allerdings abstürzt ergeben sich Probleme. Daher wäre es vielleicht ganz praktisch, dass der Server alle 2 Minuten oder so dem Script melden muss dass er noch existiert, sonst wird er gelöscht.
@bruzard: MySQL ist natürlihc viel leichter aber vielleicht unterstützt das sein Webspace nicht!
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle!
Fraget euren Arzt oder Apotheker!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group