Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP - Globale Variable verändert sich selber

Frage Entwicklung PHP

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

06.04.2006, aktualisiert 20:39 Uhr, 4557 Aufrufe, 4 Kommentare

Guten Morgen,

ich habe gerade einen Administrationsbereich kontrolliert. Dieser ist in PHP geschrieben. Soweit geht auch alles. Bloß bei der Benutzerverwaltung sah ich was außergewöhliches. Wir arbeiten hier mit globalen Variablen (betrifft nur Intranet!!).

Ich habe eine normale Seite. Dort habe ich einen Link.
01.
echo "<a href='modules.php?modul=test&user=$row->benutzer>TEST'</a>";
Der Benutzername wird vorher aus einer Tabelle (MySQL) herausgeholt. Der Benutzername ist gleich dem Windowslogonname(z.B. DOMÄNE\BENUTZERNAME ->sollte nur einen Backslash sein). Wenn ich nun den IE oder Firefox öffne und nur über den Link fahre, steht unten in der Statusleiste alles korrekt drinne:

01.
http://www.www.de/modules.php?modul=test&user=TEST\geht.nicht //<b>(hier auch nur 1 Backslash!!!)</b>
Klicke ich nun auf den Link, komme ich auf eine neue Seite. Dort gebe nur die Variable $user aus:
01.
echo $user;
Ergebnis:
01.
TEST\\geht.nicht //<b>Hier sind es 2 Backslashe!!</b>
Jetzt stellt sich bei mir die Frage, wo her der 2. Backslash kommt. Ich ändere ja nichts an der Variable. Kann mir von euch jemand sagen woher das kommt und wie das Problem beseitigen kann.



Gruß
Dani
Mitglied: Schrottie
06.04.2006 um 08:55 Uhr
in PHP wird der \ dafür sorgen das gesonderte Befehle ausgeführt werden aber auch um andere auserkraft zu setzten so bewirkt \$test das nicht der Inhalt von $test ausgegeben wird sonder der name $test. So musst du ja auch für " in einem echo-Satzt ja auch mit einem \ beginnen.

Worauf ich aber hinaus will ist, dass die verdopplung des \ als schutzfunktion gilt, da ja normalerweise das \ vor einem Sonderbefehl steht.

ICh hoffe man kein mein wirsches Zeug lesen. Ist halt noch früh *g*

Wie du das Problem jetzt lösen kannst weis ich nicht. Das einzige was mir spontaneinfält, was abernicht astrein ist, ändere das \ durch einanderes Sonderzeichen oder besser 2 und ersetzte sie auf der nächsten seite, vor dem weiterverarbeiten, durch ein \

Schrottie
Bitte warten ..
Mitglied: 25768
06.04.2006 um 13:26 Uhr
Hallo,

ja PHP escaped den \ durch einen weiteren \ . Danach gibt er jedoch alle 2 aus.
Aus dem Stegreif heraus, fällt mir gerade keine Lösung zum eigentlichen Problem ein.

Jedoch könntest du die PHP String Funktionen benutzen :
http://de2.php.net/manual/de/function.str-replace.php
also

str_replace("\\","\",$username);

Und danach eben ausgeben

Gruß
Andi
Bitte warten ..
Mitglied: Dani
06.04.2006 um 13:34 Uhr
Hi hier 2,
Des ist mir schon bewusst, dass es so dargestellt wird. Mit der str_replace Funktion habe ichs ai schon probiert. Aber irgendwie sind es immer mehr geworden -> Backslashes!!!

Ich habe es nun so gemacht, dass der Backslash durch §§ ersetzt werden. Danke @all.


Gruß
Dani
Bitte warten ..
Mitglied: Freak2k
06.04.2006 um 20:39 Uhr
das dürfte wohl etwas einfacher...

echo '<a href="modules.php?modul=test&user=',$row->benutzer,'">TEST</a>';
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

JavaScript
Übergabe einer php-Variable an JS

Frage von Rabauke84 zum Thema JavaScript ...

PHP
gelöst PHP - Variable in anderes PHP-Skript mitgeben (3)

Frage von Jens4ever zum Thema PHP ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...