Komm mit Variablenübergabe (-übernahme) nich klar...

KnuddelBaer

Grünschnabel
Hi!

Ich übergebe in einer Seite mehrere Variablen per URL. Ungefär folgendermaßen:

PHP:
echo "<td><a href='formular.php?uNr=".$arr[0]."&uName=".$arr[1]."&uVorname=".$arr[2]."&uStrasse=".$arr[3]."&uOrt=".$arr[4]."'>Bearbeiten</a></td>";

Nun kommen die Var's auch im Link auf der anderen Seite an (sieht man ja in der URL). Das Problem hierbei besteht darin, das z.B. bei Strasse ein Lehrzeichen zwischen Strassenname und Hausnummer ist, welches wiederum bei der Übergabe durch '%20' ersetzt wird.
Auf der Seite sollen die Var-Werte nun in Formularfelder eingetragen werden, das klappt auch, nur eben werden die Var's mit den Lehrzeichen an dieser Stelle abgeschnitten werden. D.h. bei "Bahnhofstr. 15" erscheint im Feld nur "Bahnhofstr."

Ich weiß nicht weiter... Ich möchte gern wissen wie ich die Var's am günstigsten auslesen kann, bzw. übergeben kann.

Ich hatte probiert das komplette Array $arr folgendermaßen zu übergeben:

PHP:
echo "<td><a href='formular.php?uNr=".$arr.">Bearbeiten</a></td>"

Hatte es auch schon mit ".$arr[]." probiert, ging aber auch nicht. Was mache ich falsch?

Vielen Dank für Eure Hilfe!

MfG
KB
 
Zu dem Problem mit dem Leerzeichen hab ich spontan keine Lösung.
Aber wenn du ein ganzes Array weitergeben willst, dann dürfte dies nur mit Sessions möglich sein, es ist nicht per POST oder GET möglich.
Es sei denn man macht es so wie du und übergibt jeden Wert aus dem Array als einzelne Variable.
 
Nun gut, das mit dem Array ist auch nicht soooo schlimm, ob ich die Werte so übergebe oder nicht ist nicht so tragisch, wäre aber eben einfacher gewesen. ;)

Es muß doch aber irgendeine Möglichkeit geben an die übergebene URL zu kommen, oder?! Dann könnte man den Rest ja mit String-Operationen erledigen...

Auf der anderen Seite kommen die Daten aus einer Datenbank. Es würde also theoretisch auch reichen wenn ich die Nr übergebe und in dem Formular die Daten neu aus der DB hole. Aber wenn ich die Daten schon einmal aus der DB geholt habe möchte ich ungern nochmal eine DB-Abfrage machen?! Oder wäre dies eine bessere Lösung?

MfG
KB
 
Also ich würde dir empfehlen nur den Index(Nummer(ID)) der Daten in der Datenbank zu übergeben und dann die Daten nocheinmal auszulesen, das mit den Daten übergeben halte ich für recht sinnlos, wenn du es auch wieder auslesen kannst.
Es hat auch meiner Meinung nach keine merkbaren Einflüsse auf die Performance, wenn du diese ein zweites mal ausliesst,
allerhöchstens ein paar Milli/Nanosekunden ;) :-)
 
versuchs mal so:
PHP:
echo "<td><a href='formular.php?uNr=".base64_encode(implode("|", $arr));.">Bearbeiten</a></td>"

und da wo es ankommt musst du
PHP:
$arr = explode("|", base64_decode($_request['uNr']));
machen..
 
Vielen Dank für Eure Hilfe.

@chibisuke:
Die Sache mit der Übergabe des Array's funktioniert so wunderbar, aber die Lehrzeichen machen auf der anderen Seite immer noch die gleichen Probleme.

@Lars:
Die Lösung werde ich dann wahrscheinlich auch nutzen, aber trotzdem möchte ich unbedingt das Problem der Lehrzeichen in der Übergabe lösen... Es gibt sicher mal das Problem das man Lehrzeichen mit übergeben möchte.


Ich hätte ja evtl. auch einen Lösungsvorschlag zu machen:

Man wechselt vor der Übergabe der Variable das Lehrzeichen aus (z.B. durch ein '_' oder ähnliche Zeichen). Dann übergibt man die Variable und auf der anderen Seite tauscht man das Zeichen wieder aus...
Ich weiß nicht ob das eine praktikable Lösung ist, aber vielleicht kann mir einer der Experten ;) das mal sagen?!

MfG
KB
 
Ich würde sagen einfach nur unglücklich...

Es geht mit Sicherheit ohne große Probleme,
aber ob es wirklich Sinn hat, ist eine andere Frage...

Also, wer unbedingt seine Variablen mit Leerzeichen übergeben muss, kann durchaus mit solchen "Methoden" machen...
 
Das wäre ja zu einfach ;)

Hast du nicht auch diesen Spieltrieb ?!

Ich mein...wieso einfach, wenn es auch kompiliziert geht... ;D
 
Zurück