wo liegt der Fehler ?

ObScUrItAs

Mitglied
Ich will einen Wert aus einer RegBinary mit einem C-Programm auslesen und mittels $HTTP_GET_VARS an eine PHP-Seite übergeben. In der RegBinary steht das :
ä¤p¥‚ÄÏõÀ5D+]

als Hex sieht das ganze so aus :
15 e4 a4 70 a5 la 82 c4 cf f5 c0 04 35 44 2b 5d

Wenn ich den Wert mit dem C-Programm aus der RegBinary auslese und mit fopen("", wb) in eine Datei schreibe steht genau das:

ä¤p¥‚ÄÏõÀ5D+]

in der Datei. Wenn ich das Zeug an eine PHP-Seite übergebe mit :
Code:
strcat(adresse, "http://bsp.de/index.php?var=");
strcat(adresse, toll);
ShellExecute(NULL, "open", adresse, NULL, NULL, SW_SHOW);
( toll ist hierbei der String, in den ich den Wert aus der Binary reinschreibe )
dann steht die Variable auch in der Adresszeile, aber es ist ein komischer Mix aus den Zeichen und dem Hex-Code und zwar sieht das Ganze dann so aus :

Code:
http://bsp.de//index.php?var=%15%C3%A4%C2%A4p%C2%A5%1A%C2%82%C3%84%C3%8F%C3%B5%C3%80%045D+]

und wenn das PHP-Skript dann mit HTTP_GET_VARS und fopen("datei.txt", wb); die Variable in die Datei schreiben soll und ich die Dartei öffne, steht das drinne :
ä¤p¥‚ÄÏõÀ5D ]

sieht ähnlich aus wie die Urpsprungsvariable aber ein paar Zeichen lässt es einfach weg. Woran liegt das ?

wenn ich aber in das C-Programm noch den String adresse in eine Datei schreibe und die Datei öfnne steht aber da :
Code:
http://bsp.de/index.php?var=ä¤p¥‚ÄÏõÀ5D+]
Also die Ursprungsvariable als var. Wo liegt also das Problem ?
 
Meinst Du es ist besser, wenn Du das öfter postest? Oder kannst Du mit meiner Antwort nichts anfangen?
 
Zum ersten Teil deiner Frage : Ja, ich denke die Chance, eine Antwort zu erhalten, die mir etwas bringt, liegt höher, wenn ich es mehrmals poste. Aber ich sehe auch, dass du kein besonders aufmerksamer Leser bist, weil in diesem Post mehr Informationen zu meinem Problem enthalten sind als bei dem letzten Post. Es ist nicht der gleiche Post, sieht nur ähnlich aus.

Zum zweiten Teil deiner Frage : Ich bin zwar dankbar für die Antworten, aber sie funktionieren kein Bisschen. Die Idee mit dem Umwandeln in Hex ist alt, fragt sich nur wie man das machen soll ... Das mit den Hochkommata funktioniert genauso wenig.


Und was soll ich deiner Meinung nach tun ? Einfach sagen : ok, den post habe ich gemacht, die Antworten waren unbrauchbar, vergess ichs einfach...
So leicht gebe ich nicht auf.

Es ist btw nicht nur das +. Das war ein Beispiel für einen Fehler beim Übertragen. Ich will doch nicht nur den Wert einlesen. Ich habe es auch mit anderen Werten probiert, überall kommen so kleine Drecksfehler vor, da fehlt mal ein +, dann eine Leerstelle, dann mal ein Punkt. Aber ein RegBinary-Wert, in dem einfach mal so ein Zeichen fehlt ist absolut nichts wert ... Also wie kann ich den Wert fehlerfrei an mein PHP-Script übertragen und dieses wiederum den fehlerfreien Wert fehlerfrei in eine Datei reinschreiben ?
 
Hab den andern Thread nicht gelesen, aber das Problem ist einfach zu lösen:

Wandel den Inhalt in einen Hex-String um. Alles andere geht fürchterlich in die Hose, Sonderzeichen werden weggelassen oder in die %xx-Codes umgewandelt.
In Hex hast du es ja schon irgendwie umgewandelt, das ganze in einen String packen "15e4a470a5la82c4cff5c00435442b5d" und den an die URL anhängen (ohne Anführungszeichen latürnich).
Das PHP-Script wandelt das zurück und schreibts in die Datei. Fettich.

Ach so, ja: Fehler an sich ist es keiner, nur sind URLs einfach nicht dazu geschaffen, volle 8bit zu übertragen. Das Einzige, worauf man sich verlassen kann, sind im Grunde alphanumerische Zeichen (Zahlen, Buchstaben) und ein paar andere (Punkte, Striche, Slashes). Ausserdem gibt's dann noch Unterschiede von Browser zu Browser (sag ich jetzt mal so), was die restlichen Zeichen betrifft.
 
Zuletzt bearbeitet:
Hy!

z.B. So:
Code:
char hexString[4];
int zeichen;
for( zeichen = 0; toll[zeichen] != 0; zeichen++) {
  sprintf( hexString, "%x", toll[zeichen]);
  strcat( adresse, hexString);
}

Die Variablen sind dieselben als bei deinem Beispiel.

mfg
uhu01
 
@ObScUrItAs: Ich denke, die Idee mit dem in Hex umwandeln ist alt und mein Vorschlag funktioniert nicht? Wie kannst Du das wissen, wenn Du nicht mal weißt, wie man ein Zeichen in seinen Hex-Wert umwandelt? Verstehe mich nicht falsch, ich mache dir bestimmt keinen Vorwurf, daß Du das nicht weißt, ich bin mir sicher, daß Du z.B. über PHP mehr weißt als ich, da ich das nur dem Namen nach kenne. In C/C++ kenne ich mich allerdings gut genug aus.
Zum Thema:
Ich habe auch nichts Anderes vorgeschlagen als Endurion. Nur daß ich mir eben nicht sicher bin, ob es so geht, wie es Uhu1 geschrieben hat. Ich habe das nämlich auch mal probeweise gemacht (bevor ich gepostet habe) un da fiel mir auf, daß die erhaltenen Hex-Werte andere waren, als die automatisch umgewandelten in Deinem String und ich nicht weiß, was ein PHP-Skript an Werten erwartet, und in welchem Format. Daher der Satz, ich wisse nicht, wo Du die korrekten Hex-Werte herbekommen kannst. Wenn es allerdings so klappt, wie Endurion geschrieben hat, daß Du die Hex-Werte aus der Registry nimmst und sie einfach hintereinanderhängst, dann ist ja alles in Ordnung.
 
Zuletzt bearbeitet:
Zurück