Autor |
Nachricht |
metty
Threadersteller
Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 16:58
Titel [Javascript -> PHP] String wird falsch übergeben [solved] |
|
|
Hallo Miteinander,
meine ersten Gehversuche mit Ajax hab ich eigentlich ganz gut überstanden. Nach der üblichen Tutorialwälzerei wollte ich mich als dran machen, etwas sinnvolles zu programmieren und hab dabei an ein Gästebuch gedacht. Ein Gästebuch welches nicht (komplett) neugeladen werden muss, wenn man Einträge hinzufügt, Seiten wechselt etc. Beim ersten hakts allerdings schon an einer Kleinigkeit. Zwar kann ich Einträge hinzufügen und die neuen anzeigen lassen, aber die Kodierung der Strings hakt. Zeilenumbrüche macht er auch nicht...
Wenn ich zum Beispiel in meinem Kommentar Umlaute oder Sonderzeichen einfüge, werden die zu irgendeinem Kauderwelsch konvertiert. Ich weiß allerdings nicht warum.
Aus
wurde
Irgendwas ist falsch, das weiß ich. Ich weiß nur nicht was. Habt ihr vielleicht ne Ahnung?
HTML mitJavascript:
Code: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>Burkhardrock – 31.08.2007 – Wadersloh, Stellwerk</title>
<link href="style/sheet.css" rel="stylesheet" type="text/css" />
<base target="_self" />
<script type="text/javascript" src="script/javascripts.js"></script>
<script type="text/javascript" src="script/prototype.js"></script>
<script type="text/javascript" language="javascript">
<!--
function getGBEntrys(startpos,limit) {
var url = "inc/guestbook.php";
var pars = "do=get&startpos=" + startpos + "&limit=" + limit;
var myAjax = new Ajax.Request(
url,
{
method: "post",
parameters: pars,
onCreate: Element.show("systemWorking"),
onComplete: showGBEntrys
}
);
}
function showGBEntrys(Request) {
Element.hide("systemWorking");
$("gaestebuchdiv").innerHTML = Request.responseText;
}
function makeEntry() {
var url = "inc/guestbook.php";
//var pars = "do=make&" + Form.serialize(document.forms['gbeintrag']);
var pars = "do=make&gbname=" + $F("gbname") + "&gbemail=" + $F("gbemail") + "&gbhomepage=" + $F("gbhomepage") + "&gbcaptcha=" + $F("gbcaptcha") + "&gbcomment=" + $F("gbcomment");
//alert(pars);
var myAjax = new Ajax.Request(
url,
{
method: "post",
postBody: pars,
onCreate: hideForm
}
);
}
function updatePage(Request) {
Element.hide('write');
Element.hide('gbform');
Element.show("systemWorking");
getGBEntrys(0,500);
}
function showFehler(Request) {
$('gbeintragmeldung').innerHTML = Request;
}
function showForm() {
Element.hide('write');
Element.show('gbform');
}
function hideForm() {
Element.hide('write');
Element.hide('gbform');
}
//-->
</script>
<!-- Was hat 4 Beine und einen Arm? - Nen Rottweiler auf nem Kinderspielplatz! -->
</head>
<!--[if lte IE 6]>
<style type="text/css" media="all" />
body {
background: #000000;
}
div#einhundert {
background: #000000;
}
div #logo {
background-image: url("images/bg_title_ie.gif");
}
div#infos {
background-image: url("images/bg_infos.gif");
}
</style>
<![endif]-->
<body onload="getGBEntrys(0,500); MM_preloadImages('images/nav_geschichte_o.gif','images/nav_diebands_o.gif','images/nav_alleinfos_o.gif','images/nav_gaestebuch_o.gif','images/nav_impressum_o.gif')">
<!-- 100% -->
<div id="einhundert">
<!-- SEITE START -->
<div id="site">
<!-- LOGO START -->
<div id="logo"><a href="index.html"><img src="images/clearpixel.gif" alt="" border="" width="358" height="254" /></a></div>
<!-- LOGO ENDE -->i
<!-- INFOS START -->
<div id="infos"></div>
<!-- INFOS ENDE -->
<!-- CONTENT START -->
<div id="contentorange">
<div id="contentgrau">
<div id="content">
<p class="headline"><img src="images/head_gaestebuch.gif" width="126" height="19" border="0" alt="Gästebuch" /></p>
<p id="write" style="display:block;" class="fliesstext"><a href="javascript:showForm();">Eintrag schreiben</a></p>
<div style="display:none;" align="center" id="systemWorking"><img src="images/spinner.gif" alt="loading..." /><br />loading...<br /></div>
<p id="form" class="fliesstext"><div id="gbform" style="display:none; margin-bottom:0px;">
<form name="gbeintrag" id="gbeintrag" action="javascript:makeEntry();" method="post">
<table width="330" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td style="width:80px;" class="formtext">Name:</td>
<td style="width:250px;" class="formtext"><input type="text" name="gbname" id="gbname" class="textfeld" value="" /></td>
</tr>
<tr>
<td style="width:80px;" class="formtext">E-Mail:</td>
<td style="width:250px;" class="formtext"><input type="text" name="gbemail" id="gbemail" class="textfeld" value="" /></td>
</tr>
<tr>
<td style="width:80px;" class="formtext">Homepage:</td>
<td style="width:250px;" class="formtext"><input type="text" name="gbhomepage" id="gbhomepage" class="textfeld" value="" /></td>
</tr>
<tr>
<td style="width:80px;" class="formtext">Kommentar:</td>
<td style="width:250px;" class="formtext"><textarea name="gbcomment" id="gbcomment" class="textarea" cols="10" rows="10"></textarea></td>
</tr>
<tr>
<td style="width:80px;" class="formtext">Menschlich?</td>
<td style="width:250px;" class="formtext"><img src="inc/captcha/captchaimg.php?{hash}" style="margin-bottom:3px; border:1px solid #000000;" alt="" /><br /><input
type="text" name="gbcaptcha" id="gbcaptcha" class="textfeld" /></td>
</tr>
<tr>
<td style="width:80px;" class="formtext"> </td>
<td style="width:250px;" class="formtext"><input type="submit" onclick="makeEntry()" name="gbsubmit" id="gbsubmit" value="Eintragen" /></td>
</tr>
</tbody>
</table>
<div id="gbeintragmeldung" class="fliesstextrot"></div>
</form></div></p>
<p class="fliesstext"><div id="gaestebuchdiv"></div></p>
</div>
<div id="navigation"><a href="geschichte.html" title="Geschichte"><img
src="images/nav_geschichte.gif" id="nav_geschichte" width="99" height="32" border="0" alt="Geschichte" onmouseover="MM_swapImage('nav_geschichte','','images/nav_geschichte_o.gif')" onmouseout="MM_swapImgRestore()" /></a><a
href="diebands.html" title="Die Bands"><img src="images/nav_diebands.gif" id="nav_diebands" width="86" height="32" border="0" alt="Die Bands" style="margin-left:15px;" onmouseover="MM_swapImage('nav_diebands','','images/nav_diebands_o.gif')" onmouseout="MM_swapImgRestore()" /></a><a
href="alleinfos.html" title="Alle Infos"><img src="images/nav_alleinfos.gif" id="nav_alleinfos" width="93" height="32" border="0" alt="Alle Infos" style="margin-left:15px;" onmouseover="MM_swapImage('nav_alleinfos','','images/nav_alleinfos_o.gif')" onmouseout="MM_swapImgRestore()" /></a><a
href="gaestebuch.php" title="Gästebuch"><img src="images/nav_gaestebuch_o.gif" id="nav_gaestebuch" width="96" height="32" border="0" alt="Gästebuch" style="margin-left:15px;" onmouseover="MM_swapImage('nav_gaestebuch','','images/nav_gaestebuch_o.gif')" onmouseout="MM_swapImgRestore()" /></a><a
href="impressum.html" title="Impressum"><img src="images/nav_impressum.gif" id="nav_impressum" width="95" height="32" border="0" alt="Impressum" style="margin-left:15px;" onmouseover="MM_swapImage('nav_impressum','','images/nav_impressum_o.gif')" onmouseout="MM_swapImgRestore()" /></a>
</div>
</div>
</div>
<!-- CONTENT ENDE -->
</div>
<!-- SEITE ENDE -->
</div>
</body>
</html>
|
Und der PHP Code:
Code: |
$gbname = $_REQUEST['gbname'];
$gbemail = $_REQUEST['gbemail'];
$gbhomepage = $_REQUEST['gbhomepage'];
$gbcaptcha = $_REQUEST['gbcaptcha'];
$gbcomment = $_REQUEST['gbcomment'];
//$gbcomment = rawurlencode($gbcomment);
if($gbname=="") {
header("Content-Type: text/javascript");
echo "showFehler(\"Bitte gib deinen Namen ein!\");";
exit;
}
if($gbcomment=="") {
header("Content-Type: text/javascript");
echo "showFehler(\"Bitte Kommentar eingeben!\");";
exit;
}
$captchaCheck = checkCaptcha($gbcaptcha);
if($captchaCheck==true) {
//E-Mail checken, falls nicht korrekt, verwerfen.
if($gbemail!="") { $emailcheck = MXCheck($gbemail); }
if ($emailcheck!=false){ $gbemail = $gbemail; } else { $gbemail =""; }
// Eintragen
InsertGBEntry($gbname, $gbemail, $gbhomepage, $gbcomment);
//Unset captcha
session_unset();
$GBEntries = GetGBEntries(0, 1);
while($GBEntry = mysql_fetch_array($GBEntries)) {
//Kommentarvariablen zuweisen
$id = $GBEntry['id'];
$zeit = date("d M Y - h:ia", $GBEntry['timestamp']);
$name = $GBEntry['name'];
//$name = ConvertSpecialSigns($name);
if($GBEntry['email']!="") {
$email = "<a class=\"gbmail\" href=\"mailto:" . $GBEntry['email'] . "\" title=\"" . $GBEntry['email'] . "\">" . $name . "</a>";
} else {
$email = $name;
}
if($GBEntry['homepage']!="") {
$homepage = " | <a class=\"gbmail\" target=\"_blank\" href=\"" . $GBEntry['homepage'] . "\" title=\"" . $GBEntry['homepage'] . "\">Homepage</a>";
} else {
$homepage = "";
}
$kommentar = htmlspecialchars($kommentar);
$kommentar = nl2br($GBEntry['comment']);
$eintag = "<div id=\"eintrag\" class=\"gaestebucheintrag\">\n";
$eintag .= "<div class=\"gbdatum\">" . $zeit . "</div>\n";
$eintag .= "<div class=\"fliesstextz\">" . $kommentar . "</div>\n";
$eintag .= "<div class=\"gbname\" align=\"right\">geschrieben von " . $email . $homepage . "</div>\n";
$eintag .= "</div><br />\n";
}
header("Content-Type: text/javascript");
echo "updatePage();";
} else {
header("Content-Type: text/javascript");
echo "showFehler(\"Du hast den Code falsch eingegeben!\");";
exit;
//echo "Du hast den Code falsch eingegeben!";
}
|
Hat irgendwer ne Ahnung? Ich verzweifel schon.
[edit]
Als erledigt markiert.
Zuletzt bearbeitet von tacker am Mi 22.08.2007 09:27, insgesamt 1-mal bearbeitet
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:01
Titel
|
|
|
Richtigen Header mit einheitlichem Charset (z.B. UTF8) senden.
|
|
|
|
|
Anzeige
|
|
|
metty
Threadersteller
Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:04
Titel
|
|
|
Zeithase hat geschrieben: | Richtigen Header mit einheitlichem Charset (z.B. UTF8) senden. |
Klingt logisch.
Im HTML hab ich den Charset ja auch angegeben.
Code: | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
Wie übergeb ich das denn?
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:05
Titel
|
|
|
Server-Charset hat hoehere Prioritaet als Meta-Angaben. In PHP sollte das via
Code: | header('content-type: text/html; charset=utf-8'); |
gehen. Alternativ kannst Du, sofern Du Zugriff auf die Webserver-Konfiguration hast, auch default ein einheitliches Charset via AddDefaultCharset in der Apache-Konfiguration setzen.
Zuletzt bearbeitet von Zeithase am Di 21.08.2007 17:06, insgesamt 1-mal bearbeitet
|
|
|
|
|
metty
Threadersteller
Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:10
Titel
|
|
|
Heißt das ich sollte den Header Code als PHP in meiner zur Zeitigen HTML Datei einbinden? Ganz oben?
//Edit: Sorry, steh aufm Schlauch.
Zuletzt bearbeitet von metty am Di 21.08.2007 17:10, insgesamt 1-mal bearbeitet
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:19
Titel
|
|
|
metty hat geschrieben: | Heißt das ich sollte den Header Code als PHP in meiner zur Zeitigen HTML Datei einbinden? Ganz oben? |
Du sollst den Header-Schnipsel in das Ajax-Skript (inc/guestbook.php) pappen. Verwende dort das gleiche Charset wie in Deinem HTML-Dokument.
|
|
|
|
|
metty
Threadersteller
Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht:
|
Verfasst Di 21.08.2007 17:23
Titel
|
|
|
Juhu es klappt! Danke!
|
|
|
|
|
|
|
|
Ähnliche Themen |
String an andere Funktionen übergeben
[SOLVED] [PHP] (int)$string = andere zahl nach typecast
Javascript Photoshop String in INT umwandeln
ID aus Datenbank in Javascript mit übergeben
Javascript: Parameter übergeben und aufrufen?
Value eines Radiobuttons an Javascript übergeben
|
|