PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme mit string variable ...


tiggerle
23.05.2007, 20:18:20
hach leute, ich habe heute schon STUNDEN mit diesem problem verbracht, nun poste ich erstmals in dieses forum.

worum geht es?
ich habe ein skript erstellt, das recht gut funktioniert.
der letzte notwendige schliff wäre noch, dass man einen parameter dynamisch übergibt.
dieser wird zB über GETS_ dann im skript weiter verwendet.

Wo ist das problem?

als ich die veriable noch direkt eingebaut hatte, ging alles wunderbar, sah so aus:
$path="verzeichnis/"

wenn ich sie nun "ersetzte", funktioniert das skript nicht mehr.
gibt man innerhalb des skriptes aber die variable aus (echo, var_dump,...) scheint diese dynamische varible aber vollkommen ident ... aber eben nur schein - irgendetwas muss anders sein!!!

dabei ist es offenbar vollkommen egal, was ich mit dieser bergebenen variable mache.

ich schildere hier einfach mal alle fehlgeschlagenen, was ich schon durchprobeirt habe, als ich die fixe bezeichnung von "verzeichnis/" auf $input ändern wollte ....

1) $path=$input."/"; (mein erster vorschlag)
2) $path="$input/"
3) $path=$input (und die variable gleich direkt mit / übergeben)
4) variablen verglichen, mit echo und var_dump ---> scheinen ident
5) settype verwendet (string)
6) verschiedene sachen wie htmlentities(), trim() angewendet
7) $input in ein array gepackt und wieder retour zu einem string
...

mehr fällt mir nicht mehr ein ... hat jemande eine gute idee, woran es liegt? hab schon so lang gesucht und nix gefunden ...

danke!

lg, matthias

Heinrich
23.05.2007, 21:24:44
Zeig mal bisserl mehr.....

lukgestach
23.05.2007, 21:37:09
Hallo
Du willst der Variabel $path den Wert der Variabel $input mit einem Schrägstrich übergeben? Habe ich das richtig verstanden?
Und sonst zeig doch mal ein bisschen mehr!

Gruss Lukas

tiggerle
23.05.2007, 21:38:01
da gibt es nicht viel zum herzeigen, das restliche script ist vollkommen irrelevant.
obwohl ich nun schon mehrere jahre das eine oder andere rumprogrammiert habe in php, fühl ich mich grade wieder wie ein blutigster anfänger *gg*

importiert wird die variable mit

$input=trim($_GET['input']);

mehr gibts nicht mehr zu sagen ...
achja, und utf8_encode/decode bringt auch nix.
und wie gesagt ist es egal, ob ich die variable schon mit bindestrich übergebe oder diesen danach dazukleistere.

der springende punkt ist einfach: die variable schein "anders" zu sein, obowhl sie

a) mit echo gleich aussieht
b) mit var_dump gleich aussieht
c) auch nach verschiedenen umformatierungen "anders" bleibt.


und sagt mir nicht, der hund liegt später im skript, weil das kann nicht sein ;)

Raketenmann
24.05.2007, 10:52:32
als ich die veriable noch direkt eingebaut hatte, ging alles wunderbar, sah so aus:
$path="verzeichnis/"

wenn ich sie nun "ersetzte", funktioniert das skript nicht mehr.


Was genau ging denn zuerst und dann nicht mehr?
- Eine Aktion an $path selbst, wie anlegen, umbenennen, löschen etc...?
- Eine Aktion an einer Datei in $path o.ä.?

So richtig mysteriös ist es ja schließlich nicht, einen Schrägstrich an einen String anzuhängen, da liegt die Vermutung schon nahe, dass "der Hund" woanders herumliegt.

Kommt da irgendeine Fehlermeldung?
Vielleicht kannst was aufschlussreiches erzeugen, wenn du in der php.ini die Ausgabe von "Notice"-Meldungen bei 'error_reporting' mit einschließt.

tiggerle
25.05.2007, 15:04:20
hach ... vielleicht hätte ich diese frage nicht unter "anfänger" posten sollen ...
auf die php.ini hab ich leider keinen zugriff.

und das skript nachher generiert eine diashow ... also geht sowohl um lesen als auch schreiben. aber fehlermeldung kommt keine;

wie gesagt, meine frage lautet: hat jemand gute tipps/ideen, was ich bei der kodierung einer variable noch ändern könnte?

meiner meinung nach muss da der hund begraben liegen.

weil wenn ich meine variable direkt definiere mittels
$path="verzeichnis/" geht ja alles,

übergebe ich sie mit ?input=verzeichnis/
auf
$path = $input

scheint sie gleich zu sein, sieht offenbar bei der ausgabe gleich aus ... aber alles geht trotzdem nicht mehr. keine fehlermeldungen ... und fehlerzeile hab ich auch schon schritt für schritt gesucht .. es liegt irgendwie an der variablen.

xabbuh
25.05.2007, 15:30:11
Werte, die du als URL-Parameter übergibst, solltest du soweit möglich, immer durch urlencode() (http://de.php.net/manual/en/function.urlencode.php) jagen.

tiggerle
25.05.2007, 16:45:26
ah, gut dass wir davon reden *gg*
weil daran hatte ich auch schon gedacht und damit rumexperimentiert. ich versteh nur ehrlich gesagt nicht, was das macht. wenn ich

$beispiel= "beispiel";
und echo urlencode($beispiel);

dann ergibt das genau "beispiel" ... hmhm .. und was bringt das nun? oder funktioniert das was nicht bei php --.- ich dachte, das wäre dann codiert?

außedem habe ich die variablen auch direkt in die adresszeile reingetippt und so übergeben

xabbuh
26.05.2007, 08:33:42
Wenn ich dich richtig verstanden habe, war dein Problem der in der Zeichenkette enthaltene Slash. Dann solltest du zum Testen natürlich auch mal einen Slash in die Beispielvariable packen.

tiggerle
26.05.2007, 09:40:16
nein, da hast du mich nicht richtig verstanden. ich habe beide varianten ausprobiert. variable mit slash übergeben oder slash nachher intern anhängen.

trotzdem: passt mein ergebnis von "urlencode"?

tiggerle
26.05.2007, 11:33:27
GESCHAFFT!!

natürlich lag der fehler NICHT direkt bei der variable, sondern woanders ... das recht lange script hat mehrere schleifen und da ging eine variable verloren, wodurch dann immer nur der slash da war und nie die variable dazu ;-)