JavaScript im BB-Code ruft parse error hervor!?

PaRADoX

Erfahrenes Mitglied
Hallo Leute,
ich möchte JavaScript in den BB-Code einbauen, aber dies klappt nicht da ich immer einen parse error, unexpected T_STRING bekomme. Der funktionierende Code (der Teil wodrum es geht) sieht so aus:

PHP:
function links($text)
{
$p[0][0] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$p[0][1] = '<a href="\1" target="_blank">\\1</a>';
$p[1][0] = '"( |^)([ url]www.[ /url][-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$p[1][1] = '\\1<a href="http://\\2" target="_blank">\\2</a>';
$p[2][0] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$p[2][1] = '<a href="mailto:\1">\\1</a>';
for($i=0; $i<count($p); $i++)
{
$text = preg_replace($p[$i][0], $p[$i][1], $text);
}

Und sooo soll es aussehen:

PHP:
function links($text)
{
$p[0][0] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$p[0][1] = '<a href="\1" onmouseover="window.status='xxx';return true;" onmouseout="window.status=''" target="_blank">\\1</a>';
$p[1][0] = '"( |^)([ url]www.[ /url][-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
$p[1][1] = '\\1<a href="http://\\2" onmouseover="window.status='xxx';return true;" onmouseout="window.status=''" target="_blank">\\2</a>';
$p[2][0] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
$p[2][1] = '<a href="mailto:\1">\\1</a>';
for($i=0; $i<count($p); $i++)
{
$text = preg_replace($p[$i][0], $p[$i][1], $text);
}

Wie gesagt, durch den Einbau von:
onmouseover="window.status='xxx';return true;" onmouseout="window.status=''"
bekomme ich einen parse error, unexpected T_STRING. Wie kann ich das Problem lösen, wo ist mein Fehler?

Schonmal vielen Dank an alle Helfer!
 
Hallo...

maskiere die einfachen Anführungszeichen:
Code:
onmouseover="window.status=\\'xxx\\';return true;" onmouseout="window.status=\\'\\' "
 
Jetzt klick ich auf auf den Submit-Button und nichts passiert?!

NACHTRAG:
Normalen Text kann ich eintragen aber keine www-Adressen. Dann passiert einfach nichts!?
 
Zuletzt bearbeitet:
Welcher Submit-Button?

Poste doch mal nen Link dahin oder den HTML-Quelltext des Dokuments, worin sich der Button befindet.
 
Also, das ist der BB-Code (naja, nur nen Teil davon) von meiner Shoutbox. Dieser Code soll den eingegebenen Text nach www-Adressen durchsuchen und dann in einen Link umformatieren. Das klappt auch alles wunderbar aber halt nicht mit onmouseover-Skript. Mit der momentanen Lösung kann ich keine www-Adressen in die DB eintragen (reagiert nicht wenn ich den Text "submitten" will), aber wenn ich nur Text ohne irgendwelche www-Adressen eingebe dann klappt das. Also schließe ich mal daraus das in diesem Code was falsch ist!

Soll ich jetzt nochmal das komplette Shoutbox-Skript posten?
 
Besser wäre nen Link dahin..falls online..oder der von PHP erzeugte HTML-Code(falls es viel ist, kannst du es ja als Anhang rankleben), da der Fehler, wenn nicht gesendet wird, im HTML/Javascript-Code zu suchen ist, welchen deine PHP-Sktipte erzeugen.

Hast du vielleicht auf den JS-Event "onsubmit()" eine Aktion gelegt... wäre möglich, dass eine solche das Senden abbricht.
 
Also das hier ist der Code von der Shoutbox (sind nen paar Testeinträge drin):

Code:
<script language="javascript">
<!--
function check()
{
var text=document.shoutbox.text.value, name=document.shoutbox.name.value;
var ctext="", cname="";

if (name=="")
var cname="-  du deinen Namen vergessen hast.\n";

if (text=="")
var ctext="-  du die Nachricht vergessen hast.\n";
if (ctext!="" || cname!=="")
{
alert("FEHLER weil...\n---------------------------------------------\n"+cname+ctext+"---------------------------------------------\nBitte überprüfe deine Angaben. tHx")
return false;
}
else
return true;
}
//-->
</script>
<table border="0" width="145" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#ffa300">
<form name="shoutbox" onsubmit="return check()" action="/default.php?x=main" method="post"><img src="img/form/shoutbox_name.gif" border="0"><br><input class="field" size="27" name="name" maxlength="20"><br><img src="img/spacer_white.gif" width="145" height="4" border="0"><br><img src="img/form/shoutbox_www.gif" border="0"><br><input class="field" size="27" name="www" value="http://" maxlength="35"><br><img src="img/spacer_white.gif" width="145" height="4" border="0"><br><img src="img/form/shoutbox_message.gif" border="0"><br><input class="field" size="27" name="text" maxlength="200"><br><img src="img/spacer_white.gif" width="145" height="4" border="0"><br></td>
</tr>
<tr>
<td>
<table border="0" width="145" cellspacing="0" cellpadding="2" bgcolor="#ffffff">
<tr>
<td align="center"><a href="javascript:setsmile(' :angry: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/angry.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :blush: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/blush.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :cheeky: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/cheeky.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :eek: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/eek.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :evil: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/evil.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :happy: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/happy.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :help: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/help.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :ill: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/ill.gif" border="0"></a></td>
</tr>
<td align="center"><a href="javascript:setsmile(' :love: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/love.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :neutral: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/neutral.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :ok: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/ok.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :urg: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/urg.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :wink: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/wink.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :yawn: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/yawn.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :yay: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/yay.gif" border="0"></a></td>
<td align="center"><a href="javascript:setsmile(' :yum: ')" onmouseover="window.status='Emoticon';return true;" onmouseout="window.status=''"><img src="img/smile/yum.gif" border="0"></a></td>
</tr>
</table>
<img src="img/spacer_trans.gif" width="145" height="4" border="0"><br><input type="image" style="cursor: hand;" src="img/form/shoutbox_submit.gif" value="shout" name="submit"><br><img src="img/spacer_trans.gif" width="145" height="15" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br></td>
</tr>
</table>
<img src="img/icon/clock.gif" border="0" align="bottom" onmouseover="writetxt('<b>01.04.2004 - 02:12 Uhr</b>'), window.status='01.04.2004 - 02:12 Uhr';return true;" onmouseout="writetxt(0), window.status=''">&nbsp;<b><a href="default.php?x=redirect&url=http://" target="_blank" onmouseover="window.status='http://';return true;" onmouseout="window.status=''">asdsad</a></b><br><span style="word-break: break-all; word-wrap: break-word">asdas <a href="default.php?x=redirect&url=http://www.web.de" target="_blank">www.web.de</a></span><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br>
<img src="img/icon/clock.gif" border="0" align="bottom" onmouseover="writetxt('<b>01.04.2004 - 02:10 Uhr</b>'), window.status='01.04.2004 - 02:10 Uhr';return true;" onmouseout="writetxt(0), window.status=''">&nbsp;<b><a href="default.php?x=redirect&url=http://" target="_blank" onmouseover="window.status='http://';return true;" onmouseout="window.status=''">sdfsdf</a></b><br><span style="word-break: break-all; word-wrap: break-word">sdfsd</span><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br>
<img src="img/icon/clock.gif" border="0" align="bottom" onmouseover="writetxt('<b>01.04.2004 - 01:12 Uhr</b>'), window.status='01.04.2004 - 01:12 Uhr';return true;" onmouseout="writetxt(0), window.status=''">&nbsp;<b><a href="default.php?x=redirect&url=http://" target="_blank" onmouseover="window.status='http://';return true;" onmouseout="window.status=''">dsfsdfsd</a></b><br><span style="word-break: break-all; word-wrap: break-word"><a href="default.php?x=redirect&url=http://www.web.de" target="_blank">www.web.de</a></span><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br>
<img src="img/icon/clock.gif" border="0" align="bottom" onmouseover="writetxt('<b>01.04.2004 - 00:31 Uhr</b>'), window.status='01.04.2004 - 00:31 Uhr';return true;" onmouseout="writetxt(0), window.status=''">&nbsp;<b><a href="default.php?x=redirect&url=http://" target="_blank" onmouseover="window.status='http://';return true;" onmouseout="window.status=''">sdfsdf</a></b><br><span style="word-break: break-all; word-wrap: break-word">sdfsd <a href="http://www.web.de" target="_blank" onmouseover="window.status="Archiv";return true;" onmouseout="window.status=""">www.web.de</a></span><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br>
<img src="img/icon/clock.gif" border="0" align="bottom" onmouseover="writetxt('<b>01.04.2004 - 00:30 Uhr</b>'), window.status='01.04.2004 - 00:30 Uhr';return true;" onmouseout="writetxt(0), window.status=''">&nbsp;<b><a href="default.php?x=redirect&url=http://" target="_blank" onmouseover="window.status='http://';return true;" onmouseout="window.status=''">dsfsd</a></b><br><span style="word-break: break-all; word-wrap: break-word">sdfsdfd <a href="http://www.web.de" target="_blank" onmouseover="window.status=Archiv;return true;" onmouseout="window.status=">www.web.de</a></span><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br><img src="img/dot_line_small.gif" border="0"><br><img src="img/spacer_trans.gif" width="145" height="3" border="0"><br>
<center><b><a href="default.php?x=shoutbox/archiv" target="_parent" onmouseover="window.status='Archiv';return true;" onmouseout="window.status=''">Archiv</a></b> (62)</form></center>
 
Ahso nochwas, ich hab mir mal die Mig - "My Image Gallery" (Link) geladen und angepasst. Aber jetzt habe ich dasselbe Problem. Wenn ich in einen <a href="-Tag ein onmouseover einbauen will bekomme ich nen Javaskript-Fehler. Also unten in der Statuszeile ist nen Dokument mit nem gelben Ausrufezeischen, und beim mouseover passiert auch nichts. Ich hab auch drauf geachtet das ich alles richtig mache aber ich glaube diese ' machen dem Skript Probleme. Aber ohne ' funktioniert das ja nicht! :( Was kann ich machen.

Hier nochmal ein Beispiel wo ich versucht habe was zu editieren:
PHP:
    // Trim off the last directory, so we go "back" one.
    $junk = ereg_replace('/[^/]+$', '', $currDir);
    $newCurrDir = migURLencode($junk);

    $retval = '&nbsp;<a href="'
            . $mig_config['baseurl'] . '?currDir=' . $newCurrDir;
    if ($mig_config['startfrom']) {
        $retval .= '&amp;startFrom=' . $mig_config['startfrom'];
    }
    if ($mig_config['mig_dl']) {
        $retval .= '&amp;mig_dl=' . $mig_config['mig_dl'];
    }
    if ($mig_config['pagetype'] == 'large') {
        $retval .= '&amp;type=image&amp;image=' . $mig_config['image'];
    }
    $retval .= '">' . $label . '</a>&nbsp;';

    return $retval;

}   // -- End of buildBackLink()

Ist nur ein Beispiel... Ich hab es versucht in Zeile 16 einzubauen. Undzwar so:

$retval .= '" onmouseover="wind...>' . $label

Ich hoffe mir kann jemand helfen, langsam regt es mich auch das ich kein Javaskript das ein ' verwendet einbauen kann. Danke schonmal an alle Helfer!
 
Zurück