Ansicht:   

#197839

effeff

Ostfriesland,
11.03.2010, 10:06:55

PHP: Woher kommt einfaches Anführungszeichen? (pc.coding)

Hallo,

ich lasse mir mittels PHP aus einer MySQL-Datenbank einen String aus mehreren eMail-Adressen zusammenbasteln, der einen Mailto-Link generiert. Hält man den Mauszeiger über diesen Link, wird auch brav der erwartete Text angezeigt, also z. B.

mailto:irgendwas@irgendwer.de;nochwer@woanders.de;gibsnich@nieda.de

Wenn ich diesen Link nun anklicke und als eMail-Programm poppt nun z. B. Thunderbird (unter Windows 7) auf, habe ich in der Adresszeile plötzlich drinstehen:

mailto:irgendwas\'\'@irgendwer.de;nochwer@woanders.de;gibsnich@nieda.de

Beachtenswert sind die beiden einfachen Anführungszeichen vor dem ersten At-Zeichen. Woher kommen diese und wie kann ich sie verhindern?  :kratz:

--
Gruß,

ff

Möge TUX mit dir sein!

#197840

Jörg Lorenz zur Homepage von Jörg Lorenz

Berlin,
11.03.2010, 10:11:13

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

Moin,

> Beachtenswert sind die beiden einfachen Anführungszeichen vor dem ersten
> At-Zeichen. Woher kommen diese und wie kann ich sie verhindern?  :kratz:

kannst Du mal den Codeschnippsel posten? Seltsam ist das schon, ist mir noch nicht vorgekommen.

--
Viele Grüße

Jörg
[image]

VBA-Beispiele | Meine Fotosammlung | www.joerglorenz.de | Mail: nt@joerglorenz.de

#197843

effeff

Ostfriesland,
11.03.2010, 10:44:52

@ Jörg Lorenz

PHP: Woher kommt einfaches Anführungszeichen?

> kannst Du mal den Codeschnippsel posten? Seltsam ist das schon, ist mir
> noch nicht vorgekommen.

Im wesentlichen geht es hierum:

while ($datensatz=mysql_fetch_row($ergebnis))
{

if (!empty ($datensatz[11]))

$mailanalle=$datensatz[11].\";\".$mailanalle;

}

echo \"<a href=mailto:\".$mailanalle.\">eMail an alle Mannschaftsmitglieder</a>\\n\";

--
Gruß,

ff

Möge TUX mit dir sein!

#197847

Jörg Lorenz zur Homepage von Jörg Lorenz

Berlin,
11.03.2010, 11:14:18

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> $mailanalle=$datensatz[11].\";\".$mailanalle;
> }
> echo \"<a href=mailto:\".$mailanalle.\">eMail an alle
> Mannschaftsmitglieder</a>\\n\";

Seltsam - eigentlich kann ich mir nur vorstellen, dass da was in der DB hängt.
Sind die Gänsefüße im HTML-Quelltext auch nicht enthalten?

--
Viele Grüße

Jörg
[image]

VBA-Beispiele | Meine Fotosammlung | www.joerglorenz.de | Mail: nt@joerglorenz.de

#197853

effeff

Ostfriesland,
11.03.2010, 11:54:23

@ Jörg Lorenz

PHP: Woher kommt einfaches Anführungszeichen?

> Seltsam - eigentlich kann ich mir nur vorstellen, dass da was in der DB
> hängt.
> Sind die Gänsefüße im HTML-Quelltext auch nicht enthalten?

Nein,

im Quelltext stehen die einfachen Anführungszeichen nicht drin. Da steht sinngemäß:

<p><a href=mailto:irgendwas@irgendwer.de;nochwas@...;>eMail an alle Mannschaftsmitglieder</a>

Anscheinend hat Thunderbird da Probleme. Im MS Outlook habe ich das auch noch nicht bemerkt. Hm...  :kratz:

--
Gruß,

ff

Möge TUX mit dir sein!

#197855

Jörg Lorenz zur Homepage von Jörg Lorenz

Berlin,
11.03.2010, 12:14:32

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> <p><a href=mailto:irgendwas@irgendwer.de;nochwas@...;>eMail an alle
> Mannschaftsmitglieder</a>
>
> Anscheinend hat Thunderbird da Probleme. Im MS Outlook habe ich das auch
> noch nicht bemerkt. Hm...  :kratz:

Ist nur seltsam, dass es nur bei der einen Adresse auftritt. Es sieht aus, als ob da irgendwo ein leerer String enthalten ist oder die Adresse an dieser Stelle zusammengefügt wird, aber das kann es ja nicht sein.

htmlspecialchars_decode() & Co. kommt ja auch nicht in Frage.

Ich würde mal nur die eine Adresse ausgeben lassen und sehen, ob das Problem da auch auftritt.

--
Viele Grüße

Jörg
[image]

VBA-Beispiele | Meine Fotosammlung | www.joerglorenz.de | Mail: nt@joerglorenz.de

#197859

effeff

Ostfriesland,
11.03.2010, 12:27:20

@ Jörg Lorenz

PHP: Woher kommt einfaches Anführungszeichen?

> > <p><a href=mailto:irgendwas@irgendwer.de;nochwas@...;>eMail an alle
> > Mannschaftsmitglieder</a>
> >
> > Anscheinend hat Thunderbird da Probleme. Im MS Outlook habe ich das
> auch
> > noch nicht bemerkt. Hm...  :kratz:
>
> Ist nur seltsam, dass es nur bei der einen Adresse auftritt. Es sieht aus,
> als ob da irgendwo ein leerer String enthalten ist oder die Adresse an
> dieser Stelle zusammengefügt wird, aber das kann es ja nicht sein.
>
> htmlspecialchars_decode() & Co. kommt ja auch nicht in Frage.
>
> Ich würde mal nur die eine Adresse ausgeben lassen und sehen, ob das
> Problem da auch auftritt.

Hallo,

bei der Einzelausgabe passiert das nicht. Es ist auch egal, welche Adresse da angegeben wird. Es ist immer beim zusammenbasteln mehrerer eMail-Adressen und es ist egal, welche eMail-Adresse zuerst drin steht. Es ist immer bei der durch Semikolons getrennten Auflistung die erste Adresse und die beiden einfachen Anführungszeichen sind immer direkt vor dem At-Zeichen.

Tja, also ich bin ratlos...  :kratz:

--
Gruß,

ff

Möge TUX mit dir sein!

#197947

Johann [Gast]

11.03.2010, 16:28:14
(editiert von Johann, 11.03.2010, 16:29:54)

@ effeff

PHP: Woher kommt einfaches Anführungszeichen? (ed)

> echo \"<a href=mailto:\".$mailanalle.\">eMail an alle Mannschaftsmitglieder</a>\\n\";

Das kann auch nicht ordnungsgemäß funktionieren. Du hast nämlich nicht zuviele, sondern zuwenig Anführungszeichen.
Der href=... ist nicht umschlossen.

echo \"<a href=\\\"mailto:\".$mailanalle.\"\\\">eMail an alle Mannschaftsmitglieder</a>\\n\";

müsste klappen.
Auch beachten dass, wie Mudguard sagte, die Adressen per Komma separiert werden.

Gruß,
Johann

#197980

effeff

Ostfriesland,
11.03.2010, 18:50:29

@ Johann

PHP: Woher kommt einfaches Anführungszeichen?

> > echo \"<a href=mailto:\".$mailanalle.\">eMail an alle
> Mannschaftsmitglieder</a>\\n\";
>
> Das kann auch nicht ordnungsgemäß funktionieren. Du hast nämlich nicht
> zuviele, sondern zuwenig Anführungszeichen.
> Der href=... ist nicht umschlossen.
>
> echo \"<a href=\\\"mailto:\".$mailanalle.\"\\\">eMail an alle
> Mannschaftsmitglieder</a>\\n\";
>
> müsste klappen.
> Auch beachten dass, wie Mudguard sagte, die Adressen per Komma separiert
> werden.
>
> Gruß,
> Johann

Jepp,

den Tipp hatte d-fens ja bereits gegeben...  ;-)

--
Gruß,

ff

Möge TUX mit dir sein!

#197889

MudGuard zur Homepage von MudGuard

München,
11.03.2010, 13:54:07

@ Jörg Lorenz

PHP: Woher kommt einfaches Anführungszeichen?

> Ich würde mal nur die eine Adresse ausgeben lassen

es wird ja nur EINE Adresse ausgegeben, die allerdings fehlerhaft ist.

--
[image]
MudGuard
O-o-ostern

#197866

d-fens

Bonn,
11.03.2010, 12:34:53

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> im Quelltext stehen die einfachen Anführungszeichen nicht drin. Da steht
> sinngemäß:

Sinngemäß ist immer spaßig, wenn es um potentielle Syntaxfehler geht ...  ;-)

> <p><a href=mailto:irgendwas@irgendwer.de;nochwas@...;>eMail an alle
> Mannschaftsmitglieder</a>

Korrekt wäre:

<a href=\"mailto:irgendwas@irgendwer.de;nochwas@...\">eMail an alle Mannschaftsmitglieder</a>



Attributwerte gehören nun mal in Quotes, auch wenn es oft anders geht. Aber da steht ja noch das \"sinngemäß\" im Raum ...  :devil:

--
„Tu es oder tu es nicht! Es gibt kein Versuchen.“
(Jedi-Meister Yoda)

#197871

Jörg Lorenz zur Homepage von Jörg Lorenz

Berlin,
11.03.2010, 12:57:12

@ d-fens

PHP: Woher kommt einfaches Anführungszeichen?

> Attributwerte gehören nun mal in Quotes, auch wenn es oft anders geht.

Ja, und da das in bestimmten Fällen anders geht, war ich hier auch davon ausgegangen, dass sie nicht unbedingt erforderlich sind. Aber klar - das @ könnte für das Verhalten verantwortlich sein. Wieder was gelernt. Auch wenn ich nicht danach gefragt habe: Danke!

--
Viele Grüße

Jörg
[image]

VBA-Beispiele | Meine Fotosammlung | www.joerglorenz.de | Mail: nt@joerglorenz.de

#197874

effeff

Ostfriesland,
11.03.2010, 13:01:54

@ Jörg Lorenz

PHP: Woher kommt einfaches Anführungszeichen?

> > Attributwerte gehören nun mal in Quotes, auch wenn es oft anders geht.
>
> Ja, und da das in bestimmten Fällen anders geht, war ich hier auch davon
> ausgegangen, dass sie nicht unbedingt erforderlich sind. Aber klar - das
> @
> könnte für das Verhalten verantwortlich sein. Wieder was gelernt. Auch wenn
> ich nicht danach gefragt habe: Danke!

Auch dir schönen Dank. Manchmal sieht man eben den Wald vor lauter Bäumen nicht...  ;-)

--
Gruß,

ff

Möge TUX mit dir sein!

#197873

effeff

Ostfriesland,
11.03.2010, 13:01:06

@ d-fens

PHP: Woher kommt einfaches Anführungszeichen?

> Korrekt wäre:
>

<a href=\"mailto:irgendwas@irgendwer.de;nochwas@...\">eMail an alle
> Mannschaftsmitglieder</a>



Nene,

das WÄRE nicht korrekt, sondern das IST korrekt...  ;-)

Danke schön. Ich glaube, meine paar Jahre PHP-Abstinenz waren ein paar Jahr zu viel...  :-D

Nun funktioniert es einwandfrei. THX!  :-)

--
Gruß,

ff

Möge TUX mit dir sein!

#197887

MudGuard zur Homepage von MudGuard

München,
11.03.2010, 13:52:52

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> > Korrekt wäre:
> >

<a href=\"mailto:irgendwas@irgendwer.de;nochwas@...\">eMail an alle
> > Mannschaftsmitglieder</a>


>
> Nene,
>
> das WÄRE nicht korrekt, sondern das IST korrekt...  ;-)

Nein, das IST FALSCH.
Zu viele @ in der Mail-Adresse.

--
[image]
MudGuard
O-o-ostern

#197884

MudGuard zur Homepage von MudGuard

München,
11.03.2010, 13:51:51

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> Anscheinend hat Thunderbird da Probleme. Im MS Outlook habe ich das auch
> noch nicht bemerkt. Hm...  :kratz:

Eigentlich hat Outlook hier das Problem, weil es in ; ein Trennzeichen erkennt, obwohl keins vorhanden ist.

--
[image]
MudGuard
O-o-ostern

#197862

Greenslade

11.03.2010, 12:29:54
(editiert von Greenslade, 11.03.2010, 12:30:34)

@ effeff

PHP: Woher kommt einfaches Anführungszeichen? (ed)

> echo \"<a href=mailto:\".$mailanalle.\">eMail an alle
> Mannschaftsmitglieder</a>\\n\";

Also, ich kenn mich mit php nicht wirklich aus (meine letzte Programmiersprache habe ich auf dem Amiga gelernt), aber wenn ich jetzt so ein dummer Interpreter wäre, dann wäre dieser Teil \"<a href=mailto:\" für mich ein Text. Dann würde eine Variable folgen .$mailanalle. und dann käme wieder ein Text \">eMail an alle Mannschaftsmitglieder</a>\\n\".
Dabei gehe ich mal davon aus, daß .$mailanalle. kein regulärer (der Syntax entsprechender) Variablenname ist.
Sprich : Ich wüßte nicht, woran der Interpreter erkennen sollte, daß das ganze Gebilde ein Text ist. Vieleicht, sollte man es - aussen oder innen - mal mit Single-Quotes versuchen.

freundschaftliche Grüße, Peter

#197875

effeff

Ostfriesland,
11.03.2010, 13:03:08

@ Greenslade

PHP: Woher kommt einfaches Anführungszeichen?

> > echo \"<a href=mailto:\".$mailanalle.\">eMail an alle
> > Mannschaftsmitglieder</a>\\n\";
>
> Also, ich kenn mich mit php nicht wirklich aus (meine letzte
> Programmiersprache habe ich auf dem Amiga gelernt), aber wenn ich jetzt so
> ein dummer Interpreter wäre, dann wäre dieser Teil \"<a href=mailto:\" für
> mich ein Text. Dann würde eine Variable folgen .$mailanalle. und dann käme
> wieder ein Text \">eMail an alle Mannschaftsmitglieder</a>\\n\".
> Dabei gehe ich mal davon aus, daß .$mailanalle. kein regulärer (der Syntax
> entsprechender) Variablenname ist.
> Sprich : Ich wüßte nicht, woran der Interpreter erkennen sollte, daß das
> ganze Gebilde ein Text ist. Vieleicht, sollte man es - aussen oder
> innen - mal mit Single-Quotes versuchen.
>
> freundschaftliche Grüße, Peter

Doch, der Interpreter weiß das schon...  ;-)

Der Fehler lag hier im unzureichenden HTML meinerseits...  :smoke:

--
Gruß,

ff

Möge TUX mit dir sein!

#197883

MudGuard zur Homepage von MudGuard

München,
11.03.2010, 13:50:59

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> ich lasse mir mittels PHP aus einer MySQL-Datenbank einen String aus
> mehreren eMail-Adressen zusammenbasteln, der einen Mailto-Link generiert.
> Hält man den Mauszeiger über diesen Link, wird auch brav der erwartete Text
> angezeigt, also z. B.
>
> mailto:irgendwas@irgendwer.de;nochwer@woanders.de;gibsnich@nieda.de

weil in der EINEN E-Mail-Adresse zu viele @ drin sind - die EINE Adresse ist ungültig.


Willst Du mehrere Adressen angeben, mußt Du diese durch das Trennzeichen , (Komma) trennen.

--
[image]
MudGuard
O-o-ostern

#197907

effeff

Ostfriesland,
11.03.2010, 14:21:25

@ MudGuard

PHP: Woher kommt einfaches Anführungszeichen?

> weil in der EINEN E-Mail-Adresse zu viele @ drin sind - die EINE Adresse
> ist ungültig.

Mit der Nachbesserung mit den Anführungszeichen ala d-fens ist das Problem der doppelt vorhandenen einfachen Anführungszeichen behoben.
>
>
> Willst Du mehrere Adressen angeben, mußt Du diese durch das Trennzeichen ,
> (Komma) trennen.

Das stimmt aber tatsächlich. Das passiert, wenn man zu viel mit Outlook arbeiten muss...  ;-)

Ich habe auf Komma als Trennzeichen umgerüstet und hoffe, nun dem Standard zu entsprechen. Danke schön für den Hinweis!  :-)

BTW: Ich hoffe, dass das Komma als Trennzeichen dann auch von Outlook erkannt wird...  :-D

--
Gruß,

ff

Möge TUX mit dir sein!

#197918

MudGuard zur Homepage von MudGuard

München,
11.03.2010, 14:46:06

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> > weil in der EINEN E-Mail-Adresse zu viele @ drin sind - die EINE Adresse
> > ist ungültig.
>
> Mit der Nachbesserung mit den Anführungszeichen ala d-fens ist das Problem
> der doppelt vorhandenen einfachen Anführungszeichen behoben.

Nein, erst durch die zusätzliche Korrekteru des Trennzeichens.

<p><a href=\"mailto:a@bexample.org,b@example.com\">Kommalink</a> <a href=\"mailto:a@bexample.org;b@example.com\">Semikolonlink</a></p>



der erste erzeugt zwei korrekte TO-Einträge in der Mail, der zweite einen fehlerhaften TO-Eintrag.

Hier nochmal zum direkt ausprobieren:

mit Komma
mit Semikolon

--
[image]
MudGuard
O-o-ostern

#197919

effeff

Ostfriesland,
11.03.2010, 14:50:22

@ MudGuard

PHP: Woher kommt einfaches Anführungszeichen?

> > > weil in der EINEN E-Mail-Adresse zu viele @ drin sind - die EINE
> Adresse
> > > ist ungültig.
> >
> > Mit der Nachbesserung mit den Anführungszeichen ala d-fens ist das
> Problem
> > der doppelt vorhandenen einfachen Anführungszeichen behoben.
>
> Nein, erst durch die zusätzliche Korrekteru des Trennzeichens.

Nein, glaub mir, die beiden einfachen Anführungszeichen sind verschwunden, wenn man die erforderlichen doppelten Anführungszeichen setzt. Das heißt nicht, dass Thunderbird den Inhalt der Adresszeile sinnvoll verwerten kann...  ;-)

>

<p><a href=\"mailto:a@bexample.org,b@example.com\">Kommalink</a> <a
> href=\"mailto:a@bexample.org;b@example.com\">Semikolonlink</a></p>


>
> der erste erzeugt zwei korrekte TO-Einträge in der Mail, der zweite
> einen fehlerhaften TO-Eintrag.
>
> Hier nochmal zum direkt ausprobieren:
>
> mit Komma
> mit Semikolon

Jepp, danke schön dafür - das ist genau der Effekt...  :-)

--
Gruß,

ff

Möge TUX mit dir sein!

#197925

d-fens

Bonn,
11.03.2010, 15:28:03

@ MudGuard

PHP: Woher kommt einfaches Anführungszeichen?

> Nein, erst durch die zusätzliche Korrekteru des Trennzeichens.
>
>

<p><a href=\"mailto:a@bexample.org,b@example.com\">Kommalink</a> <a
> href=\"mailto:a@bexample.org;b@example.com\">Semikolonlink</a></p>


>
> der erste erzeugt zwei korrekte TO-Einträge in der Mail, der zweite
> einen fehlerhaften TO-Eintrag.

Siehste mal, das Semikolon ist mir gar nicht aufgefallen. Erst gemeinsam sind wir halt unschlagbar.  ;-)

--
„Tu es oder tu es nicht! Es gibt kein Versuchen.“
(Jedi-Meister Yoda)

#197924

Berny

11.03.2010, 15:24:00

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

Moin FF,
kommt das nicht von den Gänsen?

--
Es grüsst Berny.

#197979

effeff

Ostfriesland,
11.03.2010, 18:49:37

@ Berny

PHP: Woher kommt einfaches Anführungszeichen?

> Moin FF,
> kommt das nicht von den Gänsen?

Du meinst, deswegen fliegen die hier so durch die Gegend, weil sie ihre Füße verloren haben und nicht mehr landen können?  ;-)

--
Gruß,

ff

Möge TUX mit dir sein!

#197985

Josef.S zur Homepage von Josef.S

Rlp nähe Horhausen,
11.03.2010, 19:10:08

@ effeff

PHP: Woher kommt einfaches Anführungszeichen?

> > Moin FF,
> > kommt das nicht von den Gänsen?
>
> Du meinst, deswegen fliegen die hier so durch die Gegend, weil sie ihre
> Füße verloren haben und nicht mehr landen können?  ;-)


 :rotfl:

--
Mit freundlichen Grüße Josef

Suchspiel für Klugscheißer
... und die die es noch werden wollen.

Für alle Rechtschreibfreaks wurden überall Rechtschreibfehler absichtlich eingebaut und ungeschickt versteckt.
Und für die ganz Pfiffigen wurden noch Zeichensetzungsfehler sowie hochgradig revolutionäre Grammatikfehler integriert, die ihresgleichen suchen.

#202944

speer [Gast]

07.04.2010, 17:19:12

@ Josef.S

PHP: Woher kommt einfaches Anführungszeichen?

Hallo,
hier nochmal eine Antwort auf die ursprüngliche Frage - hatte nämlich auch das Problem, und hab es - ganz ohne php, wovon ich keine Ahnung hab - gelöst: nach der emailadresse (irgendwer@irgendwo) darf beim Kopieren KEIN Leerzeichen übernommen werden!!! Befindet sich nämlich ein solches am Ende der kopierten Buchstabenreihe der emailadresse, sieht man zwar im Adressbuch kein Leerzeichen, aber Thunderbird fügt diese obskuren Gänsefüßchen ein, ausser man benutzt direkt das Adressbuch und verwendet \"mail senden an\".
Hoffe, das hilft dem einen oder anderen...
Besten Gruß
Speer

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz