Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Beto Lima

Erro no fckeditor

Recommended Posts

Pessoal instalei o fckeditor na minha área de administração e ta rodando legal.

Só tem um bug que queria perguntar se alguém já teve o mesmo problema e soube resolver...

 

O problema acontece ao inserir e-mail.

 

O erro ao salvar é esse:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mailto:'+String.fromCharCode(101,109,97,105,108,64,101,109,97,105,108,46,99,111,' at line 1

 

O mesmo erro acontece ao inserir URL com destino para popups....

 

Se alguém puder ajudar agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro pode ser no seu banco de dados.

Verifique o tipo de dados da coluna onde você está tentando guardar o e-mail. Verifique também se o limite de caracteres não está sendo ultrapassado.

 

ABRAX!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que você está tentando salvar no banco? Como está seu codigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou colocar o cód aqui antes de pressionar salvar só pra vcs verem...

 

<p>Yoga é uma prática de origem indiana, que tem como objetivos o autoconhecimento, equilíbrio entre corpo e mente, a saúde física e espiritual, independente de qualquer credo particular, podendo ser praticada por adeptos de todas as religiões. <br />
<br />
Alguns dos benefícios do Yoga são o crescimento e desenvolvimento pessoal, a melhora da saúde e clareza de espírito, o desenvolvimento de uma maior consciência corporal. O Yoga permite que cada pessoa trabalhe dentro de seus limites pessoais. É adequado a todas as idades e níveis de forma física, pois pode ser um exercício muito suave ou rigoroso, dependendo do praticante</p>
<p> </p>
<p><a href="java script:location.href='mailto:'+String.fromCharCode(101,109,97,105,108,64,101,109,97,105,108,46,99,111,109)+'?subject=assunto&body=msg'">email@email.com</a></p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um teste... tente salvar apenas isso:

 

<p>Yoga é uma prática de origem indiana, que tem como objetivos o autoconhecimento, equilíbrio entre corpo e mente, a saúde física e espiritual, independente de qualquer credo particular, podendo ser praticada por adeptos de todas as religiões. <br />
<br />
Alguns dos benefícios do Yoga são o crescimento e desenvolvimento pessoal, a melhora da saúde e clareza de espírito, o desenvolvimento de uma maior consciência corporal. O Yoga permite que cada pessoa trabalhe dentro de seus limites pessoais. É adequado a todas as idades e níveis de forma física, pois pode ser um exercício muito suave ou rigoroso, dependendo do praticante</p>
<p> </p>
<p><a href="java script:location.href='mailto:'+String.fromCharCode(101,109,97,105,108,64,101,109,97

Vê se da algum erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mailto:'+String.fromCharCode(101,109,97,105,108,64,101,109,97' WHERE id = '8'' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eu colocar no braço lá no código o endereço de email, dae vai na boa...

 

deve ser algum erro de js mas não sei onde é:

 

assim vai: <p><a href="mailto:email@email.com">email</a></p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

então o problema é q tem aspas simples na tua string, e o banco nao permite! Fica assim (ex):

 

INSERT INTO tabela (coluna1,coluna2) VALUES ('CONTEUDO','CONTE'UDO')

 

Então você tem que duplicar elas!

 

INSERT INTO tabela (coluna1,coluna2) VALUES ('CONTEUDO','CONTE''UDO')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não! no seu script JS! É só dar um replace:

variavel.replace("'","''");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe berkowitz

 

tenho medo de fazer um estrago aqui, então vou postar o cód js.

Acredito eu que seja esse js mesmo.

 

/*
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 * Copyright (C) 2003-2008 Frederico Caldeira Knabben
 *
 * == BEGIN LICENSE ==
 *
 * Licensed under the terms of any of the following licenses at your
 * choice:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *	http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *	http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *	http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * Scripts related to the Link dialog window (see fck_link.html).
 */

var dialog	= window.parent;
var oEditor = dialog.InnerDialogLoaded();

var FCK			= oEditor.FCK;
var FCKLang		= oEditor.FCKLang;
var FCKConfig	= oEditor.FCKConfig;
var FCKRegexLib	= oEditor.FCKRegexLib;
var FCKTools	= oEditor.FCKTools;

//#### Dialog Tabs

// Set the dialog tabs.
dialog.AddTab( 'Info', FCKLang.DlgLnkInfoTab );

if ( !FCKConfig.LinkDlgHideTarget )
	dialog.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true );

if ( FCKConfig.LinkUpload )
	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload, true );

if ( !FCKConfig.LinkDlgHideAdvanced )
	dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag );

// Function called when a dialog tag is selected.
function OnDialogTabChange( tabCode )
{
	ShowE('divInfo'		, ( tabCode == 'Info' ) );
	ShowE('divTarget'	, ( tabCode == 'Target' ) );
	ShowE('divUpload'	, ( tabCode == 'Upload' ) );
	ShowE('divAttribs'	, ( tabCode == 'Advanced' ) );

	dialog.SetAutoSize( true );
}

//#### Regular Expressions library.
var oRegex = new Object();

oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi;

oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi;

oRegex.UrlOnChangeTestOther = /^((java script:)|[#\/\.])/gi;

oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i;

oRegex.PopupUri = /^java script:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/;

// Accessible popups
oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/;

oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi;

//#### Parser Functions

var oParser = new Object();

// This method simply returns the two inputs in numerical order. You can even
// provide strings, as the method would parseInt() the values.
oParser.SortNumerical = function(a, b)
{
	return parseInt( a, 10 ) - parseInt( b, 10 );
}

oParser.ParseEMailParams = function(sParams)
{
	// Initialize the oEMailParams object.
	var oEMailParams = new Object();
	oEMailParams.Subject = '';
	oEMailParams.Body = '';

	var aMatch = sParams.match( /(^|^\?|&)subject=([^&]+)/i );
	if ( aMatch ) oEMailParams.Subject = decodeURIComponent( aMatch[2] );

	aMatch = sParams.match( /(^|^\?|&)body=([^&]+)/i );
	if ( aMatch ) oEMailParams.Body = decodeURIComponent( aMatch[2] );

	return oEMailParams;
}

// This method returns either an object containing the email info, or FALSE
// if the parameter is not an email link.
oParser.ParseEMailUri = function( sUrl )
{
	// Initializes the EMailInfo object.
	var oEMailInfo = new Object();
	oEMailInfo.Address = '';
	oEMailInfo.Subject = '';
	oEMailInfo.Body = '';

	var aLinkInfo = sUrl.match( /^(\w+):(.*)$/ );
	if ( aLinkInfo && aLinkInfo[1] == 'mailto' )
	{
		// This seems to be an unprotected email link.
		var aParts = aLinkInfo[2].match( /^([^\?]+)\??(.+)?/ );
		if ( aParts )
		{
			// Set the e-mail address.
			oEMailInfo.Address = aParts[1];

			// Look for the optional e-mail parameters.
			if ( aParts[2] )
			{
				var oEMailParams = oParser.ParseEMailParams( aParts[2] );
				oEMailInfo.Subject = oEMailParams.Subject;
				oEMailInfo.Body = oEMailParams.Body;
			}
		}
		return oEMailInfo;
	}
	else if ( aLinkInfo && aLinkInfo[1] == 'javascript' )
	{
		// This may be a protected email.

		// Try to match the url against the EMailProtectionFunction.
		var func = FCKConfig.EMailProtectionFunction;
		if ( func != null )
		{
			try
			{
				// Escape special chars.
				func = func.replace( /([\/^$*+.?()\[\]])/g, '\\$1' );

				// Define the possible keys.
				var keys = new Array('NAME', 'DOMAIN', 'SUBJECT', 'BODY');

				// Get the order of the keys (hold them in the array <pos>) and
				// the function replaced by regular expression patterns.
				var sFunc = func;
				var pos = new Array();
				for ( var i = 0; i < keys.length; i ++ )
				{
					var rexp = new RegExp( keys[i] );
					var p = func.search( rexp );
					if ( p >= 0 )
					{
						sFunc = sFunc.replace( rexp, '\'([^\']*)\'' );
						pos[pos.length] = p + ':' + keys[i];
					}
				}

				// Sort the available keys.
				pos.sort( oParser.SortNumerical );

				// Replace the excaped single quotes in the url, such they do
				// not affect the regexp afterwards.
				aLinkInfo[2] = aLinkInfo[2].replace( /\\'/g, '###SINGLE_QUOTE###' );

				// Create the regexp and execute it.
				var rFunc = new RegExp( '^' + sFunc + '$' );
				var aMatch = rFunc.exec( aLinkInfo[2] );
				if ( aMatch )
				{
					var aInfo = new Array();
					for ( var i = 1; i < aMatch.length; i ++ )
					{
						var k = pos[i-1].match(/^\d+:(.+)$/);
						aInfo[k[1]] = aMatch[i].replace(/###SINGLE_QUOTE###/g, '\'');
					}

					// Fill the EMailInfo object that will be returned
					oEMailInfo.Address = aInfo['NAME'] + '@' + aInfo['DOMAIN'];
					oEMailInfo.Subject = decodeURIComponent( aInfo['SUBJECT'] );
					oEMailInfo.Body = decodeURIComponent( aInfo['BODY'] );

					return oEMailInfo;
				}
			}
			catch (e)
			{
			}
		}

		// Try to match the email against the encode protection.
		var aMatch = aLinkInfo[2].match( /^location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'$/ );
		if ( aMatch )
		{
			// The link is encoded
			oEMailInfo.Address = eval( aMatch[1] );
			if ( aMatch[2] )
			{
				var oEMailParams = oParser.ParseEMailParams( aMatch[2] );
				oEMailInfo.Subject = oEMailParams.Subject;
				oEMailInfo.Body = oEMailParams.Body;
			}
			return oEMailInfo;
		}
	}
	return false;
}

oParser.CreateEMailUri = function( address, subject, body )
{
	// Switch for the EMailProtection setting.
	switch ( FCKConfig.EMailProtection )
	{
		case 'function' :
			var func = FCKConfig.EMailProtectionFunction;
			if ( func == null )
			{
				if ( FCKConfig.Debug )
				{
					alert('EMailProtection alert!\nNo function defined. Please set "FCKConfig.EMailProtectionFunction"');
				}
				return '';
			}

			// Split the email address into name and domain parts.
			var aAddressParts = address.split( '@', 2 );
			if ( aAddressParts[1] == undefined )
			{
				aAddressParts[1] = '';
			}

			// Replace the keys by their values (embedded in single quotes).
			func = func.replace(/NAME/g, "'" + aAddressParts[0].replace(/'/g, '\\\'') + "'");
			func = func.replace(/DOMAIN/g, "'" + aAddressParts[1].replace(/'/g, '\\\'') + "'");
			func = func.replace(/SUBJECT/g, "'" + encodeURIComponent( subject ).replace(/'/g, '\\\'') + "'");
			func = func.replace(/BODY/g, "'" + encodeURIComponent( body ).replace(/'/g, '\\\'') + "'");

			return 'java script:' + func;

		case 'encode' :
			var aParams = [];
			var aAddressCode = [];

			if ( subject.length > 0 )
				aParams.push( 'subject='+ encodeURIComponent( subject ) );
			if ( body.length > 0 )
				aParams.push( 'body=' + encodeURIComponent( body ) );
			for ( var i = 0; i < address.length; i++ )
				aAddressCode.push( address.charCodeAt( i ) );

			return 'java script:location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&' ) + '\'';
	}

	// EMailProtection 'none'

	var sBaseUri = 'mailto:' + address;

	var sParams = '';

	if ( subject.length > 0 )
		sParams = '?subject=' + encodeURIComponent( subject );

	if ( body.length > 0 )
	{
		sParams += ( sParams.length == 0 ? '?' : '&' );
		sParams += 'body=' + encodeURIComponent( body );
	}

	return sBaseUri + sParams;
}

//#### Initialization Code

// oLink: The actual selected link in the editor.
var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' );
if ( oLink )
	FCK.Selection.SelectNode( oLink );

window.onload = function()
{
	// Translate the dialog box texts.
	oEditor.FCKLanguageManager.TranslatePage(document);

	// Fill the Anchor Names and Ids combos.
	LoadAnchorNamesAndIds();

	// Load the selected link information (if any).
	LoadSelection();

	// Update the dialog box.
	SetLinkType( GetE('cmbLinkType').value );

	// Show/Hide the "Browse Server" button.
	GetE('divBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none';

	// Show the initial dialog content.
	GetE('divInfo').style.display = '';

	// Set the actual uploader URL.
	if ( FCKConfig.LinkUpload )
		GetE('frmUpload').action = FCKConfig.LinkUploadURL;

	// Set the default target (from configuration).
	SetDefaultTarget();

	// Activate the "OK" button.
	dialog.SetOkButton( true );

	// Select the first field.
	switch( GetE('cmbLinkType').value )
	{
		case 'url' :
			SelectField( 'txtUrl' );
			break;
		case 'email' :
			SelectField( 'txtEMailAddress' );
			break;
		case 'anchor' :
			if ( GetE('divSelAnchor').style.display != 'none' )
				SelectField( 'cmbAnchorName' );
			else
				SelectField( 'cmbLinkType' );
	}
}

var bHasAnchors;

function LoadAnchorNamesAndIds()
{
	// Since version 2.0, the anchors are replaced in the DOM by IMGs so the user see the icon
	// to edit them. So, we must look for that images now.
	var aAnchors = new Array();
	var i;
	var oImages = oEditor.FCK.EditorDocument.getElementsByTagName( 'IMG' );
	for( i = 0; i < oImages.length; i++ )
	{
		if ( oImages[i].getAttribute('_fckanchor') )
			aAnchors[ aAnchors.length ] = oEditor.FCK.GetRealElement( oImages[i] );
	}

	// Add also real anchors
	var oLinks = oEditor.FCK.EditorDocument.getElementsByTagName( 'A' );
	for( i = 0; i < oLinks.length; i++ )
	{
		if ( oLinks[i].name && ( oLinks[i].name.length > 0 ) )
			aAnchors[ aAnchors.length ] = oLinks[i];
	}

	var aIds = FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body );

	bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 );

	for ( i = 0; i < aAnchors.length; i++ )
	{
		var sName = aAnchors[i].name;
		if ( sName && sName.length > 0 )
			FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName );
	}

	for ( i = 0; i < aIds.length; i++ )
	{
		FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] );
	}

	ShowE( 'divSelAnchor'	, bHasAnchors );
	ShowE( 'divNoAnchor'	, !bHasAnchors );
}

function LoadSelection()
{
	if ( !oLink ) return;

	var sType = 'url';

	// Get the actual Link href.
	var sHRef = oLink.getAttribute( '_fcksavedurl' );
	if ( sHRef == null )
		sHRef = oLink.getAttribute( 'href' , 2 ) || '';

	// Look for a popup javascript link.
	var oPopupMatch = oRegex.PopupUri.exec( sHRef );
	if( oPopupMatch )
	{
		GetE('cmbTarget').value = 'popup';
		sHRef = oPopupMatch[1];
		FillPopupFields( oPopupMatch[2], oPopupMatch[3] );
		SetTarget( 'popup' );
	}

	// Accessible popups, the popup data is in the onclick attribute
	if ( !oPopupMatch )
	{
		var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' );
		if ( onclick )
		{
			// Decode the protected string
			onclick = decodeURIComponent( onclick );

			oPopupMatch = oRegex.OnClickPopup.exec( onclick );
			if( oPopupMatch )
			{
				GetE( 'cmbTarget' ).value = 'popup';
				FillPopupFields( oPopupMatch[1], oPopupMatch[2] );
				SetTarget( 'popup' );
			}
		}
	}

	// Search for the protocol.
	var sProtocol = oRegex.UriProtocol.exec( sHRef );

	// Search for a protected email link.
	var oEMailInfo = oParser.ParseEMailUri( sHRef );

	if ( oEMailInfo )
	{
		sType = 'email';

		GetE('txtEMailAddress').value = oEMailInfo.Address;
		GetE('txtEMailSubject').value = oEMailInfo.Subject;
		GetE('txtEMailBody').value	= oEMailInfo.Body;
	}
	else if ( sProtocol )
	{
		sProtocol = sProtocol[0].toLowerCase();
		GetE('cmbLinkProtocol').value = sProtocol;

		// Remove the protocol and get the remaining URL.
		var sUrl = sHRef.replace( oRegex.UriProtocol, '' );
		sType = 'url';
		GetE('txtUrl').value = sUrl;
	}
	else if ( sHRef.substr(0,1) == '#' && sHRef.length > 1 )	// It is an anchor link.
	{
		sType = 'anchor';
		GetE('cmbAnchorName').value = GetE('cmbAnchorId').value = sHRef.substr(1);
	}
	else					// It is another type of link.
	{
		sType = 'url';

		GetE('cmbLinkProtocol').value = '';
		GetE('txtUrl').value = sHRef;
	}

	if ( !oPopupMatch )
	{
		// Get the target.
		var sTarget = oLink.target;

		if ( sTarget && sTarget.length > 0 )
		{
			if ( oRegex.ReserveTarget.test( sTarget ) )
			{
				sTarget = sTarget.toLowerCase();
				GetE('cmbTarget').value = sTarget;
			}
			else
				GetE('cmbTarget').value = 'frame';
			GetE('txtTargetFrame').value = sTarget;
		}
	}

	// Get Advances Attributes
	GetE('txtAttId').value			= oLink.id;
	GetE('txtAttName').value		= oLink.name;
	GetE('cmbAttLangDir').value		= oLink.dir;
	GetE('txtAttLangCode').value	= oLink.lang;
	GetE('txtAttAccessKey').value	= oLink.accessKey;
	GetE('txtAttTabIndex').value	= oLink.tabIndex <= 0 ? '' : oLink.tabIndex;
	GetE('txtAttTitle').value		= oLink.title;
	GetE('txtAttContentType').value	= oLink.type;
	GetE('txtAttCharSet').value		= oLink.charset;

	var sClass;
	if ( oEditor.FCKBrowserInfo.IsIE )
	{
		sClass	= oLink.getAttribute('className',2) || '';
		// Clean up temporary classes for internal use:
		sClass = sClass.replace( FCKRegexLib.FCK_Class, '' );

		GetE('txtAttStyle').value	= oLink.style.cssText;
	}
	else
	{
		sClass	= oLink.getAttribute('class',2) || '';
		GetE('txtAttStyle').value	= oLink.getAttribute('style',2) || '';
	}
	GetE('txtAttClasses').value	= sClass;

	// Update the Link type combo.
	GetE('cmbLinkType').value = sType;
}

//#### Link type selection.
function SetLinkType( linkType )
{
	ShowE('divLinkTypeUrl'		, (linkType == 'url') );
	ShowE('divLinkTypeAnchor'	, (linkType == 'anchor') );
	ShowE('divLinkTypeEMail'	, (linkType == 'email') );

	if ( !FCKConfig.LinkDlgHideTarget )
		dialog.SetTabVisibility( 'Target'	, (linkType == 'url') );

	if ( FCKConfig.LinkUpload )
		dialog.SetTabVisibility( 'Upload'	, (linkType == 'url') );

	if ( !FCKConfig.LinkDlgHideAdvanced )
		dialog.SetTabVisibility( 'Advanced'	, (linkType != 'anchor' || bHasAnchors) );

	if ( linkType == 'email' )
		dialog.SetAutoSize( true );
}

//#### Target type selection.
function SetTarget( targetType )
{
	GetE('tdTargetFrame').style.display	= ( targetType == 'popup' ? 'none' : '' );
	GetE('tdPopupName').style.display	=
	GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' );

	switch ( targetType )
	{
		case "_blank" :
		case "_self" :
		case "_parent" :
		case "_top" :
			GetE('txtTargetFrame').value = targetType;
			break;
		case "" :
			GetE('txtTargetFrame').value = '';
			break;
	}

	if ( targetType == 'popup' )
		dialog.SetAutoSize( true );
}

//#### Called while the user types the URL.
function OnUrlChange()
{
	var sUrl = GetE('txtUrl').value;
	var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl );

	if ( sProtocol )
	{
		sUrl = sUrl.substr( sProtocol[0].length );
		GetE('txtUrl').value = sUrl;
		GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase();
	}
	else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )
	{
		GetE('cmbLinkProtocol').value = '';
	}
}

//#### Called while the user types the target name.
function OnTargetNameChange()
{
	var sFrame = GetE('txtTargetFrame').value;

	if ( sFrame.length == 0 )
		GetE('cmbTarget').value = '';
	else if ( oRegex.ReserveTarget.test( sFrame ) )
		GetE('cmbTarget').value = sFrame.toLowerCase();
	else
		GetE('cmbTarget').value = 'frame';
}

// Accessible popups
function BuildOnClickPopup()
{
	var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'";

	var sFeatures = '';
	var aChkFeatures = document.getElementsByName( 'chkFeature' );
	for ( var i = 0; i < aChkFeatures.length; i++ )
	{
		if ( i > 0 ) sFeatures += ',';
		sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' );
	}

	if ( GetE('txtPopupWidth').value.length > 0 )	sFeatures += ',width=' + GetE('txtPopupWidth').value;
	if ( GetE('txtPopupHeight').value.length > 0 )	sFeatures += ',height=' + GetE('txtPopupHeight').value;
	if ( GetE('txtPopupLeft').value.length > 0 )	sFeatures += ',left=' + GetE('txtPopupLeft').value;
	if ( GetE('txtPopupTop').value.length > 0 )		sFeatures += ',top=' + GetE('txtPopupTop').value;

	if ( sFeatures != '' )
		sFeatures = sFeatures + ",status";

	return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" );
}

//#### Fills all Popup related fields.
function FillPopupFields( windowName, features )
{
	if ( windowName )
		GetE('txtPopupName').value = windowName;

	var oFeatures = new Object();
	var oFeaturesMatch;
	while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null )
	{
		var sValue = oFeaturesMatch[2];
		if ( sValue == ( 'yes' || '1' ) )
			oFeatures[ oFeaturesMatch[1] ] = true;
		else if ( ! isNaN( sValue ) && sValue != 0 )
			oFeatures[ oFeaturesMatch[1] ] = sValue;
	}

	// Update all features check boxes.
	var aChkFeatures = document.getElementsByName('chkFeature');
	for ( var i = 0; i < aChkFeatures.length; i++ )
	{
		if ( oFeatures[ aChkFeatures[i].value ] )
			aChkFeatures[i].checked = true;
	}

	// Update position and size text boxes.
	if ( oFeatures['width'] )	GetE('txtPopupWidth').value		= oFeatures['width'];
	if ( oFeatures['height'] )	GetE('txtPopupHeight').value	= oFeatures['height'];
	if ( oFeatures['left'] )	GetE('txtPopupLeft').value		= oFeatures['left'];
	if ( oFeatures['top'] )		GetE('txtPopupTop').value		= oFeatures['top'];
}

//#### The OK button was hit.
function Ok()
{
	var sUri, sInnerHtml;
	oEditor.FCKUndo.SaveUndoStep();

	switch ( GetE('cmbLinkType').value )
	{
		case 'url' :
			sUri = GetE('txtUrl').value;

			if ( sUri.length == 0 )
			{
				alert( FCKLang.DlnLnkMsgNoUrl );
				return false;
			}

			sUri = GetE('cmbLinkProtocol').value + sUri;

			break;

		case 'email' :
			sUri = GetE('txtEMailAddress').value;

			if ( sUri.length == 0 )
			{
				alert( FCKLang.DlnLnkMsgNoEMail );
				return false;
			}

			sUri = oParser.CreateEMailUri(
				sUri,
				GetE('txtEMailSubject').value,
				GetE('txtEMailBody').value );
			break;

		case 'anchor' :
			var sAnchor = GetE('cmbAnchorName').value;
			if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value;

			if ( sAnchor.length == 0 )
			{
				alert( FCKLang.DlnLnkMsgNoAnchor );
				return false;
			}

			sUri = '#' + sAnchor;
			break;
	}

	// If no link is selected, create a new one (it may result in more than one link creation - #220).
	var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true );

	// If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26)
	var aHasSelection = ( aLinks.length > 0 );
	if ( !aHasSelection )
	{
		sInnerHtml = sUri;

		// Built a better text for empty links.
		switch ( GetE('cmbLinkType').value )
		{
			// anchor: use old behavior --> return true
			case 'anchor':
				sInnerHtml = sInnerHtml.replace( /^#/, '' );
				break;

			// url: try to get path
			case 'url':
				var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$");
				var asLinkPath = oLinkPathRegEx.exec( sUri );
				if (asLinkPath != null)
					sInnerHtml = asLinkPath[1];  // use matched path
				break;

			// mailto: try to get email address
			case 'email':
				sInnerHtml = GetE('txtEMailAddress').value;
				break;
		}

		// Create a new (empty) anchor.
		aLinks = [ oEditor.FCK.InsertElement( 'a' ) ];
	}

	for ( var i = 0; i < aLinks.length; i++ )
	{
		oLink = aLinks[i];

		if ( aHasSelection )
			sInnerHtml = oLink.innerHTML;		// Save the innerHTML (IE changes it if it is like an URL).

		oLink.href = sUri;
		SetAttribute( oLink, '_fcksavedurl', sUri );

		var onclick;
		// Accessible popups
		if( GetE('cmbTarget').value == 'popup' )
		{
			onclick = BuildOnClickPopup();
			// Encode the attribute
			onclick = encodeURIComponent( " onclick=\"" + onclick + "\"" ) ;
			SetAttribute( oLink, 'onclick_fckprotectedatt', onclick );
		}
		else
		{
			// Check if the previous onclick was for a popup:
			// In that case remove the onclick handler.
			onclick = oLink.getAttribute( 'onclick_fckprotectedatt' );
			if ( onclick )
			{
				// Decode the protected string
				onclick = decodeURIComponent( onclick );

				if( oRegex.OnClickPopup.test( onclick ) )
					SetAttribute( oLink, 'onclick_fckprotectedatt', '' );
			}
		}

		oLink.innerHTML = sInnerHtml;		// Set (or restore) the innerHTML

		// Target
		if( GetE('cmbTarget').value != 'popup' )
			SetAttribute( oLink, 'target', GetE('txtTargetFrame').value );
		else
			SetAttribute( oLink, 'target', null );

		// Let's set the "id" only for the first link to avoid duplication.
		if ( i == 0 )
			SetAttribute( oLink, 'id', GetE('txtAttId').value );

		// Advances Attributes
		SetAttribute( oLink, 'name'		, GetE('txtAttName').value );
		SetAttribute( oLink, 'dir'		, GetE('cmbAttLangDir').value );
		SetAttribute( oLink, 'lang'		, GetE('txtAttLangCode').value );
		SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value );
		SetAttribute( oLink, 'tabindex'	, ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) );
		SetAttribute( oLink, 'title'	, GetE('txtAttTitle').value );
		SetAttribute( oLink, 'type'		, GetE('txtAttContentType').value );
		SetAttribute( oLink, 'charset'	, GetE('txtAttCharSet').value );

		if ( oEditor.FCKBrowserInfo.IsIE )
		{
			var sClass = GetE('txtAttClasses').value;
			// If it's also an anchor add an internal class
			if ( GetE('txtAttName').value.length != 0 )
				sClass += ' FCK__AnchorC';
			SetAttribute( oLink, 'className', sClass );

			oLink.style.cssText = GetE('txtAttStyle').value;
		}
		else
		{
			SetAttribute( oLink, 'class', GetE('txtAttClasses').value );
			SetAttribute( oLink, 'style', GetE('txtAttStyle').value );
		}
	}

	// Select the (first) link.
	oEditor.FCKSelection.SelectNode( aLinks[0] );

	return true;
}

function BrowseServer()
{
	OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight );
}

function SetUrl( url )
{
	GetE('txtUrl').value = url;
	OnUrlChange();
	dialog.SetSelectedTab( 'Info' );
}

function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{
	// Remove animation
	window.parent.Throbber.Hide();
	GetE( 'divUpload' ).style.display  = '';

	switch ( errorNumber )
	{
		case 0 :	// No errors
			alert( 'Your file has been successfully uploaded' );
			break;
		case 1 :	// Custom error
			alert( customMsg );
			return;
		case 101 :	// Custom warning
			alert( customMsg );
			break;
		case 201 :
			alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' );
			break;
		case 202 :
			alert( 'Invalid file type' );
			return;
		case 203 :
			alert( "Security error. You probably don't have enough permissions to upload. Please check your server." );
			return;
		case 500 :
			alert( 'The connector is disabled' );
			break;
		default :
			alert( 'Error on file upload. Error number: ' + errorNumber );
			return;
	}

	SetUrl( fileUrl );
	GetE('frmUpload').reset();
}

var oUploadAllowedExtRegex	= new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' );
var oUploadDeniedExtRegex	= new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' );

function CheckUpload()
{
	var sFile = GetE('txtUploadFile').value;

	if ( sFile.length == 0 )
	{
		alert( 'Please select a file to upload' );
		return false;
	}

	if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
		( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
	{
		OnUploadCompleted( 202 );
		return false;
	}

	// Show animation
	window.parent.Throbber.Show( 100 );
	GetE( 'divUpload' ).style.display  = 'none';

	return true;
}

function SetDefaultTarget()
{
	var target = FCKConfig.DefaultLinkTarget || '';

	if ( oLink || target.length == 0 )
		return;

	switch ( target )
	{
		case '_blank' :
		case '_self' :
		case '_parent' :
		case '_top' :
			GetE('cmbTarget').value = target;
			break;
		default :
			GetE('cmbTarget').value = 'frame';
			break;
	}

	GetE('txtTargetFrame').value = target;
}

Vale lembrar que esse cód é do fckeditor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde está o código que faz o INSERT no banco? Provavelmente é uma página PHP (ou ASP) separada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse é o arquivo que processa o formulario

 

<?php
 header("content-type: text/html; charset=iso-8859-1"); //Determina o tipo da codificação da página

 extract($_POST); //Extraí os dados do formulário
// CONEXÃO AO BANCO  DE DADOS
	require_once("includes/conexao.php");
	mysql_select_db($database_conn, $conn);
// FUNÇÕES EM PHP	
	require_once("includes/funcoes.php");
// campos
	$_nome_tabela = $_REQUEST["tabela"];
	//echo $_nome_tabela;
	$sql_banco_form = sprintf("SELECT campo,objeto,tipo,label,referencia,campo_referencia,ordem,linha,coluna,max,min,t
amanho,caracteres,obrigatorio,help,modelo_help,class,validacao,value,unico FROM tabelas_campos where campo <> 'id' and tabela=%s and objeto <> 'link' and objeto <> 'grid' and objeto <> 'label' and objeto <> 'label_titulo'  and objeto <> 'grid2' ORDER BY linha, coluna, ordem","'".$_nome_tabela."'");
	//echo $sql_banco_form;
	$conexao_banco_form = mysql_query($sql_banco_form, $conn) or die(mysql_error());
	$form_banco = mysql_fetch_array($conexao_banco_form);
	$all_banco_form = mysql_query($sql_banco_form);
	$total_form_banco = mysql_num_rows($all_banco_form);
	//----	
	$quantidade_formulario = $total_form_banco - 1;
	$formulario = array("0");
	$objetos = array("0");
	$label = array("0");
	$referencia = array("0");
	$j = 0;
	do{
		$formulario[$j] 		= $form_banco["campo"];
		$objetos[$j] 			= $form_banco["objeto"];
		$tipo[$j] 				= $form_banco["tipo"];
		$label[$j] 				= $form_banco["label"];
		$referencia[$j] 		= $form_banco["referencia"];
		$campo_referencia[$j] 	= $form_banco["campo_referencia"];
		$ordem[$j] 				= $form_banco["ordem"];
		$linha[$j] 				= $form_banco["linha"];
		$coluna[$j] 			= $form_banco["coluna"];
		$max[$j] 				= $form_banco["max"];
		$min[$j] 				= $form_banco["min"];
		$tamanho[$j] 			= $form_banco["tamanho"];
		$caracteres[$j] 		= $form_banco["caracteres"];
		$obrigatorio[$j] 		= $form_banco["obrigatorio"];
		$unico[$j] 				= $form_banco["unico"];
		$help[$j] 				= $form_banco["help"];
		$class[$j] 				= $form_banco["class"];
		$validacao[$j] 			= $form_banco["validacao"];
		$value[$j] 				= $form_banco["value"];
		$j++;
	}while($form_banco = mysql_fetch_array($conexao_banco_form));

	for($i = 0; $i <= $quantidade_formulario;$i++){
		if($i == $quantidade_formulario){
			$formulario_organizado = $formulario_organizado.$formulario[$i];			
		}else{
			$formulario_organizado = $formulario_organizado.$formulario[$i].",";			
		}
	}
	for($i = 0; $i <= $quantidade_formulario;$i++){
		if($i == $quantidade_formulario){
			$campos_novo 	= $campos_novo.$formulario[$i];
		}else{
			$campos_novo 	= $campos_novo.$formulario[$i].",";
		}
	}

	for($j = 0; $j <= $quantidade_formulario;$j++){
		if($j == $quantidade_formulario){
			if($tipo[$j] == "objeto_data"){
				$novo_criterios = $novo_criterios.Formata(FormataData($_REQUEST[$formulario[$j]],"html"),"texto");
				$_atualiza = $_atualiza.$formulario[$j]."=".Formata(FormataData($_REQUEST[$formulario[$j]],"html"),"texto");	
			}else{
				$novo_criterios = $novo_criterios.Formata($_REQUEST[$formulario[$j]],"texto");
				$_atualiza = $_atualiza.$formulario[$j]."=".Formata($_REQUEST[$formulario[$j]],"texto");				
			}
		}else{
			if($tipo[$j] == "objeto_data"){
				$novo_criterios = $novo_criterios.Formata(FormataData($_REQUEST[$formulario[$j]],"html"),"texto").",";
				$_atualiza = $_atualiza.$formulario[$j]."=".Formata(FormataData($_REQUEST[$formulario[$j]],"html"),"texto").",";	
			}else{
				$novo_criterios = $novo_criterios.Formata($_REQUEST[$formulario[$j]],"texto").",";
				$_atualiza = $_atualiza.$formulario[$j]."=".Formata($_REQUEST[$formulario[$j]],"texto").",";			
			}
		}
	}
//echo $_atualiza;

	//UNICO NO BANCO
	
	for($i = 0; $i <= $quantidade_formulario;$i++){
		if($unico[$i] == 1){
			if($unico_banco == ""){
				$unico_banco 	= $formulario[$i];
				$registro_unico = $formulario[$i]."=".Formata($_REQUEST[$formulario[$i]],"texto");
			}else{
				$unico_banco 	= $unico_banco.",".$formulario[$i];
				$registro_unico = $registro_unico." or ".$formulario[$i]."=".Formata($_REQUEST[$formulario[$i]],"texto");
			}
		}	
	}
	
	if($unico_banco == ""){
		$total_rows_unico = 0;
	}else{	
		// verifica se existe registro no banco
		$sql_unico = sprintf("SELECT id,%s FROM %s where %s",$unico_banco,$_nome_tabela,$registro_unico);
		//echo $sql_unico;
		$conexao_unico = mysql_query($sql_unico, $conn) or die(mysql_error());
		$row_unico = mysql_fetch_array($conexao_unico);
		$all_unico = mysql_query($sql_unico);
		$total_rows_unico = mysql_num_rows($all_unico);	
		$i = 1;
		/*do{
			$_row_unico[$i] = $row_unico["id"];
			$i++;
		}while($row_unico = mysql_fetch_array($conexao_unico));*/
		if($total_rows_unico == 1){
			if($row_unico["id"] == $_REQUEST["id"]){
				$_mesmo_registro = 1;
			}else{
				$_mesmo_registro = 0;
			}
		}
	}
//for($i = 1; $i <= $total_rows_unico;$i++){
	//echo $_row_unico[$i]."<br />";
//}	
// RECUPERA A OPERAÇÃO - NOVO, EDITA, ATUALIZA	E DELETA
	$_operacao = $_REQUEST["operacao"];
// NOVO ---------------------------------	
	if($_operacao == "novo"){
		if($total_rows_unico > 0){
			echo "<span class=\"novo_atualiza\">Registro Existente</span><br />";
			echo "<a href=\"formulario.php?tabela=".$_nome_tabela."&operacao=edita&id=".$row_unico["id"]."\">clique aqui para verificar o registro</a>";			
		}else{	
			// ENCONTRA O MAIOR ID		
			$sql_id = "select max(id) as proximo from ".$_nome_tabela;
			$row	= mysql_query($sql_id) or die ("Não foi possível selecionar o próximo ID");
			$new_id = mysql_result($row,0)+1;
			$novo_criterios = $new_id.",".$novo_criterios;
			// FAZ A INSERÇÃO NO BANCO
			$sql = sprintf("insert into %s(id,%s) values (%s);",$_nome_tabela,$campos_novo,$novo_criterios);
			$result = mysql_query($sql) or die("<script>alert(\"Campos com * devem ser preenchidos\");</script><script>history.back(1);</script>");
			echo "<script LANGUAGE=\"JavaScript\">alert(\"O cadastro foi inserido com sucesso!\");</script>";
			echo "<span class=\"novo_atualiza\"><b>O cadastro foi inserido com sucesso!</b></span><br />";
			echo "<script>history.back(-1);</script>";
			echo "<a href=\"java script:desbloqueia();\">clique aqui para cadastrar um novo registro</a>";
		}	
	}
// ATUALIZA ---------------------------------	  
	if ($_operacao == "atualiza") {
		if(($total_rows_unico > 0) && ($_mesmo_registro != 1)){
			echo "<span class=\"novo_atualiza\">Registro Existente</span><br />";
			echo "<a href=\"formulario.php?tabela=".$_nome_tabela."&operacao=edita&id=".$row_unico["id"]."\">clique aqui para verificar o registro</a>";			
		}else{		
			$sql = sprintf("UPDATE %s set %s WHERE id = %s",$_nome_tabela,$_atualiza,Formata($_REQUEST["id"],"texto"));
			//echo $sql;
			$result = mysql_query($sql) or die(mysql_error());	
			echo "<script LANGUAGE=\"JavaScript\">alert(\"O cadastro foi alterado com sucesso!\");</script>";
			echo "<span class=\"novo_atualiza\"><b>O cadastro foi alterado com sucesso!</b></span>";
			echo "<script LANGUAGE=\"JavaScript\">window.location=\"lista.php?tabela=".$_nome_tabela."\";</script>";
		}
	}	 
// DELETA ---------------------------------	   
	if ($_operacao == "deleta")  {
		$sql = sprintf("delete from %s  where id= %s ",$_nome_tabela,Formata($_REQUEST["id"],"numero"));
		$result = mysql_query($sql) or die(mysql_error());
		echo "<script LANGUAGE=\"JavaScript\">alert(\"O registro foi excluido com sucesso!\");</script>";
		echo "<script LANGUAGE=\"JavaScript\">window.location=\"lista.php?tabela=".$_nome_tabela."\";</script>";
		} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qta coisa!AUHhuaAHUA

 

Bom... tenta fazer nessa linha aqui:

$sql = sprintf("insert into %s(id,%s) values (%s);",$_nome_tabela,$campos_novo,$novo_criterios);

ficando assim:

$sql = sprintf("insert into %s(id,%s) values (%s);",$_nome_tabela,$campos_novo,str_replace($novo_criterios, "'", "''"));

 

Se rolar aí você faz a mesma coisa no UPDATE!

 

Abrax!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No update esta assim:

 

/*$sql = sprintf("UPDATE %s set %s WHERE id = %s",$_nome_tabela,$_atualiza,Formata($_REQUEST["id"],"texto"));*/
/* original */			
			
está certo trocar por este?

$sql = sprintf("UPDATE %s set %s WHERE id = %s",$_nome_tabela,$_atualiza,Formata($_REQUEST["id"],"texto"),str_replace($novo_criterios, "'", "''"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa! desculpe a demora.

Está errado!

Mas antes de mudar no UPDATE verifique se no INSERT deu certo.

 

No UPDATE fica assim:

$sql = sprintf("UPDATE %s set %s WHERE id = %s",$_nome_tabela,str_replace($_atualiza, "'", "''"),Formata($_REQUEST["id"],"texto"));

 

IMPORTANTE: primeiro tenta rodar o update SEM ESSA ALTERAÇÃO! Acho que não vai precisar.

Se não rolar aí sim você testa ela. Frmz?

 

ABRAX!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

no insert não deu antes tb...

e agora sem mexer nos dados e só clicando em atualizar deu esse erro:

 

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' WHERE id = '9'' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.