Problem mit explode

DivDax

Erfahrenes Mitglied
Hallo Gemeinde!

Ich habe ein kleines Problem. Ich steh infach aufm Schlauch. *g*

Ich habe eine Textdatei in der sich pro Zeile ein Datensatz befindet.
Das ganze ist wie folgt aufgebaut.

Code:
<USERNAME> <PASSWORD> <EMAIL> <USW>
Soweit so gut. Ich habe alle Daten eines Users in einem Array.
Folgendes Problem habe ich aber: Wird im Benutzernamen ein "<" oder ">" verwendet funktioniert das splitten nicht mehr.

Weiteres Problem ist, dass ich auf das Script keinen Einfuss habe, welches diese Textdatei erzeugt.


Hat jemand einen Vorschlag?


Gruß,
DivDax
 
Ja ne Datenbank ;)

Ich weiss nicht ob es so clever ist alle Daten in einer Textdatei zu speichern , und wenn du eh keinen Zugriff auf das Script hast kannst wohl nur beten das keiner mal auf die Idee kommt das < > zeichen einzubürgern in seinen Namen. Besser wären Trennzeichen die sehr sehr unwahrscheinlich sind wie |##| .

Des weiteren halte ich es für sehr unsicher sowas in einer Text Datei zu lagern , mit ein wenig Aufwand / Zeit findet einer eventuell die Textdatei und kann sie sich schön in Ruhe aufrufen lassen und hat alles was er benötigt.
Ich speicher mir Passwörter , Nutzernamen sofern es nur wenige sind in einen Array ab welches sich in einer seperaten PHP Datei befindet.User.inc.php zum Beispiel. Die kann man sich nur auslesen lassen wenn man ein Script direkt auf den Webspace auslagert ansonsten. Man könnte sie auch mit fopen normal öffnen nur wird man dann nix sehen im Gegensatz zu einer Textdatei.

Am sichersten wäre es immer noch in einer Datenbank.
 
Danke für den Hinweis bzgl. der Sicherheit, aber das ist mir bekannt und darum geht es auch nicht. ;)
Hat sonst jemand eine Idee, wie dies zu lösen wäre?
 
Wenn du nicht bestimmte Zeichen in den Werten verbietest, wirst du da nicht weiterkommen.
Ein Username a'la
Code:
Hans> <Wurst
würde dir die Sache unweigerlich zerbröseln...keine Chance mehr, an die korrekten Werte zu kommen :(

Wenn du wenigstens wüsstest, dass keine Leerzeichen erlaubt sind, könntest du anhand derer splitten und danach jeweils die erste und letzte Klammer aus den Werten entfernen.
 
Also wenn Du Zugriff auf die Eingaben hast und deren Verarbeitung dann kannst du mittels ASCII Codes schaun ob Sonderzeichen enthalten sind.

PHP:
   $eingabe ="Commander <Cool> ";
   $errors = 0;
   
   for ($i = 0 ; $i < strlen($eingabe) ; $i++){
     $buchstabe = htmlentities(substr($eingabe , $i , 1));
   	if($buchstabe == htmlspecialchars(chr(60)) || $buchstabe == htmlspecialchars(chr(62))){
   	  $errors++;
   	  break;
   	}
   }

chr(60) entspricht genau dem Zeichen < und chr(62) == >

Wenn Du keinerlei zugriffe auf das Script hast was mit den Eingaben rumspielt naja dann kannst dich nur daran machen das später manuell in der Textdatei zu editieren :(
 
Zuletzt bearbeitet:
Zurück