Antworten auf deine Fragen:
Neues Thema erstellen

Umlaute aus Datenbank lesen?

The_Mojo1988

Noch nicht viel geschrieben

Hallo liebe psd Gemeinde ;)

ich sitze heute schon den ganzen tag daran und versuche verzweifelt umlaute richtig darzustellen, die ich aus einer sql datenbank abrufe....

den netten herr google habe ich auch befragt aber ich bin noch zu keiner lösung gekommen.

und mit "zeichen ersetzen" möchte ich nicht arbeiten.

Nun gut kommen wir zur sache....


der aufbau ist wie folgt:

Versuch 1

- index.php (
PHP:
echo "<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
</head>";
)

- öffnet per iframe die
gaestebuch.php (
PHP:
echo "<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">
</head>";
)

- in der gaestebuch.php werden die einträge von der sql datenbank abgerufen (datenbank ist auf text / ~utf8_generic eingestellt)

in der datenbank sind die umlaute richtig dargestellt.

sobald ich die abfrage mache werden die umlaute nicht richtig wiedergegeben. (siehe ) - es erscheint ein "?".



Versuch 2

- in der index.php und in der gaestebuch.php habe ich den charset utf-8 auf charset=ISO-8859-1 geändert.

- ohne erfolg



Versuch 3

- über notepad ++ habe ich die kodierung umgestellt von utf8 auf utf8 ohne bom auf iso, ......

- ohne erfolg
--------------------------------------------------------------

Das Problem muss in der abfrage liegen, da sonstige umlaute, die als html geschrieben sind richtig wiedergegeben werden.

in der datenbank stehen die umlaute richtig drinne.

bei abruf entsteht dann der fehler.



Die datein:

gaestebuch.php
PHP:
<?	
session_start ();
?>
<?php
echo "<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">
</head>";
?>

<div id="exit" style="z-index:1; float:right;">
			  <a  href="http://www.grow-on.de/grow-on/goneu3" target="_top">Schließen</a>   
         </div>
<table align="center" valign="center" style="width:100%">
		<tr>		
			<td id="td1" align="center" valign="center"> 	
				<a href="../aktuelles.php"><u><b>Aktuelles</u></b></a>
			</td>
		</tr>
		
		<tr>	
			<td id="td2" align="center" valign="center">	
				<a href="../../news.php">News</a>
				 - 
                 <a href="gaestebuch.php">Gästebuch</a>
				 - 		
				<a href="aktuelles_forum.php">Forum</a>
				- 		
				<a href="aktuelles_feedback.php">Feedback</a>
   			</td>
		</tr>
</table>		
<div id="inhalte">


<P align="center"><u><a href="gaestebuch-eintrag.php">Einen Eintrag erstellen</a></u></P>

<?
$smileys = array(
0 => ":)",
1 => ";)",
2 => ":D",
3 => "8)",
4 => ":(",
5 => ":?",
6 => chr(13));

$gif = array(
0 => "<img src='smilie/lol.gif'>",
1 => "<img src='smilie/zwinker.gif'>",
2 => "<img src='smilie/lach.gif'>",
3 => "<img src='smilie/cool.gif'>",
4 => "<img src='smilie/duarmer.gif'>",
5 => "<img src='smilie/confused.gif'>",
6 => "<br>");

$sqlhost='****';
$username='****';
$passwort='****';
$database='****';
$proseite=10;
$page = $_GET['page'];

$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM gaestebuch ORDER BY id DESC";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$_GET['page'] * $proseite;
$sql="SELECT * FROM gaestebuch ORDER BY id DESC LIMIT $start,$proseite";
$result = mysql_query($sql,$db);
$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }

?>
<p align="center"><font size="2">Zur Zeit sind <? echo $number; ?> Einträge im Gästebuch  <br><br>
<?


 if ($page>0) {
	$i=$page-1;
	echo "<A HREF=\"gaestebuch.php?page=$i\">&lt;previous&nbsp</A>";
}
for($i=0; $i<=$seiten; $i++) {
	if ($i==$page) {
		echo $i."&nbsp;";
	}
	else {
		echo "<A HREF=\"gaestebuch.php?page=$i\">$i</A>&nbsp;";
	}
}
if ($page<$seiten) {
	$i=$page+1;
	echo "<A HREF=\"gaestebuch.php?page=$i\">next&gt;</A>";
}

?>
</font>
<br>
<font size="1">Seite <? echo $page; ?> - Einträge von <? echo $start; ?> bis <? echo $ende ?> </font></p></font>
<?

// SQL-Befehl für den Zugriff
$sql = "
    SELECT
        *
    FROM gaestebuch
    ORDER BY id
    DESC
";

// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}


// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);



while ($row = mysql_fetch_row($result))
{

$gb_id = $row["0"]  ;
$gb_name = $row["1"] ;
$gb_email = $row["2"] ;
$gb_url = $row["3"]    ;
$gb_datum = $row["4"]   ;
$gb_eintrag = $row["5"]  ;




?>


<div id="guestbook">
	
	<div class="name">
	<?
	echo $gb_name;
	?>
	</div>
	
	<div class="datum">
	<?
	echo $gb_datum;
	?>
	</div>
	
	<div class="eintrag">
	<?
	echo $gb_eintrag;
	?>
	</div>
	
	<div class="email">
	<?
	echo $gb_email;
	?>
	</div>
	
	<div class="url">
	<?
	echo $gb_url;
	?>
	</div>
</div>
<hr>
<br>




<p align="center"><font size="2">
<?

	}
if ($page>0) {
	$i=$page-1;
	echo "<A HREF=\"gaestebuch.php?page=$i\">&lt;previous</A>";
}
for($i=0; $i<=$seiten; $i++) {
	if ($i==$page) {
		echo $i."&nbsp;";
	}
	else {
		echo "<A HREF=\"gaestebuch.php?page=$i\">$i</A>&nbsp;";
	}
}
if ($page<$seiten) {
	$i=$page+1;
	echo "<A HREF=\"gaestebuch.php?page=$i\">next&gt;</A>";
}

?>
</font>
<font size="1">
<br>Seite <? echo $page; ?> - Einträge von <? echo $start; ?> bis <? echo $ende ?></font></p>
</div>



index.php
PHP:
<? 
session_start ();
include('pixlie.php');    //Einbinden von Pixlie
?>
<!DOCTYPE html>
<html>
<head>
<?echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">";?>
<link rel="stylesheet" href="style.css">
<title>Grow-On</title>

<!-- Add jQuery library -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

<!-- Add mousewheel plugin (this is optional) -->
<script type="text/javascript" src="./fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>

<!-- Add fancyBox -->
<link rel="stylesheet" href="./fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />
<script type="text/javascript" src="./fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>

<!-- Optionally add helpers - button, thumbnail and/or media -->
<link rel="stylesheet" href="./fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" />
<script type="text/javascript" src="./fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
<script type="text/javascript" src="./fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.5"></script>

<link rel="stylesheet" href="./fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="./fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>



<script type="text/javascript">
		$(document).ready(function() {
			/*
			 *  Simple image gallery. Uses default settings
			 */

			$(".fancybox2").fancybox({
   

				closeBtn          : false,
				
				openEffect        : 'elastic',
				openSpeed         : 1000,
				
				minWidth		: 1000,
				minHeight		: 800,
				maxHeight		: 1000,
				
				closeEffect       : 'elastic',
				closeSpeed        : 1000,


				 

				padding          : 0,

				 helpers          : {
								  title	: {
									type: 'inside'
										},
											
											overlay: {
											opacity: 0.1,
											css: {'background-color': ''}
													 }
									 },
				

				nextEffect        : 'fade',
				prevEffect        : 'fade'

			
			}); // fancybox
			$(".fancybox").fancybox({
				 closeClick       : false,
				 hideOnOverlayClick: false,
				 hideOnContentClick: false,

				padding          : 0,
				minWidth		: 800,
				minHeight		: 600,
				 helpers          : {
								  title	: {
									type: 'outside'
										},
											
											overlay: {
											opacity: 0.1,
											css: {'background-color': ''}
													 }
									 },
			}); // fancybox	

			
			$('.fancybox-media').fancybox({
					openEffect  : 'none',
					closeEffect : 'none',
					helpers : {
						media : {}
					}
			});

			// Fancybox ohne klick aufrufen	
		//	$.fancybox({
        //    'width': '40%',
        //    'height': '10%',
        //    'autoScale': true,
        //    'transitionIn': 'fade',
        //    'transitionOut': 'fade',
        //    'type': 'iframe',
		//	<?
		//	$fehler = $_GET["fehler"];
		//	if ( $fehler == "1")
		//	{
		//	?>
        //    'href': 'http://www.grow-on.de/grow-on/goneu3/join.php?fehler=1'
		//	<?
		//	}
		//	else
		//	{
		//	?>
		//	'href': 'http://www.grow-on.de/grow-on/goneu3/inhalte/home.php'
		//	<?
		//	}
		//	?>
			
	
			
		//});

		});
		
		$('a.more').click(function() {
			$.fancybox({
				'type' : 'iframe',
				// hide the related video suggestions and autoplay the video
				'href' : this.href.replace(new RegExp('watch\\?v=', 'i'), 'embed/') + '?rel=0&autoplay=1',
				'overlayShow' : true,
				'centerOnScroll' : true,
				'speedIn' : 100,
				'speedOut' : 50,
				'width' : 640,
				'height' : 480
			});
			// "this.preventDefault()" doesn't work here
			return false;

		
			$('.fancybox-media').fancybox({
				openEffect  : 'none',
				closeEffect : 'none',
				helpers : {
					media : {}
					}
			});
			
	});
	</script>

<style type="text/css">
a {outline: 0 none;}
#wrapper {
	width: 800px;
	margin: 0 auto;
	position: relative;
}
.links {
position: absolute; 
z-index: 99999;
top: 0;
right: 0;
background: #f2f2f2;
width: 250px;
height: 100%;
display: block;
}
.links .inner {
padding: 50px 10px 10px 15px;
font-size: 12px;
}
#fancybox-buttons ul {
margin: 0 15px 0 auto !important;
}
</style>	
</head>


<body>
<?
$year = date("Y");
?>	
    <div id="head">
         <div id="impressum">
              <a class="fancybox fancybox.iframe" href="inhalte/impressum.php"><img src="images/web-layout/03_02.png" width="152px" height="95px" alt=""></a>
         </div>
         <div id="logo">
				<a  href="index.php"><img src="images/web-layout/02_03.png" width="416px" height="149px" alt=""></a>
         </div>
         <div id="login">
		 	<?
			if (isset ($_SESSION["user_id"]) )
			{
			?>
				<a class="fancybox-media fancybox.ajax"  href="join.php"><img src="images/web-layout/03_05_2.png" width="48px" height="106px" alt=""></a>
			<?
			}
			else
			{
			?>
				<a class="fancybox-media fancybox.ajax"  href="join.php"><img src="images/web-layout/03_05.png" width="48px" height="106px" alt=""></a>
			<?
			}
			?>
			
         </div>
    </div>
    <header>
            <nav>
                 <ul>
                     <li><a class="fancybox fancybox.iframe" href="inhalte/about.php">Über Uns</a>
                         <ul id="submenu">
							<div class="submenupos">
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/vision.php">Unsere Vision</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/leiterschaftsteam.php">Leiterschaftsteam</a></li>
							 <li><a class="fancybox fancybox.iframe" href="inhalte/sub/lobpreisband.php">Lobpreisband</a></li>
							</div>
						 </ul>
                      </li>

                     <li><a class="fancybox fancybox.iframe" href="inhalte/programm.php">Programm</a>
                         <ul id="submenu">
							<div class="submenupos">
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/programm-go.php">Grow On <?echo $year;?></a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/programm-hf.php">Himmelsfels <?echo $year;?></a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/events.php">Andere Events</a></li>
							 </div>
                         </ul>
                      </li>
                     <li><a class="fancybox2 fancybox.iframe" href="inhalte/mediathek.php">Mediathek</a>
                         <ul id="submenu">
							<div class="submenupos">
                             <li><a class="fancybox2 fancybox.iframe" href="gallerie2.php">Galerie</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/medien_technik.php">Technik Übersicht</a></li>
							</div>
						</ul>
                      </li>
                     <li><a class="fancybox fancybox.iframe" href="inhalte/aktuelles.php">Aktuelles</a>
                         <ul id="submenu">
							<div class="submenupos">
                             <li><a class="fancybox fancybox.iframe" href="news.php">News</a></li>
							 <?
							if (isset ($_SESSION["user_id"]) )
							{
							?>
							<li><a class="fancybox fancybox.iframe" href="facebook/grow-on-group/index.php">Facebook Gruppe</a></li>
							<?
							}
							?>
							 <li><a class="fancybox fancybox.iframe" href="inhalte/sub/gaestebuch.php">Gästebuch</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/aktuelles_forum.php">Forum</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/aktuelles_feedback.php">Feedback</a></li>
							 </div>
                         </ul>
                      </li>
                     <li><a class="fancybox fancybox.iframe" href="inhalte/kontakt.php">Kontakt</a>
                         <ul id="submenu">
							<div class="submenupos">
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/kontakt_leiterschaft.php">Leiterschaft</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/kontakt_seelsorge.php">Seelsorge</a></li>
                             <li><a class="fancybox fancybox.iframe" href="inhalte/sub/kontakt_hp-support.php">Online Support</a></li>
							 <li><a class="fancybox fancybox.iframe" href="inhalte/sub/kontakt_wir-packen-an.php">Wir packen an!</a></li>
							 </div>
                         </ul>
                      </li>
                 </ul>
            </nav>
    </header>
    <div role"main">
         <article>
		 <?
			$fehler = $_GET["fehler"];
			$acc = $_GET["acc"];
				if($fehler == "1")
				{
				 ?>
								<p align="left">
									<?include('join.php')?>
								</p>
				<?
				}
				else if($acc == "1")
				{
				 ?>
								<p align="left">
									<IFRAME id="myframe" SRC="facebook/grow-on-group/index.php" WIDTH=800 HEIGHT=380>
									If you can see this, your browser doesn't 
									understand IFRAME.  However, we'll still 
									<A HREF="facebook/grow-on-group/index.php">link</A> 
									you to the file.
									</IFRAME>
								</p>
				<?
				}
				else if($acc != "1" )
				{
				  ?>
								<p align="left">
									<IFRAME id="myframe" SRC="inhalte/home.php" WIDTH=800 HEIGHT=380>
									If you can see this, your browser doesn't 
									understand IFRAME.  However, we'll still 
									<A HREF="inhalte/home.php">link</A> 
									you to the file.
									</IFRAME>
								</p>
				<? 
				}
				else
				{
				  ?>
								<p align="left">
									<IFRAME id="myframe" SRC="inhalte/home.php" WIDTH=800 HEIGHT=380>
									If you can see this, your browser doesn't 
									understand IFRAME.  However, we'll still 
									<A HREF="inhalte/home.php">link</A> 
									you to the file.
									</IFRAME>
								</p>
				<?      	
				}
				?>
				
					
         </article>
    </div>
    <footer>
			<?
			if (!isset ($_SESSION["user_id"]) )
			{
			?>
			<div id="footfb">
			<iframe id="iframefb" src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.grow-on.de&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="yes" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe>
			</div>
			<?
			}
			?>
            <nav>
                 <ul>
						<?
						if (isset ($_SESSION["user_id"]) )
						{
						?>
						<li><a href="?logout=1"><font size="2">Ausloggen</font></a></li>
						<?
							$logout = $_GET["logout"];
							if ($logout == "1")
							{
						// Wird ausgeführt um mit der Ausgabe des Headers zu warten. 
							ob_start (); 
							session_start (); 
							session_unset (); 
							session_destroy (); 
							header ("Location: index.php?logout=1");
							ob_end_flush ();
							}
							?>
						<li><a href="#">Neue News 2</a></li>
						<?
						}
						else							
						{
						?>
						<li><a href="#"><font size="2">Registrieren?</font></a><br>
						<a href="#"><font size="2">Passwort vergessen?</font></a></li>
						
						<?
						}	
						?>
						
                 </ul>
				
            </nav>
      
            <address>
                     <ul>
                         <li><font size="1">grow-on-info@web.de</font></li>
                     </ul>
                     <ul>
                         <li><font size="1">©<?echo $year;?> by Grow-On</font><li>
                     </ul>
            </address>
    </footer>
</body>
</html>



Vielen Danke für die hilfe!
 

The_Mojo1988

Noch nicht viel geschrieben

AW: Umlaute aus Datenbank lesen?

Hast du das schon mal probiert:
$new_string = htmlentities($string, ENT_QUOTES, "UTF-8");
?

nein das habe ich noch nicht probiert!

bitte erkläre mir wie ich es anzuwenden habe, ich bin noch nicht so fest in sachen php


so?

PHP:
<div class="eintrag">
	<?
	$new_string = htmlentities($gb_eintrag, ENT_QUOTES, "UTF-8");
	echo $new_string;
	?>
	</div>

dann entfällt text inhalt und die komplette seite zeigt nun diese "?" an
 
Zuletzt bearbeitet:

Bertram_Heinrichs

Aktives Mitglied

AW: Umlaute aus Datenbank lesen?

Dein Header sieht aber auch bisschen komisch aus. Besonders das Charset.
Vom Prinzip sollte das für HTML 5 so aussehen:

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>HTML5 Layout</title>
<link rel="stylesheet" href="css/main.css" type="text/css" />
</head>
<body>
...
</body>
</html>
 

Dagobert68

Nicht mehr ganz neu hier

AW: Umlaute aus Datenbank lesen?

Moin :)

Ich hatte ähnliche Probleme und hab herausgefunden, dass natürlich grundsätzlich alles auf UTF-8 stehen sollte und die PHP-Dateien auch als UTF-8 ohne BOM gespeichert werden sollten (mit BOM mag PHP nicht). Wenn das also alles korrekt und einheitlich eingestellt ist, dann sollte es eigentlich funktionieren. Hat's bei mir trotzdem nicht. Klingt irgendwie ähnlich wie dein Fall.

Ich hab dann bei Erstellung der Datenbankverbindung noch einmal explizit hinzugefügt, dass es UTF-8 sein soll.

$db->set_charset('utf8')

Das hat bei mir funktioniert, allerdings verwende ich das neuere mysqli.

Ist aber vielleicht einen Versuch wert :)

Viel Erfolg!
Grüßli,
Dagobert
 

PapaG666

Noch nicht viel geschrieben

AW: Umlaute aus Datenbank lesen?

Hallo,
ich habe nun ein wenig deine Einträge verfolgt und gelesen, das du an den verschiedensten Stellen das UTF-8 eingestellt hast.

Leider habe ich nicht ersehen können, in welchem Zeichensatz deine Datenbank arbeitet.

Hast du dort auch UTF-8 eingestellt?
 

The_Mojo1988

Noch nicht viel geschrieben

AW: Umlaute aus Datenbank lesen?

okay danke jungs!

das hier hat geholfen!

PHP:
$con = mysql_connect("localhost","user","password");
 
if (!$con) {
  die('Could not connect: ' . mysql_error());
}
 
mysql_select_db("database", $con);
mysql_query("SET NAMES 'utf8'");
// mysql_query("SET CHARACTER SET 'utf8'");



zu sehen:
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.620
Beiträge
1.538.373
Mitglieder
67.544
Neuestes Mitglied
janusbarman
Oben