Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Falsche Ausgabe der Variablen oder Echo

Frage Entwicklung PHP

Mitglied: fachinformatiker

fachinformatiker (Level 1) - Jetzt verbinden

22.05.2007, aktualisiert 04.06.2007, 3706 Aufrufe, 4 Kommentare

Hallo Administratoren und erfahrene Programmierer,
Ich habe gerade ein sehr seltsames Problem:

ich möchte einfach einen String mit Variablen zurückgeben, der Source:
01.
echo "<a href='$PHP_SELF?sort=n"
02.
if (isset($who)) 
03.
{echo "&who=$who";} 
04.
if (isset($suche)) 
05.
06.
echo"&suche='$suche'"
07.
echo "&nachname='$nachname'"
08.
echo"&Vorname='$Vorname'";
Ich bekomme als Ausgabe aber zurück:
01.
<a href="/htmlneu/intranet/intern/kontakt.php?sort=n&amp;who=p&amp;suche=" 1="" &vorname=""
Zur weiteren Fehlersuche: $suche ist hier auch "1"(ohne Anführungszeichen).

Seit einigen Stunden quälen mich die Fragen:
Wo ist der Nachname ? (Ist in diesem Fall auch ein Leerstring)
Und warum gibt er mir soviel zurück, was ich nicht geschrieben habe wie &amp; ? Und warum steht vor suche kein & ?

Ich verstehe diese Rückgabewerte von PHP in diesem Fall überhaupt gar nicht, aber deswegen habe ich gerade große Probleme, kann mir hier jemand helfen ? Wäre sehr nett.

Mit freundlichen Grüßen,
fachinformatiker
Mitglied: AndreasHoster
22.05.2007 um 16:32 Uhr
Ich kann zwar kein PHP, aber wenn man HTML kennt, weiß man, daß &amp; das Kürzel für ein & (im englischen Ampersand genannt) ist.
Damit kann ich nur Schlußfolgern, daß PHP in HTML Syntax nicht erlaubte Zeichen umkodiert also & -> &amp;
Soviel zum Verstehen. Jetzt darfst Du suchen, wie man PHP von der automatischen Umkodierung abbringt.
Bitte warten ..
Mitglied: 48482
22.05.2007 um 21:30 Uhr
Hallo fachinformatiker,

das Problem sind die einfachen Anführungszeichen. Diese Zeichen ( ' ) haben, wie die doppelten Anführungszeichen, eine besondere Bedeutung in PHP.

Indem man diese Zeichen mit einem Backslash escaped, verhindert man dieses Verhalten, der Code müsste also korrekt so aussehen:

01.
echo "<a href=\'$PHP_SELF?sort=n"
02.
if (isset($who)) 
03.
{echo "&who=$who";} 
04.
if (isset($suche)) 
05.
06.
echo"&suche=\'$suche\'"
07.
echo "&nachname=\'$nachname\'"
08.
echo"&Vorname=\'$Vorname\'";
Mit freundlichen Grüßen,
Pixelwarp
Bitte warten ..
Mitglied: fachinformatiker
23.05.2007 um 11:55 Uhr
Also der neue Quelltext:
<source>
echo "<a href=\'$PHP_SELF?sort=n";
if (isset($who))
{echo "&who=$who";}
if (isset($suche))
{
echo"&suche=\'$suche\'";
echo "&nachname=\'$nachname\'";
echo"&Vorname=\'$Vorname\'";
</source>
Die neue Ausgabe:
<schnipp>
<a href="%5C%27/htmlneu/intranet/intern/kontakt.phpsort=n&amp;who=p&amp;suche=%5C%271%5C%27&amp;nachname=%5C%27%5C%27&amp;Vorname=%5C%27%5C%27&amp;
</schipp>
Die Gleichheitszeichen an den falschen Stellen sind weg, aber &amp; steht immernoch da und er scheind die ' und die \ mitsamt den Variableninhalten in einen Hexcode zu übersetzen. Das ist nicht das, was ich wollte.

Trotzdem Danke schonmal für die Hilfen an AndresHoster und Pixelwarp.


Wenn ich die ' wegmache, kommt übrigens in der Ausgabe auch das &amp; was gegen das Konvertieren meines eingegebenen Textes spricht. Aber so ist dann ansonsten die Ausgabe ganz OK (falls keiner die Variablen in der URL editiert...)

Ich finde das SEHR merkwürdig !

Hat noch jemand eine Idee ?
Bitte warten ..
Mitglied: ITApolda
04.06.2007 um 11:01 Uhr
Hallo.

Wenn du eine Variable an ein String anfügen willst so kannst du mit Punkten arbeiten.
Schau dir dazu mal folgenden Code an:

01.
$who = "wer"
02.
$suche = "1"
03.
$nachname = "nm"
04.
$Vorname = "vn"
05.
echo "<a href=\"$PHP_SELF?sort=n"
06.
if (isset($who)) 
07.
08.
	echo "&amp;who=".$who
09.
10.
if (isset($suche)) 
11.
12.
echo "&amp;suche=".$suche
13.
echo "&amp;nachname=".$nachname
14.
echo "&amp;Vorname=".$Vorname
15.
echo "\">Text</a>"
16.
}
Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Echo Ausgabe ohne Variablenauflösung (9)

Frage von bartek76 zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: ECHO ist ausgeschaltet (OFF) (3)

Frage von twiceface zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable aus Registrie mit varriabler Länger (4)

Frage von QandAt zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Windows 10
Windows 10 Ordnerfreigabe (18)

Frage von Xaero1982 zum Thema Windows 10 ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...