Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Google macht aus ü = ü

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.07.2009, 16:06

Japs, in der Datenbank steht ü,ä,ö usw.

immer wenn eine Seite aufgerufen wird, wird nun $s überprüft und wenn s angegeben wurde dann kommt das

Code: Alles auswählen

if(isset($s))
{
$s = str_replace("ä", "ä", $s); 
$s = str_replace("ü", "ü", $s); 
$s = str_replace("ö", "ö", $s); 
}
damit hab ich das gröbste im Griff, natürlich ist das nicht die feine Art.

Wenn ich utf8_decode verwende, funktioniert das für Google, aber als normaler User mit Browser geht dann garnichts mehr. Weil dann immer anstatt dem ü.ö,ä nen ? kommt.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Anonymous

Beitrag von Anonymous » 12.07.2009, 18:18

JohnBi hat geschrieben:wenn ich einen Link habe der lautet

https://www.domain.de/index.php?s=Bücher

warum wandelt Google diesen Link um in

https://www.domain.de/index.php?s=B%C3%BCcher
das ist dann aber dein Fehler wenn du so einen Link hast.... ein ü hat in einer URL nix verloren... den musst du vor der Ausgabe selber encoden... wenn du dies unterlässt und dann nicht RFC konforme URLs hast, darfst du dich nicht beschweren wenn Google diesen in eine konforme URL umwandelt und sich dabei mit der codierung vertut...
ein Browser wird diesen Link auch umwandeln bevor er die entsprechende Seite aufruft....

:-?

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.07.2009, 18:22

Jo, ok, ich glaub ich hab das nun geschnallt, ich werde wohl alles ändern müssen, hat so keinen Sinn, ich wollt es einfach haben und hab die Variablen so übernommen und nun hab ich den Salat.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

xoni
PostRank 8
PostRank 8
Beiträge: 692
Registriert: 22.08.2007, 12:14

Beitrag von xoni » 12.07.2009, 20:41

Ich greife das Thema noch einmal auf, da es auch bei mir kürzlich zu fehlerhaften Darstellungen kam.
Wenn Man(n) / Frau folgendes beachtet, sollte es keine Probleme mehr geben.
Damit die Kommunikation zwischen Browser/Datenbank und ggf. über den Umweg über mod rewrite funktioniert, sollte folgendes beachtet werden.

1. Wählt einen Editor, in dem sich die Kodierung auf UTF-8 einstellen lässt
2. In der Datenbank (phpmyadmin) ist die Kollation ebenfalls auf UTF-8 zu stellen z.B. utf8_general_ci – das gleiche gilt natürlich für die einzelnen Felder
3. In der .htaccess : AddCharset utf-8 .css .html .xhtml
4. Für PHP-Dateien: header("Content-Type: text/html; charset=utf-8");
5. Für HTML-Dateien: <meta http-equiv="content-type" content="text/html;charset=utf-8" />

Das ist mit unter doppelt gemoppelt, funktioniert aber ohne Probleme.
Ach ja, kommen Formulare zum Einsatz ist das <form> Tag um „accept-charset="utf-8"“ zu erweitern, dann sind alle evtl. Lücken geschlossen.

Happy Coding…

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 13.07.2009, 08:35

Seite 2 und 3 hier hab ichjetzt nicht gelesen
JohnBi hat geschrieben:Jo, eigenes CMS.
Da DU ein eigenes CMS hast, ist es ein leichtes etwas zu ergänzen (kennst doch deinen Code)

1. in der DB eine zweite Spalte ...
... ich hab in meinem Blog die ÜberschriftSpalte zweimal
= Überschrift + ueberschrift

Code: Alles auswählen

/***********************************************************************
 *   Headline 2 Subdomain -- umwandeln
 **********************************************************************/
function hl2fn2&#40;$headline&#41;
&#123;
        $headline= str_replace&#40;chr&#40;153&#41;, ' TM', $headline &#41;;
        $headline= str_replace&#40;chr&#40;232&#41;, 'e', $headline &#41;;
        $headline= str_replace&#40;chr&#40;233&#41;, 'e', $headline &#41;;
        $headline= str_replace&#40;chr&#40;234&#41;, 'e', $headline &#41;;
        $headline= str_replace&#40;chr&#40;235&#41;, 'e', $headline &#41;;
        $headline= str_replace&#40;chr&#40;174&#41;, 'R', $headline &#41;;
        $headline= str_replace&#40;'â', 'a', $headline &#41;;
        $headline= str_replace&#40;'é', 'e', $headline &#41;;
        $headline= str_replace&#40;'€', 'e', $headline &#41;;
        $headline= str_replace&#40;'`', ' ', $headline &#41;;
        $headline= str_replace&#40;'²', '2', $headline &#41;;
        $headline= str_replace&#40;'_', ' ', $headline &#41;;
        $headline= str_replace&#40;'"', ' ', $headline &#41;;
        $headline= str_replace&#40;"'", ' ', $headline &#41;;
        $headline= str_replace&#40;'*', ' ', $headline &#41;;
        $headline= str_replace&#40;'%20',' ',$headline &#41;;
        $headline= str_replace&#40;'%2B',' ',$headline &#41;;
        $headline= str_replace&#40;'%', ' ', $headline &#41;;
        $headline= str_replace&#40;'+', ' ', $headline &#41;;
        $headline= str_replace&#40;'?', ' ', $headline &#41;;
        $headline= str_replace&#40;'!', ' ', $headline &#41;;
        $headline= str_replace&#40;'&', ' ', $headline &#41;;
        $headline= str_replace&#40;'@', ' ', $headline &#41;;
        //$headline= str_replace&#40;'|', ' ', $headline &#41;;
        $headline= str_replace&#40;',', ' ', $headline &#41;;
        $headline= str_replace&#40;'=', ' ', $headline &#41;;
//        $headline= str_replace&#40;'-', '', $headline &#41;;
        $headline= str_replace&#40;'<', ' ', $headline &#41;;
        $headline= str_replace&#40;'>', ' ', $headline &#41;;
        $headline= str_replace&#40;'«', ' ', $headline &#41;;
        $headline= str_replace&#40;'»', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#123;', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#91;', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#40;', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#41;', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#93;', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#125;', ' ', $headline &#41;;
        $headline= str_replace&#40;"'", ' ', $headline &#41;;
        $headline= str_replace&#40;';', ' ', $headline &#41;;
        $headline= str_replace&#40;'&#58;', ' ', $headline &#41;;
        $headline= str_replace&#40;'ß', 'ss', $headline &#41;;
        $headline= str_replace&#40;'ä', 'ae', $headline &#41;;
        $headline= str_replace&#40;'ö', 'oe', $headline &#41;;
        $headline= str_replace&#40;'ü', 'ue', $headline &#41;;
        $headline= str_replace&#40;'Ä', 'AE', $headline &#41;;
        $headline= str_replace&#40;'Ö', 'OE', $headline &#41;;
        $headline= str_replace&#40;'Ü', 'UE', $headline &#41;;
        
        $headline= str_replace&#40;'à', 'a', $headline &#41;;

        $headline= str_replace&#40;"\n", ' ', $headline &#41;;
        $headline= str_replace&#40;"\r", ' ', $headline &#41;;
        $headline= str_replace&#40;"\", ' ', $headline &#41;;
        $headline= str_replace&#40;'/', ' ', $headline &#41;;
        $headline= str_replace&#40;'#', ' ', $headline &#41;;
        $headline= trim       &#40;          $headline &#41;;
        $i=strlen&#40;$headline&#41;;
	while&#40;$i--&#41;
	&#123;
		if &#40; ord&#40;$headline&#123;$i&#125;&#41;>127 &#41; $headline&#123;$i&#125;=' ';
	&#125;
	$headline= str_replace&#40;' ', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'--', '-', $headline &#41;;
        $headline= str_replace&#40;'|-', '|', $headline &#41;;
        $headline= str_replace&#40;'-|', '|', $headline &#41;;
        $headline= str_replace&#40;'||', '|', $headline &#41;;

  return&#40;$headline&#41;;
&#125;
function hl2sub&#40;$headline&#41;
&#123;
        $headline=hl2fn2&#40;$headline&#41;;
        $headline= str_replace&#40;".", "-", $headline &#41;;
  return&#40;$headline&#41;;
&#125;
oben sind str_replace Befehle mit chr() Befehl, die sind für die AkzenteZeichen, da ich die in meiner iso-Datei in BlueFish nicht speichern kann(darf, und utf nicht will)


Also, wie gesagt
in DB die Überschrift 2mal ablegen
(A=alpha4url) Oeriginael
(B=Buchstaben4Headline) Öriginäl

und beim Request dann eben die AlphaSpalte im SELECT WEHRE nutzen






und die alten, die von Google reinkommen ... hilft vielleicht das

Code: Alles auswählen


function utf2iso &#40;$text&#41; &#123;

  $text=str_replace&#40;'%C3%A4', 'ä', $text&#41;;
  $text=str_replace&#40;'%C3%B6', 'ö', $text&#41;;
  $text=str_replace&#40;'%C3%BC', 'ü', $text&#41;;
  $text=str_replace&#40;'%C3%84', 'Ä', $text&#41;;
  $text=str_replace&#40;'%C3%96', 'Ö', $text&#41;;
  $text=str_replace&#40;'%C3%9C', 'Ü', $text&#41;;
  $text=str_replace&#40;'%C3%9F', 'ß', $text&#41;;
  $text=str_replace&#40;'%E2%80', '', $text&#41;;
  $text=str_replace&#40;'%C2'   , '', $text&#41;;
  return &#40;$text&#41;;
&#125;

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 13.07.2009, 09:28

Ich schau mir das mal an, danke, kannst du das letzte noch für die Akzente machen ?
function utf2iso ($text) {

$text=str_replace('%C3%A4', 'ä', $text);
$text=str_replace('%C3%B6', 'ö', $text);
$text=str_replace('%C3%BC', 'ü', $text);
$text=str_replace('%C3%84', 'Ä', $text);
$text=str_replace('%C3%96', 'Ö', $text);
$text=str_replace('%C3%9C', 'Ü', $text);
$text=str_replace('%C3%9F', 'ß', $text);
$text=str_replace('%E2%80', '', $text);
$text=str_replace('%C2' , '', $text);
return ($text);
}
Ich brauch das noch für alle Akzente wie è ì à usw.

Danke schonmal im voraus.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 13.07.2009, 09:42

Meinst Du Du kannst das auch selber abtippen? Sind schließlich feste fertige Listen wo die Daten nur übernommen werden müssen.

https://www.utf8-zeichentabelle.de/unic ... 8-table.pl

è = %C3%A8
ì = %C3%AC
à = %C3%A0

Allerdings ist das natürlich mehr als umständlich. Beachte dabei nämlich, dass ein "à" nicht das gleiche ist wie ein "À".

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 13.07.2009, 09:59

Jo, dank dir genau diese Tabelle hab ich gesucht... jo, ich muss mal schauen wie ich das ganze Umsetze. Auf jedenfall habt ihr mir alle einwenig geholfen, nun liegt es an mir das wieder gradezubügeln.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Nullpointer
PostRank 10
PostRank 10
Beiträge: 4790
Registriert: 22.04.2005, 19:14
Wohnort: West Berlin

Beitrag von Nullpointer » 13.07.2009, 10:53

@JohnBi Du mußt beachten, dass das mit dem Encoding nicht so einfach ist. Die verschiedenen Programme behandeln falsche Konfigurationen unterschiedlich. Nur weil das eine Programm es "richtig" anzeigt, bedeutet das nicht, dass Du es richtig auslieferst. Nur weil man das Encoding in den Metaangaben angibt, bedeutet das ja nicht, dass die Zeichen auch so kodiert ausgeliefert werden.

Beliebter Fehler (in Deinem Fall nicht) ist z.B. UTF-8 anzugeben und Dateien mit einem Editor abzuspeichern, der in ISO abspeichert.

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 13.07.2009, 12:39

Vergiss die Translation Tabelle und versuche das Problem von Grund auf zu lösen.

Charset (auch Client) der DB und Tabellen: utf8

Nach dem DB-Connect sendest du folgendes Kommando an den Mysql-Server (immer):

Code: Alles auswählen

SET NAMES 'utf8';
Charset Ausgabe deines CMS vor der Ausgabe:

Code: Alles auswählen

header &#40;"Content-Type&#58; text/html; charset=utf-8"&#41;;
Bei anderen Ausgaben als HTML (XML, Plain, CSV,... ) musst du diesen Header entsprechend ändern ;-).

HTML-Header:

Code: Alles auswählen

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Charset-Einstellung deiner Scripte (PHP, HTML, JS): UTF-8

Es kann gut sein, dass du jetzt Mischmasch in deiner DB stehen hast (falsch kodierte UTF-8 Umlaute). Das kannst du mit einer MySQL-Console jedoch sehr einfach prüfen.

Grüße BN

no.f8
PostRank 2
PostRank 2
Beiträge: 36
Registriert: 02.04.2008, 12:45

Beitrag von no.f8 » 13.07.2009, 12:50

bloddy newbie hat geschrieben:Vergiss die Translation Tabelle und versuche das Problem von Grund auf zu lösen.
Eben. Im Grunde ists egal, ob Du ISO oder UTF8 codierst. Google codiert ohnehin alle Seiten zunächst in UTF8 um, Du kannst es denen also einfacher oder schwerer machen, ist im Grunde aber egal.

Wichtig ist, dass Du im Backend alles gleich hast. Was Google für einen Zeichensatz annimmt kommt auf den Server-Header an.

Code: Alles auswählen

Content-Type&#58; text/html; charset=utf-8
Wenn Dein Apache UTF8 ausgibt, sollte die DB auch UTF8 liefern. Der Header im HTML ist im Grunde nicht so wichtig, aber wäre natürlich schön, wenn der zum Rest passt..

antonia
PostRank 1
PostRank 1
Beiträge: 10
Registriert: 06.08.2009, 15:53

Beitrag von antonia » 06.08.2009, 16:03

@ 800XE

Ich sehe bei dir das Zeichen "\" in Deinem Script nicht aufgelistet.
Ich frage aus bestimmtem Grund, ich mache das direkt über sql Befehle. Das "\" nimmts SQL nicht an. Alle anderen exoten zeichen, (c) und TM, Durchmesser Zeichen usw. gehen.

Du hast "\n" und "\r" dabei. warum?

Gruss!

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 06.08.2009, 21:07

antonia hat geschrieben:@ 800XE

Ich sehe bei dir das Zeichen "" in Deinem Script nicht aufgelistet.
Ich frage aus bestimmtem Grund, ich mache das direkt über sql Befehle. Das "" nimmts SQL nicht an. Alle anderen exoten zeichen, (c) und TM, Durchmesser Zeichen usw. gehen.

Du hast "\n" und "\r" dabei. warum?

Gruss!

Code: Alles auswählen

        $headline= str_replace&#40;"\n", ' ', $headline &#41;;
        $headline= str_replace&#40;"\r", ' ', $headline &#41;;
        $headline= str_replace&#40;"\", ' ', $headline &#41;;
Der "" ist das Komandozeichen für Escaping
Bedeutet, das das nächste Zeichen keine Zeichen sondern ein KOmmando ist

Wenn du hier im TextFeld und wirfst das dann https://webtools.chegu.de/HEXdump.html
Ergebniss = 6E 0D 0A 72 n__r
6E = Hexwert von n
0D und 0A sind Newline + CaritchReturn
72 = Hexwert von r

Code: Alles auswählen

$text = "lalal  .... \n zeile 2";
wird zu

Code: Alles auswählen

lalal  .... 
 zeile 2
Das "" ist das Signal das jetzt ein Befehl kommt
"n" ist der Befehl einen Newline zu generieren, als
also, der PHParser der wandelt um
\n = 5C 6E = 0D (oder 0A?)


Du willst "" in DIe Datenbank schreiben?

"\" muß in den SQL Befehl rein
1. \ = Achtung es kommt ein Befehl
2. \ = hm, zu diesem Zeichen gibt es kein befehl ... dann wird einfach das Zeichen ausgegeben

Also, wenn du einen Backslash in die SQL reinschickst, dann verschwindet der
auser es war genau dafor noch ein Backslash

\\ = \
\Wo\Was = WoWas (hoffentlich ist W jettz kein Befehlszeichen?)

Achtung
\\\Wo\\Was = \Wo\Was

1. \ = Achtung Befehl
2. \ = ist kein befehl, einfach zeichen weitergeben
3. \ = Achtung Befehl
4. W = siehe 2.

Also
\ verschwindet, und kann das Zeichen danach verändern siehe \n und \r oder \t = TAB



antonia hat geschrieben:Du hast "\n" und "\r" dabei. warum?
Die hl2fn = Headline 2 Filename

ich hatte irgendwann das Bedürfniss das eine Überschrift auch mehrzeilig sein kann ....
.... das Newline \n wird beim echo mit nl2br in <br> gewandelt
echo ( nl2br( $text ) );

Ich hab also RETURN in meiner Überschrift ...
... Dateinamen mit sowas gibt es nicht




Gruß
Andy 800XE Zmuda

antonia
PostRank 1
PostRank 1
Beiträge: 10
Registriert: 06.08.2009, 15:53

Beitrag von antonia » 06.08.2009, 21:49

Alles klar. \\ also, Danke Dir.

ich hab jetzt extra eine kleine csv angelegt, in einer Spalte ein Begriff mit "\" drin. Ich lad' sie hoch, der "\" ist im Begriff weg...wie du sagtest.

O.K
eine hab ich noch, da Du in der sache TOP fit bist:
Ich will nun die schönen Befehle, die ich in mysql schon getestet hab in einer php unterbringen:

Code: Alles auswählen

$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '&', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '/', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'Ä', 'AE'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'Ö', 'OE'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'Ü', 'UE'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'ä', 'ae'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'ö', 'oe'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, 'ü', 'ue'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '!', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '%', '-'&#41;;";
....
beim letzten ist das "%" in php ansicht schon farblich hervorgehoben = bedeutet nichts gutes. und so ist es auch, der browser meckert diese Zeile an:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

Hast Du Rat? Ich bekomm das nicht hin. Sollte ich da nochmal was "klammern" in den zeilen, so als Idee?

Dasselbe bei ( ) = ? + # (die Raute ist mal nicht blau sondern gelb dargestellt = ganz schlecht:-(

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 07.08.2009, 09:15

LÖSUNG

Code: Alles auswählen

$sql = "replace &#40;SpecialProductLink, '!', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '%', '-'&#41;;";
weiter unten nochmal mit Erklärung

antonia hat geschrieben:

Code: Alles auswählen

$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '%', '-'&#41;;";
....
beim letzten ist das "%" in php ansicht schon farblich hervorgehoben = bedeutet nichts gutes. und so ist es auch, der browser meckert diese Zeile an:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

Hast Du Rat? Ich bekomm das nicht hin. Sollte ich da nochmal was "klammern" in den zeilen, so als Idee?

Dasselbe bei ( ) = ? + # (die Raute ist mal nicht blau sondern gelb dargestellt = ganz schlecht:-(
---- beim letzten ist das "%" in php ansicht ---
du meinst ---- , '%', '-' bzw die Zeile so was drinsteht


Die Zeile wo "Angeblich" ein Fehler ist, dort ist kein Fehler


Bildlisch ausgedrückt .....
Steckdosenwechsel, da geht man natürlich mit dem Schraubenziher in die Steckdose
Zufor sollte man die Sicherrung rausgedreht haben
Wenn beim Steckdosenwechsel ein Stromschlagfehler auftritt, dann war das ein Fahler der nichtrausgedrehten Sicherung

Programmierer nennen das Folgefehler
=
Da ist etwas falsch, das zu keinem Fehler führt
Dann geht es weiter, ganz richtig ohne Fehler ... und dann schint da ein Fehler zu sein; es wird behauptet da wäre einer, dort ist aber keiner


Code: Alles auswählen

$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "UPDATE `$dbtabelle` SET SpecialProductLink = replace &#40;SpecialProductLink, '%', '-'&#41;;";
....
Deine Zeile mit .... '%', '-' .... ist z.B. die Zeile 800

ich schreibs mal bissel um nach PHP Befehle, damit kürzer

Code: Alles auswählen

$sql = str_replace&#40; '"', '-' , $sql &#41;;
$sql = str_replace&#40; '%', '-' , $sql &#41;;
....
ähm, dort würde der Folgefehler garnicht auftretten
muß zurück zum SQLString

Code: Alles auswählen

$sql = "replace &#40;SpecialProductLink, '!', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '%', '-'&#41;;";
OK, nochmal ...... '%', '-' .... = Zeile 800 und scheint ein Fehler zu haben
mach einfach mal

Code: Alles auswählen

$sql = "replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '!', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '%', '-'&#41;;";
komisch, jetzt scheint der Fehler in Zeile 799
Warum ist in 800 jetzt keiner mehr?

Der Fehler ist ...... '"', '-' ..... "Verschachtelte Strings" du baust das Strings in PHP zusammen die Strings für SQL enthalten ....
Wie lang ist der STring

Code: Alles auswählen

", '"', '-'&#41;;" == 

Code: Alles auswählen

", '"', '-'&#41;;" == NUR , ' UND ', '-'&#41;;"
vom Code her, ist der STring zuende obwohl er noch nicht zuende sein soll
LÖSUNG

Code: Alles auswählen

$sql = "replace &#40;SpecialProductLink, '!', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '"', '-'&#41;;";
$sql = "replace &#40;SpecialProductLink, '%', '-'&#41;;";
'"', '-' ++++ \ ===== '"', '-'

Du kannst in einem $String der einen "Zaun hat (= in " Anführungszeichen eingefast ist) keine " verwenden .....
da der Parser dann denkt das der STring zuende ist
schreibe "
Escape das "
dann wird das " zu einem Befehlszeichen wo es kein Befehl gibt, = es wandert einfach in den String und das \ ist verschwunden


könnte noch weiter labern, aber ich hör vielleicht mal auf
wurde ja schon alles 5 mal gesagt
wen es zu "durscheinander" ist, dann frag nochmal


Gruß
AZ

PS
1 noch
Wenn Fehler in Zeile 666
Alles nicht so schlim, wahrscheinlich ist er in 665 oder 664 ....

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag