Hallo Leute,
habe das Forum / die Community hier grade zufällig bei meiner Suche gefunden und war mit den Antworten immer soweit zufrieden, daher dachte ich es wird mal Zeit für mich hier reinzuschauen. Daher an dieser Stelle ein freundliches Hallo :-).
Zu meinem Problem. (das mich inzwischen verzweifeln lässt
)
Ich habe eine eigene Session Verwaltung. Diese beinhaltet eine Funktion, die eine Variable entweder hinzufügt oder - wenn bereits vorhanden - ersetzt. Das ganze läuft mittels str_replace() .
Soweit funktioniert das auch wunderbar. Regelmäßig kommt es jedoch zu Fehlern beim schreiben... Bisher ohne exaktes (von mir identifizierbares) Muster für den Fehler.
Was jedoch klar ist - es tritt quasi immer dann auf wenn ich die aktuelle Adresse als Session speichere. Also wenn z.B. die alte Variable durch die neue ersetzt werden soll:
# ist dabei die Begrenzung
: die Trennung zwischen Variable (var) und Wert (value)
Rauskommen tut dabei dann z.B. sowas:
Wobei die cc=1 eigentlich noch in die Variable mit reingehören würden. Eigentlich natürlich nur einmal. Das ganze ist ein Output nach mehrfachem Neuladen ...
Die Funktion dazu ist die folgende:
Hat irgend jemand eine Idee, warum der Probleme dabei hat den alten durch den neuen zu ersetzen - und das obwohl nach dem exakten alten String in der Datei gesucht wird?
Ach ja. Das erste schreiben klappt auch immer problemlos. Sobald eine längere URL drinnen ist kommen die Probleme vor.
Ich habe auch schon versucht das ganze so weit umzuschreiben, dass die Infos nicht mehr wie aktuell in Reihe (also: #var1:value1#var2:value2#) sondern Zeilenweise geschrieben werden und dann nur die Zeile ersetzt werden muss. Aber auch das hat nicht zum Erfolg geführt.
Dabei kamen dann solche Dinge raus:
Alle Einträge die nicht mit einer Raute beginnen sind falsch und gehören eigentlich zum Eintrag urlAtiveEncode
Wäre super wenn jemand eine Idee dazu hat...
Habt Dank und einen schönen Abend :-).
Viele Grüße,
Jonas
habe das Forum / die Community hier grade zufällig bei meiner Suche gefunden und war mit den Antworten immer soweit zufrieden, daher dachte ich es wird mal Zeit für mich hier reinzuschauen. Daher an dieser Stelle ein freundliches Hallo :-).
Zu meinem Problem. (das mich inzwischen verzweifeln lässt
![Wink](https://www.php-resource.de/forum/core/images/smilies/wink.gif)
Ich habe eine eigene Session Verwaltung. Diese beinhaltet eine Funktion, die eine Variable entweder hinzufügt oder - wenn bereits vorhanden - ersetzt. Das ganze läuft mittels str_replace() .
Soweit funktioniert das auch wunderbar. Regelmäßig kommt es jedoch zu Fehlern beim schreiben... Bisher ohne exaktes (von mir identifizierbares) Muster für den Fehler.
Was jedoch klar ist - es tritt quasi immer dann auf wenn ich die aktuelle Adresse als Session speichere. Also wenn z.B. die alte Variable durch die neue ersetzt werden soll:
Code:
old: #urlActiveEncode:from=http%3A%2F%2Fwameo-test-domain.dev%2Flist.php%3Fcatid%3D3# new: #urlActiveEncode:from=http%3A%2F%2Fwameo-test-domain.dev%2F#
: die Trennung zwischen Variable (var) und Wert (value)
Rauskommen tut dabei dann z.B. sowas:
Code:
#urlActiveEncode:from=http%3A%2F%2Fdomain.dev%2F%3Fcc%3D1%26cc%3D1#cc=1&cc=1#cc=1#
Die Funktion dazu ist die folgende:
PHP-Code:
function sess_varUpdate($var,$value){
global $sess_var;
$content = file_get_contents("sessions/".$sess_var[sess_id].".info");
$string_old = "#".$var.":".$sess_var[$var]."#";
$string_new = "#".$var.":".$value."#";
echo "old: ".$string_old."<br>new: ".$string_new."<br>";
$content = str_replace($string_old,$string_new,$content);
//echo "Inhalt - ".$content."<br><br>";
$fp = fopen("sessions/".$sess_var[sess_id].".info", "r+");
rewind($fp);
fwrite($fp,$content);
fclose($fp);
$sess_var[$var] = $value;
}
Ach ja. Das erste schreiben klappt auch immer problemlos. Sobald eine längere URL drinnen ist kommen die Probleme vor.
Ich habe auch schon versucht das ganze so weit umzuschreiben, dass die Infos nicht mehr wie aktuell in Reihe (also: #var1:value1#var2:value2#) sondern Zeilenweise geschrieben werden und dann nur die Zeile ersetzt werden muss. Aber auch das hat nicht zum Erfolg geführt.
Dabei kamen dann solche Dinge raus:
Code:
#urlActiveEncode:from=http%3A%2F%2Fwameo-test-domain.dev%2Fandrease.htm c%3D1 D1 #count[106]:1 3D1 D1 #count[86]:1
Wäre super wenn jemand eine Idee dazu hat...
Habt Dank und einen schönen Abend :-).
Viele Grüße,
Jonas
Kommentar