SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.01.2013, 12:28:01
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
umlaute bei dgssearch

Hallo,
setze dgssearch als Suchmaschine auf meiner website ein. Habe das Problem, das die Umlaute bei suchen nicht gefunden werden, obwohl ich als Sprache German eingestellt habe.

Z.B.: Suchanfrage: Geländer

Die Suche nach 'geländer' f�hrte zu keinen Ergebnissen.

Danke für eure Hilfe.
Mit Zitat antworten
  #2  
Alt 09.01.2013, 12:53:54
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: umlaute bei dgssearch

Zitat:
Zitat von nordy46 Beitrag anzeigen
setze dgssearch als Suchmaschine auf meiner website ein.
Kenn ich nicht.

Zitat:
Habe das Problem, das die Umlaute bei suchen nicht gefunden werden, obwohl ich als Sprache German eingestellt habe.

Z.B.: Suchanfrage: Geländer

Die Suche nach 'geländer' f�hrte zu keinen Ergebnissen.
Falscher Zeichensatz.
Mit Zitat antworten
  #3  
Alt 10.01.2013, 19:47:33
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
AW: umlaute bei dgssearch

Zitat:
Zitat von meikel Beitrag anzeigen
Kenn ich nicht.


Falscher Zeichensatz.


Ich habe das Problem bei einer Datenbankabfrage:
1. Absetzen des Query -> OK
2. Antwort der Datenbank -> OK
3. Wenn KEIN Umlaut im Ergebnis -> OK
Wenn Umlaut im Ergebnis -> Wert = {null}


Die Umlaute werden also nicht durch irgendwelche Zeichen ersetzt, sonder tatsächlich durch ein "Null"

Hoffe Ihr könnt mir nen Tip geben...
Mit Zitat antworten
  #4  
Alt 10.01.2013, 22:11:22
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: umlaute bei dgssearch

Zitat:
Zitat von nordy46 Beitrag anzeigen
Die Umlaute werden also nicht durch irgendwelche Zeichen ersetzt, sonder tatsächlich durch ein "Null"
Ich schrieb doch schon: falscher Zeichensatz.

So, wies aussieht, sind die Umlaute möglicherweise schon, weil abweichend von der Tabellen- oder Stalten-Collation, fehlerhaft kodiert in der Tabelle gelandet sind. MySQL verhält sich da korrekt, wenn es unbekannte Zeichen durch ein Fragezeichen ersetzt.

Nächste Frage ist das Suchormular: welcher Zeichensatz ist dort angebenen?
Der Browser kodiert dann die Umlaute wunschgemäß. Steht dort zB. UTF-8, Deine Tabelle aber (zum Bleistift) aber als Latin-1, dann hast Du ein Problem und viel Arbeit.
Mit Zitat antworten
  #5  
Alt 11.01.2013, 10:56:32
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
AW: umlaute bei dgssearch

Also vielen Dank erstmal für die Antwort.
Ich habe folgendes getan:

Eingefügt im Formular im head-bereich:
<meta http-equiv="content-type" content="text/html;" charset="UTF-8">

Eingefügt in der PHP-Datei:
<meta http-equiv="content-type" content="text/html;" charset="UTF-8">

Datenbank:
MySQL-Client-Version: 5.0.67
MySQL-Zeichensatz: UTF-8 Unicode (utf8)

Tabelle:
Kollation latin1_swedish_ci

Wenn ich in der Tabelle das Feld "Ort" die Kollation von
latin1_swedish_ci auf utf8_unicode_ci stelle passiert nichts.

Es wird also bei einer Suchanfrage nach Berlin auch die Treffer von Berlin angezeigt.
Bei der Suche nach München -> Null

Was muss ich tun?
Mit Zitat antworten
  #6  
Alt 11.01.2013, 15:49:12
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: umlaute bei dgssearch

Zitat:
Zitat von nordy46 Beitrag anzeigen
Eingefügt in der PHP-Datei:
<meta http-equiv="content-type" content="text/html;" charset="UTF-8">

Datenbank:
MySQL-Client-Version: 5.0.67
MySQL-Zeichensatz: UTF-8 Unicode (utf8)

Tabelle:
Kollation latin1_swedish_ci
Für die Suche nach Texten mit UTF-8 Zeichensatz benötigst Du utf8_general_ci für die Tabelle und die varchar bzw. text Spalten. Allerdings hast Du ein Problem, wenn die Tabelle schon existiert, weil MySQL beim Ändern der Collation die Inhalte nicht konvertiert. Falls die Inhalte schon (was ich nicht ausschließe) falsch in der Tabelle vorliegen - also mit nem ? anstelle des Umlautes oder sonstigen ASCII "Sonderzeichen", mußt Du den Kram mehr oder weniger mühsam korrigieren.

In Deinem Script solltest Du
1. die mysqli Extension nutzen
2. mit dieser Funktion bzw. Methode
http://php.net/manual/de/mysqli.set-charset.php
Zitat:
mysqli::set_charset -- mysqli_set_charset — Sets the default client character set
den default Zeichensatz vor dem ersten Query auf 'utf8' setzen.

Bezüglich der "HTML Lieferung" findest Du da
http://www.gerd-riesselmann.de/softw...f-8-ausliefern
auch noch einige Hinweise.

Zitat:
Es wird also bei einer Suchanfrage nach Berlin auch die Treffer von Berlin angezeigt. Bei der Suche nach München -> Null
Wenn in der Datenbank anstelle von 'München' 'M?nchen' steht, weil Du einen UTF8 Text in eine Spalte mit der Collation latin1_swedish_ci gepackt hast, findest Du weder mit einem UTF-8 'ü' noch mit dem ISO-8859-1 'ü' was, weil es diesen Buchstaben in einer Tabelle/Spalte mit dem schwedischen Zeichensatz nicht gibt. Das UTF8 'ü' gibt es nur bei einer UTF8 Collation. Das andere ü in latin1.

Da Du aber ein (mir unbekanntes) Fremdscript nutzt, mußt Du auch dort nachgucken, wo und wie Du den Zeichensatz für Formular und Datenbank einstellen kannst.

Hinweis:
nutze die mysqli Extension
mysql (ohne i) ist ein Auslaufmodell, welches ab PHP 5.5 als depraced notiert ist.
Aktuell ist PHP 5.4.10.
Mit Zitat antworten
  #7  
Alt 11.01.2013, 18:23:16
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
AW: umlaute bei dgssearch

[QUOTE=meikel;144229]Für die Suche nach Texten mit UTF-8 Zeichensatz benötigst Du utf8_general_ci für die Tabelle und die varchar bzw. text Spalten. Allerdings hast Du ein Problem, wenn die Tabelle schon existiert, weil MySQL beim Ändern der Collation die Inhalte nicht konvertiert. Falls die Inhalte schon (was ich nicht ausschließe) falsch in der Tabelle vorliegen - also mit nem ? anstelle des Umlautes oder sonstigen ASCII "Sonderzeichen", mußt Du den Kram mehr oder weniger mühsam korrigieren.


Hallo,
ich habe mal eine neue (identische) Tabelle angelegt.
Außer die Kollation mit utf8_general_ci eingerichtet
und die Spalten Varchar.
Dann habe ich den Inhalt - hier orte-deutschland.csv mit notepad
(Ich weiß nicht wie ich bei Phase 5 die codierung einstelle)
abgespeichert (codierung utf8) hochgeladen und...
München -> NULL
Berlin -> Ergebnisse

Also
Datenbank: utf8
Tabelle: utf8_general_ci
orte-finden.php: <meta http-equiv="content-type" content="text/html;" charset="UTF-8">
orte-finden.php: mit notepad: codierung utf8 gespeichert und hochgeladen
orte-deutschland.csv mit notepad: codierung utf8 gespeichert und in Tabelle hochgeladen

Das alles hat mit dgssearch nichts zu tun, sondern ist ein script, dass ich selbst geschrieben habe.
dgssearch ist eine Volltextsuche und habe ich praktisch nebenher.
Aber auch dort ist das gleiche Problem.

Weder bei meinem Script noch bei dgssearch kommt ein Ergebnis bei Umlauten.

Mein Script ganz normal:
include("dbconnect.php");

$abfrage = "SELECT *
FROM `orte-deutschland-02`
WHERE ort LIKE '$ort' ORDER BY 'id' ";
$ergebnis = mysql_query($abfrage);
$treffer=0;

while ($row = mysql_fetch_array($ergebnis))
{
$treffer=1;
... u.s.w.


Beide Scripte liefen bis vor kurzem einwandfrei (seit mehreren Jahren).
Auf Anfrage bei meinem Anbieter kam folgendes:

"an der Konfiguration des Webservers und der Datenbank hat sich auf dem
Server ****** nichts geändert. Wahrscheinlich sind bei Ihnen
einige Datensätze in der Datenbank im "UTF-8" Zeichensatz gespeichert
während ihre Website in "ISO 8859-1" als Zeichenkodierung verwendet.
Dadurch können bei der Ausgabe von Umlauten und anderen Sonderzeichen
diese Zeichen entstehen. "

Weiß nicht weiter
Mit Zitat antworten
  #8  
Alt 11.01.2013, 18:47:43
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
AW: umlaute bei dgssearch

Oh WOW nun hab ich`s.

Es liegt an phase 5.

Ich habe noch meine index.htm mit notepad in utf8 hochgeladen und es klappt.

Jetzt muss ich nur noch wissen wie ich phase 5 beibringe, dass die Dateien in utf8
abgespeichert werden.

VIELEN DANK
Mit Zitat antworten
  #9  
Alt 12.01.2013, 00:45:46
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
AW: umlaute bei dgssearch

Zitat:
Zitat von nordy46 Beitrag anzeigen
Oh WOW nun hab ich`s.
Es liegt an phase 5.
Ich habe noch meine index.htm mit notepad in utf8 hochgeladen und es klappt.
Windows Notepad oder notepad++?
Zitat:
Jetzt muss ich nur noch wissen wie ich phase 5 beibringe, dass die Dateien in utf8 abgespeichert werden.
Achte darauf, PHP Scripte mit UTF-8 Inhalten mit dem Charset UTF-8 OHNE BOM abzuspeichern.
http://de.wikipedia.org/wiki/Byte_Order_Mark
Sonst heißt die nächste Frage: "Wo kommen denn die komischen Zeichen '' her und wie geht das wieder weg?"
Zitat:
VIELEN DANK
Viel Erfolg.
Mit Zitat antworten
  #10  
Alt 12.01.2013, 11:34:53
nordy46 nordy46 ist offline
Anfänger
 
Registriert seit: May 2012
Alter: 60
Beiträge: 6
AW: umlaute bei dgssearch

Das ganz normale Windows Notepad.
Gibt die Möglichkeit Daten in utf8 abzuspeichern.

Laut Forum ist Phase 5 nicht in der Lage in utf8 abzuspeichern.
Also denkbar ungeeignet für den Umgang mit Umlauten.

Danke nochmal
Mit Zitat antworten
Antwort

Stichworte
dgs, dgssearch, umlaute


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umlaute Riegelhaus PHP Grundlagen 12 22.11.2011 09:13:26
AJAX und Umlaute Realnub PHP für Fortgeschrittene und Experten 1 11.01.2008 15:10:08
Umlaute richtig in SQL eintragen und wieder herausbekommen xkky PHP Grundlagen 2 17.09.2007 23:46:28
PEAR Mail - Umlaute im Absender Serp PHP für Fortgeschrittene und Experten 3 22.10.2006 22:28:40
Umlaute in Mail Frankie PHP Grundlagen 1 03.06.2004 00:52:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:22:19 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt