php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2011, 13:27  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard UTF8 Kodierung (PHP und MySQL)

Hallo,

Ich weiß, Ich weiß!
Zu diesem Thema gibt es schon haufenweise Tutorials und Foreneinträge. Die habe ich mir auch brav alle zu gemüte geführt.
(z.B.: http://forum.de.selfhtml.org/archiv/2007/10/t160150/)

Und trotzdem bin ich meinem Ziel nicht näher bekommen.
Ziel: PHP liest Daten aus der Datenbank und soll diese in einem HTML Frame anzeigen.

Datenbank:
Meine Tabellen und deren Spalten haben als Kollation utf8_general_ci.
Die Datensätze werden in der Datenbank auch richtig angezeigt.

PHP:
Ich arbeite mit Eclipse und habe dort über Edit -> Set Encoding das Projekt auch auf UTF8 gesetzt.
Außerdem habe ich auf der Seite folgenden Meta-Tag:
PHP-Code:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
Und mein erster Query nach der Datenbankverbindung ist folgender:
PHP-Code:
mysql_query("SET NAMES utf8"$dbname); 
Meine Schlussfolgerung:
- PHP ist in utf8 erstellt
- Datenbank ist in utf8 aufgebaut
- PHP übergibt nur utf8 Werte an die Datenbank und bekommt diese auch zurück (Sollte meiner Meinung nach mit SET NAMES ja erledigt sein)

Ergebnis:
Alles Ausgegebenen Sonderzeichen sind mit dieser Raute und dem Fragezeichen dargestellt.

Bitte helft mir, ich bin mittlerweile echt verzweifelt.

Vielleicht bin ich auch nur zu dumm um google zu benutzen. In dem Falle wäre ein Link zu einem wirklich guten Tutorial sicher auch hilfreich.

Danke!
Savatage ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.07.2011, 13:29  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich habe:
PHP-Code:
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); 
Die 5 goldenen Regeln für UTF-8 in PHP/MySQL und HTML:
http://www.php.de/datenbanken/55699-...tml#post430223 (Umlaute in MySQL Datenbank)

Der ultimative Megakick der Superlative
http://www.php.de/adventskalender-20...perlative.html (27: Der ultimative Megakick der Superlative)
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:33  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Super schnelle Antwort!

Meine Connect.php sieht jetzt so aus:
PHP-Code:
<?php
// Datenbankverbindung herstellen
$dbname="wert";
$dbhost="wert";
$dbuser="wert";
$dbpass="wert";

$conn=mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);

mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'" $dbname);  
?>
Leider hat sich an dem Ergebnis nichts geändert. Aber ich werde mir jetzt mal die Tutorials anschauen.
Savatage ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:38  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Savatage Beitrag anzeigen
Außerdem habe ich auf der Seite folgenden Meta-Tag
Eine ggf. im Content-Type-Header gemachte Angabe hat höhere Priorität.

Schau im Browser in den Seiteneigenschaften (o.ä.) nach, in welcher Kodierung er das Dokument interpretiert.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:41  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von Savatage Beitrag anzeigen
Ergebnis:
Alles Ausgegebenen Sonderzeichen sind mit dieser Raute und dem Fragezeichen dargestellt.
Das passiert z.B. wenn du eine ISO-ü in UTF8 darstellst. Irgendwo hast du also noch ISO-Daten, oder du wandelst UTF in ISO um, bevor du es zur Ausgabe (in UTF schickst.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:46  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard

Ich habe z.T. den aktuellen Firefox. Dort habe ich unter Webentwickler -> Zeichenkodierung geschaut und festgestellt dass es auf utf8 steht.

Die Content Header hatte ich zubeginn auch im PHP drin, habe ich aber raus gemacht.

Hier jetzt einfach mal die ganze Seite die im Frame aufgerufen wird:
PHP-Code:
<?php
include ("connect.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>CU Bibliothek</title>
    <link rel="stylesheet" href="format.css" type="text/css">
</head>
<body>
        <!-- Zweiter Bereich für die Ansicht -->
        <div id="footer">
            <!-- Head -->
            <div id="divhead">
            <table >
                <tr>
                    <td class="head"><b>Nummer</b></td>
                    <td class="head"><b>Titel</b></td>
                    <td class="head"><b>Autor</b></td>
                    <td class="head"><b>Verlag</b></td>
                    <td class="head"><b>Ausgeliehen von</b></td>
                    <td class="head"><b>Ausgeliehen am</b></td>
                    <td class="head"><b>Zur&uuml;ckgegeben?</b></td>
                </tr>
            </table>
            </div>
            <!-- Div mit eigentlichem Inhalt und zum scrollen -->
            <div id="scroll">
                <table><tr>
                <?php 
                
// Spaltenkopf holen
                
$register=mysql_query("SELECT * FROM spaltenverzeichnis") or die (mysql_error());
                while(
$row mysql_fetch_object($register)){
                    
// Für jede Spalte die Datensätze holen
                    
$eintrag=mysql_query("SELECT $row->name FROM buch ORDER BY nummer") or die (mysql_error());
                    echo 
"<td><table style='float:left; margin-right:5px; '>";
                    
                    
$werte=$row->name;
                    
                    
// Anzeige der Inhalte
                    
while($col=mysql_fetch_object($eintrag)){
                        
// Prüfen ob das Feld leer ist
                        
                        
if ($col->$werte !=''){
                            
// Prüfen ob die Nummer angezeigt wird, für den Bearbeitungspfeil
                            
if ($row->name='nummer'){
                                echo 
"<tr><td ><input value='".$col->$werte."' readonly><a href='update.php?nummer=$col->nummer><img src='bearbeiten.gif' alt='change' border=0></a></td>
                                        </tr>"
;
                            }
                            
// Ansonsten nur normale Anzeige ohne Bearbeitungspfeil 
                            
else {
                                echo 
"<tr><td ><input value='".$col->$werte."' readonly></td>
                                    </tr>"
;
                            }
                        }
                        
// Wenn Leer dann auch leeres Valuefeld
                        
else {
                            echo 
"<tr><td><input value='' readonly></td></tr>";
                        }
                    }
                    echo 
"</table></td>";
                }
                
?>
                </tr></table>
            </div>
            
        </div>
</body>
</html>
ob das jetzt php - technisch gute geschrieben ist oder nicht sei bitte erst mal dahin gestellt ^^
Savatage ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:47  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Das passiert z.B. wenn du eine ISO-ü in UTF8 darstellst. Irgendwo hast du also noch ISO-Daten, oder du wandelst UTF in ISO um, bevor du es zur Ausgabe (in UTF schickst.

Was meinst du mit ISO-ü ?
Und wo können die "versteckten" ISO-Daten noch sein?

Muss ich in meinem css File noch irgend etwas ergänzen?
Savatage ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:49  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

So viel ich weiss kann man doch beim Apache selbst auch noch defînieren was der default charset ist? villeicht da mal schauen (falls das bei dir möglich ist)
dsmcg ist offline   Mit Zitat antworten
Alt 29.07.2011, 13:55  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dsmcg Beitrag anzeigen
So viel ich weiss kann man doch beim Apache selbst auch noch defînieren was der default charset ist? villeicht da mal schauen (falls das bei dir möglich ist)
Habe mich an diese Anleitung gehalten.

http://mrfoo.de/archiv/235-Apache-He...et-setzen.html

Sodass in meiner httpd.conf lediglich
AddDefaultCharset utf-8
steht.
-> ohne Erfolg
Savatage ist offline   Mit Zitat antworten
Alt 29.07.2011, 14:02  
Neuer Benutzer
 
Registriert seit: 29.07.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Savatage befindet sich auf einem aufstrebenden Ast
Standard

Habe jetzt alle Datensätze noch mal neu importiert (natürlich in UTF und habe wieder keine Veränderung. Auch mit dem Internet Explorer werden die Zeichen nicht richtig angezeigt. Mit dem Unterschied dass sie als leere Rechtecke dargestellt werden.
Savatage ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Datensätze von einer MySQL in eine andere MySQL Datenbank abgleichen Marvin75 Datenbanken 7 10.06.2011 18:00
PHP Zugriff auf MySQL Community Server gewähren daemonTutorials Datenbanken 8 21.02.2011 12:28
UTF8 Kodierung goldschatz PHP Tipps 2010 6 11.08.2010 20:30
[Erledigt] UTF8 in MySQL md5() PHP Tipps 2010 8 24.03.2010 14:02
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
[Erledigt] UTF8 Codierung - Umlaute in DB taurus Datenbanken 12 05.08.2009 17:23
[Erledigt] Kann keine Umlaute im mysql client eingeben Oger Datenbanken 9 02.04.2009 11:54
[Erledigt] utf8 kodierung Screeze Datenbanken 48 27.02.2009 17:35
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
UTF8 php und MySQL test022 PHP Tipps 2007 7 12.02.2007 23:11
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
MYSQL - ASCII query in UTF8 Tabelle PHP Tipps 2005-2 1 14.09.2005 14:43
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbankverbindung utf8 fragezeichen, set names utf8, mysql charset, php utf8, utf kodiert /u, php raute codieren, mysql php zeichenkodierung bereits alles auf utf8, php mysql umlaute fragezeichen utf-8 mysql_fetch_object, php html raute fragezeichen utf, php mysql werte utf codierung, utf8 codierung raute, mysql raute, sql kollation fragezeichen raute, mysql kodieren utf, set names \utf8\ mit php, eclipse php utf8, mysql rechte set names access denied, raute mit fragezeichen html utf-8 php mysql, php utf8 mysql kollation, php set names utf8

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum