PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umlaute



egon32
04.04.2010, 14:16
Hallo und schöne Ostern

habe ein Problem mit den Umlauten in der Userprofil.php.
Wenn ich dort bei Jetzt ändern den Code für den Umlaute eingebe z.B. ä kann ich im Userprofil nicht mehr die Banner und Textlink Anzahl ändern.


<input type="submit" name="aendern" value="Jetzt �ndern!"><br>

so kann man die Anzahl ändern


<input type="submit" name="aendern" value="Jetzt &auml;ndern!"><br>
und so steht zwar der Umlaut dort aber ändern lässt sich die Anzahl nicht mehr.

Bitte um Hilfe ich habe da bestimmt nur einen Denkfehler

Lokutos
04.04.2010, 14:24
schau mal weiter oben da müsste was stehen wie

if($POST['aendern'] == 'Jetzt &auml;ndern'){.......

da musst du natürlich das selbe eintragen.

Gremlin
04.04.2010, 14:41
schau mal weiter oben da müsste was stehen wie

if($POST['aendern'] == 'Jetzt &auml;ndern'){.......

da musst du natürlich das selbe eintragen.
Noch besser wäre


if(isset($POST['aendern'])){

Dann funzt es bei allen values :cool:

Lokutos
04.04.2010, 14:43
das ist dein code gremlin gg :biggrin1: Original vms gg

zu beachten ist dan aber das du post['aendern'] aber nur an einer stelle nutzt.

Grüsse
Lokutos

egon32
04.04.2010, 14:56
if (!isset($_POST['aendern'])) $_POST['aendern']

steht ganz oben aber auch wenn ich unten ae nehme geht es nicht nur mit dem ?

Zeichen kann ich die Banner ändern

Lokutos
04.04.2010, 16:00
die stelle meint gremlin nicht sondern weiter unten da wo der Query ist.

MFg Lokutos

jpwfour
04.04.2010, 16:42
das ist dein code gremlin gg :biggrin1: Original vms gg
...

Gremlin kann die Schuld ja immer noch auf Nebulus schieben :biggrin1:

Ah Offtopic, sag was, hm was fällt mir ein?

Zwing die Leute doch dazu, Unicode zu benutzen, also einfach das ö ä ü ß etc. so reinsetzen wies is :wink:

egon32
04.04.2010, 17:50
Ich bin einfach zu doof dafür bei mir geht das nur mit ?


Ich will doch nur einen Buchstaben haben und kein ????:frusty::frusty:

Lokutos
04.04.2010, 18:39
Poste am besten einfach mal den code ist ja vom original vms

und dan was du auf dem button stehen haben willst.

Sebmaster
04.04.2010, 18:52
Pack mal in die functions.lib.php folgendes rein:


header('Content-Type: text/html; charset=iso-8859-1');

egon32
04.04.2010, 19:10
<?
userstatus();
// Variabeln definieren
if (!isset($_POST['aendern'])) $_POST['aendern'] = "";
if (!isset($_POST['acc_del'])) $_POST['acc_del'] = "";
if (!isset($_POST['del_passwort'])) $_POST['del_passwort'] = "";
if (!isset($_POST['pwd'])) $_POST['pwd'] = "";
if (!isset($_POST['pwd2'])) $_POST['pwd2'] = "";
if (!isset($_POST['newsletter'])) $_POST['newsletter'] = "";
if (!isset($_POST['paidmails'])) $_POST['paidmails'] = "";
if (!isset($change)) $change = "";
if (!isset($mailstatus)) $mailstatus = "";
if (!isset($delchange)) $delchange = "";

if ($_POST['acc_del'] == 'Jetzt l�schen!' && $_POST['del_passwort']) {
$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
@require_once ("lib/schittstellen/".$schnittstelle['schnittstelle'].".php");
@uservalidate ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_SESSION['uid'],$_POST['del_passwort']);
if ($error) {
$delchange = $trans_ausgabe.'<br>';
} else {
$sperrzeit = time()+(86400*30);
db_query("INSERT INTO ".$db_prefix."_userblacklist (uid,zeit) VALUES ('".$_SESSION['uid']."','".$sperrzeit."')");
db_query("DELETE FROM ".$db_prefix."_kontodaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_emaildaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid']."");
db_query("DELETE FROM ".$db_prefix."_werberdaten WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_werberdaten SET werber = 0 WHERE werber=".$_SESSION['uid']."");
echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
}

}

if ($_POST['aendern'] == 'Jetzt �ndern!') {
// Passwort �ndern beginn!
if ($_POST['pwd'] && $_POST['pwd2']) {
if ($_POST['pwd'] == $_POST['pwd2']) {
if (strlen($_POST['pwd']) >= 8) {
db_query("UPDATE ".$db_prefix."_kontodaten SET passwort = '".md5($_POST['pwd'])."' WHERE uid=".$_SESSION['uid']."");
echo '<meta http-equiv="refresh" content="0; URL=http://'.$_SERVER['HTTP_HOST'].'/?content=/intern/startseite&logout=true">';
//$change .= 'Das Passwort wurde ge&auml;ndert!<br><b><font color="#FF0000">Bitte logge Dich jetzt aus und wieder neu ein!</font></b><br>';
} else {
$change = 'Passw&ouml;rter m&uuml;ssen min. 8 Zeichen haben!';
}
} else {
$change = 'Die Passw&ouml;rter stimmen nicht &uuml;berein!';
}
}
// Passwort �ndern ende!



//Nickname �ndern beginn !
if ($_POST['aendern'] == 'Jetzt �ndern!')
{
if (isset ($_POST['nickname'])) {
$nickname = ucfirst($_POST['nickname']);
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$nickname_check2 =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'AND uid=".$_SESSION['uid']."");
if (mysql_num_rows($nickname_check))
if (mysql_num_rows($nickname_check2)) {

}else{
$change = 'Dieser Nickname ist schon vergeben!<br>';
}
else
{
db_query("UPDATE ".$db_prefix."_userdaten SET nickname = '".$nickname."' WHERE uid=".$_SESSION['uid']."");
}
}
}

//Nickname �ndern ende!


// Emailadresse & Mailvarianten �ndern!

// SecVMS change begin
if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse']))
{
$change .= 'Der Emailsyntax ist falsch!<br>';
}
else
{
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
if(!in_array($_POST['max_forced'], array(5, 10, 15, 20))) $_POST['max_forced']=5;
if(!in_array($_POST['max_forcedt'], array(5, 10, 15, 20))) $_POST['max_forcedt']=5;
db_query("UPDATE ".$db_prefix."_emaildaten SET freigabe_fuer = ".$mailstatus.", emailadresse = '".$_POST['emailadresse']."' WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_userdaten SET max_forced = '".$_POST['max_forced']."' WHERE uid=".$_SESSION['uid']."");
db_query("UPDATE ".$db_prefix."_userdaten SET max_forcedt = '".$_POST['max_forcedt']."' WHERE uid=".$_SESSION['uid']."");
$change .= 'Deine Daten wurden aktualisiert!<br>';
}
// SecVMS change end
}
$userdaten = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_userdaten WHERE uid=".$_SESSION['uid'].""));
$emaildaten = mysql_fetch_array(db_query("SELECT `emailadresse`,`freigabe_fuer` FROM ".$db_prefix."_emaildaten WHERE uid=".$_SESSION['uid'].""));
if ($emaildaten['freigabe_fuer'] == 0) {$newsletter = 0; $paidmails = 0;}
if ($emaildaten['freigabe_fuer'] == 1) {$newsletter = 1; $paidmails = 0;}
if ($emaildaten['freigabe_fuer'] == 2) {$newsletter = 0; $paidmails = 1;}
if ($emaildaten['freigabe_fuer'] == 3) {$newsletter = 1; $paidmails = 1;}
?>

<?head("$seitenname - Userprofil");?>
Hier findest Du deine Profildaten, bitte passe diese Daten immer an so das diese aktuell sind. Deaktiviere bitte
die Paidmails wenn Du keine habe m&ouml;chtest!<br>
<?foot();?>

<?head("$seitenname - Profildaten");?>
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<form action="" method="post">
<tr>
<td>Nickname:</td>
<td><input type="text" name="nickname" value="<?=$userdaten['nickname'];?>"></td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" value="<?=$userdaten['nachname'];?>"></td>
</tr>
<tr>
<td>Vorname:</td>
<td><input type="text" value="<?=$userdaten['vorname'];?>"></td>
</tr>
<tr><TD>Geschlecht:</TD>
<TD><input type="text" value="<?=$userdaten['geschlecht'];?>">"</TD>
</tr>
<td>Land:</td>
<td><input type="text" value="<?=$userdaten['land'];?>"></td>
</tr>
<td>Geburtsdatum:</td>
<td><input type="text" value="<?=$userdaten['geburtsdatum'];?>"></td>
</tr>
<td>Ort:</td>
<td><input type="text" value="<?=$userdaten['ort'];?>"></td>
</tr>
<td>Stra&szlig;e:</td>
<td><input type="text" value="<?=$userdaten['strasse'];?>"></td>
</tr>
<td>Hausnummer:</td>
<td><input type="text" value="<?=$userdaten['hausnummer'];?>"></td>
</tr>
<td>PLZ:</td>
<td><input type="text" value="<?=$userdaten['plz'];?>"></td>
</tr>
<tr>
<td>Emailadresse:</TD>
<td><input type="text" name="emailadresse" value="<?=$emaildaten['emailadresse'];?>"></td>
</tr>
<tr>
<td>Id:</td>
<td><?=$_SESSION['uid'];?></td>
</tr>

<tr>
<td>Neues Passwort:</td>
<td><input type="password" name="pwd"></td>
</tr>
<tr>
<td>Neues Passwortbest&auml;tigung:</td>
<td><input type="password" name="pwd2"></td>
</tr>
<tr>
<td>Newsletter:</td>
<td>
<select name="newsletter">
<option value="1" <? if ($newsletter == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($newsletter == 0) echo 'selected';?>>Nein</option>
</select>
</td>
</tr>
<tr>
<td>Paidmails:</td>
<td>
<select name="paidmails">
<option value="1" <? if ($paidmails == 1) echo 'selected';?>>Ja</option>
<option value="0" <? if ($paidmails == 0) echo 'selected';?>>Nein</option>
</select>
</td>
</tr>
<tr>
<td>Max. anzeigbare Forcedbanner:</td>
<td>
<select name="max_forced">
<option value="5" <? if ($userdaten['max_forced'] == 5) echo 'selected';?>>5</option>
<option value="10" <? if ($userdaten['max_forced'] == 10) echo 'selected';?>>10</option>
<option value="15" <? if ($userdaten['max_forced'] == 15) echo 'selected';?>>15</option>
<option value="20" <? if ($userdaten['max_forced'] == 20) echo 'selected';?>>20</option>
</select>
</td>
</tr>
<tr>
<td>Max. anzeigbare Text Links:</td>
<td>
<select name="max_forcedt">
<option value="5" <? if ($userdaten['max_forcedt'] == 5) echo 'selected';?>>5</option>
<option value="10" <? if ($userdaten['max_forcedt'] == 10) echo 'selected';?>>10</option>
<option value="15" <? if ($userdaten['max_forcedt'] == 15) echo 'selected';?>>15</option>
<option value="20" <? if ($userdaten['max_forcedt'] == 20) echo 'selected';?>>20</option>
</select>
</td>
</tr>
<tr>
<td align="center" colspan="2"><br>
<input type="submit" name="aendern" value="Jetzt �ndern!"><br>
<br>
<?=$change;?>
</td>
</tr>
</form>
</table>
<?foot();?>

<?head("$seitenname - Account l�schen");?>
Hier an dieser Stelle kannst Du deinen Account sofort selber l&ouml;schen wenn Du es w&uuml;nscht.
Bitte bedenke das alle Daten von Dir verloren gehen und etweiliges Guthaben dann auch
verloren geht, eine sp&auml;tere Forderung an <?=$seitenname;?> ist ausgeschlossen!
<div align="center">
<form action="" method="post"><br>
<?=$delchange;?>
Passwort&nbsp;&nbsp;<input type="Password" name="del_passwort" value="">&nbsp;&nbsp;&nbsp;<input type="Submit" name="acc_del" value="Jetzt l�schen!">
</form>
<font color="#cc0000"><div align="center">Bei L&ouml;schung des Accounts bist Du f&uuml;r 30 Tage f&uuml;r eine Neuanmeldung gesperrt!</div><br></font>
</div>
<?foot();?>

Jetzt �ndern! bitte mit (ändern)

Sebmaster
04.04.2010, 19:18
Hast du das als UTF8 in deinem Editor geladen?

egon32
04.04.2010, 19:44
Ja habe ich keine Änderung ergeben

marcaust
07.04.2010, 01:30
So sieht das aus wenn man eine als iso-8859-1 gespeicherte Datei als UTF-8 bearbeitet....

Je nach verwendetem Browser muss nicht nur der Meta-Tag richtig gesetzt sein:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

sondern die Datei selber auch mit dem entsprechendem Zeichensatz gespeichert werden. ( Es gibt Browser die Ignorieren den Meta-Tag....)

Dann gibts da noch die Apache Direktive:
AddDefaultCharset On|Off|Zeichenkodierung

hast du da z.Bsp.: UTF-8 drin stehen und lädst ne iso-8859-1 Datei hoch, wird diese als UTF-8 ausgeliefert und ebenfalls als UTF-8 angezeigt. Auch hier wird der Meta-Tag ignoriert Der Parameter sollte auf Off stehen (standart).

Die VMS Dateien sind soweit alle in ISO-8859-1 erstellt. Willst du das auf UTF-8 haben, must du den Metatag ändern und jede! Datei konvertieren (ohne BOM). Wenns ganz schlecht läuft darfst du dann auch noch die Datenbank auf UTF-8 abändern.
Ich kann dir sagen, eine echte sch... arbeit. Hab das gerade durch um einen in iso-8859-1 geschriebenem Script Grieschich beizubringen...

Masterphil
03.04.2012, 20:41
Nabend an alle.

Habe mal wieder ein Problem duch das ServerUpdate meines Anbieters.

Sehr geehrte Kundin, sehr geehrter Kunde,

"durch die Umstellung der PHP und MySQL Version auf 5 ist der Standard Zeichensatz bitte auf UTF8 Ihrer Seiten zu ändern das dort die Umlaute richtig angezeigt werden"


Aufefallen ist mir das bei der Shoutbox, und nun auch bei den News, sobald etwa neues geschrieben wird macht er dort dann falsche Umlaute, auch in der DB stehts dann falsch drin.

Nun habe ich im header schonmal testweise
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
eingebaut.

Die Fehler bei News und Shoutbox sind dann plötzlich weg, dafür kommt der Fehler dann in allen anderen Bereichen wie Menü Links und Rechts Mediadaten etc halt der Content.

Wenn ich den Meta direkt in die Shoutbox einbaue kommts auch blos zu den Fehler das diese dann korrekt geht, die News auch, aber der Rest halt nicht.


Hoffe jemand kann hier helfen weiß nun nicht so ganz was ich machen soll.

MfG

jpwfour
04.04.2012, 19:19
...
Nun habe ich im header schonmal testweise
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
eingebaut.

Die Fehler bei News und Shoutbox sind dann plötzlich weg, dafür kommt der Fehler dann in allen anderen Bereichen wie Menü Links und Rechts Mediadaten etc halt der Content.
...

Grundsätzlich schonmal auf dem richtigen Weg. UTF8 ist den "alten" Latin-1/Windows Code Pages usw. vorzuziehen, da international und so :wink:

Jetzt musst du allerdings alle Umlaute/Sonderzeichen usw. in den .php Dateien anpassen. Dazu sollte man wissen, wie diese kodiert wurden, aber vermutlich ist das bei dir Standard, wie in den VMS Dateien bzw. in einem (deutschen) Windows System: iso-8859-1 aka Latin-1

Von da aus willst du zu UTF-8(ohne BOM: byte order mark, sollte dir das mal über den weg laufen).

Das sollte jeder einigermaßen brauchbare Texteditor können, mit dem Windows-Editor/Notepad könnte das allerdings schwierig werden.

Ich empfehle da sowas wie PSPad: http://www.pspad.com/de/

Damit kannst du eine Datei/mehrere Dateien öffnen und automatisch "umwandeln" lassen.

Noch schöner wäre es evtl. eine rein auf ASCII (quasi der kleinste gemeinsame Nenner aller Textdateien) basierende Lösung zu wählen, dazu ersetzt man Sonderzeichen durch ihre Unicode-Nummer oder spezielle HTML benannte Zeichen:


ä -> &auml;http://de.selfhtml.org/html/referenz/zeichen.htm

Auch das kann PSPad automatisch für dich erledigen.