
Script Para Recomendar Site
#1
Posted 14/01/2008, 13:40
Estou disponibilizando um script que baixei do WMOnline através do qual os internautas indicam meu site para vários amigos, tipo Recomende. Acontece que na hora do envio, ocorre a seguinte página de erro:
unauthorized use
Os arquivos que construí com as instruções estão no endereço:
http://www.acasadoap.../recomende.html
Por favor!
Se alguém puder me ajudar, agradeço.
Francisco
#2
Posted 14/01/2008, 14:46
Desenvolvimento de websites e sistemas web. Acesse http://www.magnumweb.com.br
#3
Posted 14/01/2008, 14:54
Mostre o código fonte do arquivo recom.php para que possamos ajudar melhor.
Aqui está o código:
<?
// assunto do e-mail
$subject = "Seu amigo(a) recomendou esse site pra você!";
// the message sent if the user does not supply his own
$defaultMsg = "Hey FRIEND_NAME, check out this great site!\n\nYour friend, $userName";
// URL do formulário
$formURL = "http://www.acasadoap...ecomende.html";
// the URL of the "thanks" page
$thanksURL = "ok.html";
// e-mail do webmaster para casos de erros
$webmasterEmail = "";
$receiveNotices = 1;
function is_email($string)
{
$boolValue = ereg(
'^[a-z0-9_\.-]+'.
'@'.
'([a-z0-9-]+\.)+'.
'[a-z]{2,4}$',
$string);
return($boolValue);
}
if ($HTTP_REFERER != $formURL) {
die("Unauthorized use.");
}
if (!isset($url)) {
mail($webmasterEmail, "Sistema de recomendação com Erro!", "v-ine was not properly configured at <$formURL>. You must specify the site URL in the HTML form. Customize the following code and insert it into the HTML form:\n\n<input type=\"hidden\" name=\"url\" value=\"http://brasilgames.rg.com.br\">");
// print an error message and terminate the script
die("O <i>Sistema de recomendação</i> do nosso site esta com erro. Mas muito obrigado!");
}
// if friendName or friendEmail is not an array
if (!is_array($friendName) || !is_array($friendEmail)) {
// e-mail an alert to the webmaster
mail($webmasterEmail, "Recomende com Error", "v-ine was not properly configured at <$formURL>. You must add \"[]\" after the field names friendName and friendEmail like this:\n\n<input type=\"text\" size=\"20\" name=\"friendName[]\">");
// print an error message and terminate the script
die("O <i>Sistema de recomendação</i> do nosso site esta com erro. Mas muito obrigado!");
}
// if the necessary user input is not provided, print an error message and terminate the script
if ($userName == "" || !is_email($userEmail)) {
die("Você deve preencher corretamente o seu NOME e E-MAIL!");
}
// count the number of elements in the friend arrays using friendName
$noArrElements = count($friendName);
// remove empty elements from the friendName array
for ($i = 0; $i < $noArrElements; $i++) {
if ($friendName[$i] == "") {
unset($friendName[$i]);
}
}
// remove empty elements from the friendEmail array
for ($i = 0; $i < $noArrElements; $i++) {
if ($friendEmail[$i] == "") {
unset($friendEmail[$i]);
}
}
// count the number of elements in the friend arrays
$noFriendNames = count($friendName);
$noFriendEmails = count($friendEmail);
// if the number of elements is not equal, print an error message and terminate the script
if ($noFriendNames != $noFriendEmails) {
die("Você deve colocar um NOME e um E-MAIL de um amigo para recomendar este site!");
}
// cycle through the friendEmail array
for ($i = 0; $i < count($friendEmail); $i++) {
// e-mail não valido
if (!is_email($friendEmail[$i])) {
die("<b>$friendEmail[$i]</b> é inválido!");
}
}
// get the date and time
$datetime = date('l, F j \a\t g:i A T');
// caixa de msm sem nada
if ($message == "Uma mensagem padrão sera enviada se vc não colocar nada." || $message == "Visite o nosso site: [url="http://www.brasilgames.rg.com.br")"]http://www.brasilgames.rg.com.br")[/url] {
$message = $defaultMsg;
}
// e-mail a referral to each friend
for ($i = 0; $i < $noFriendEmails; $i++) {
// replace FRIEND_NAME if found with name of friend
$message = ereg_replace("FRIEND_NAME", $friendName[$i], $message);
// e-mail the referral
mail($friendEmail[$i], $subject, "$message\n\nURL: $url", "From: $userEmail");
// replace the name of friend if found with FRIEND_NAME
$message = ereg_replace($friendName[$i], "FRIEND_NAME", $message);
}
// if the webmaster wants to receive referral notices, e-mail him now
if ($receiveNotices) {
for ($i = 0; $i < $noFriendNames; $i++) {
$friendsList .= "$friendName[$i] <$friendEmail[$i]>\n";
}
mail($webmasterEmail, "Recomendação", "$userName <$userEmail> referred\n\n$friendsList\nto $url on $datetime with the following message:\n\n$message");
}
header("Location: $thanksURL");
?>
#4
Posted 14/01/2008, 15:51
Mas você pode resolver este problema da seguinte forma, nesta parte do código:
if ($HTTP_REFERER != $formURL) { die("Unauthorized use."); }
Substitua o $HTTP_REFERER por $_SERVER['HTTP_REFERER'] que deve resolver.
Edição feita por: EternaL, 14/01/2008, 15:52.
Desenvolvimento de websites e sistemas web. Acesse http://www.magnumweb.com.br
#5
Posted 14/01/2008, 16:47
O problema está no Globals On.
Mas você pode resolver este problema da seguinte forma, nesta parte do código:if ($HTTP_REFERER != $formURL) { die("Unauthorized use."); }
Substitua o $HTTP_REFERER por $_SERVER['HTTP_REFERER'] que deve resolver.
Infelizmente não deu certo, amigo. Continua aparecendo: Unauthorized use.
#6
Posted 15/01/2008, 03:46
if ($HTTP_REFERER != $formURL) { die("Unauthorized use."); }
essa funcao verifica se o endereco que enviou os dados eh o mesmo da variavel $formURL.'HTTP_REFERER'
O endereço da página (se houver) através da qual o agente do usuário acessou a página atual. Essa diretiva é informada pelo agente do usuário. Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de modificar o conteúdo do HTTP_REFERER como recurso. Em poucas palavras, não é confiável.
por isso na variavel $formURL voce tem que colocar o endereco do seu formulario.
// URL do formulário $formURL = "http://www.acasadoaprendiz.com/recom/recomende.html";ps: mais informacoes sobre as variaveis pre-definidas, incluindo alteracoes quanto as versoes do php neste link.
regras de utilizacao
vlw3.e. Evite postar mensagens muito longas que torne a leitura cansativas. Tente usar o bom senso para incluir todas as informações necessárias relacionadas ao seu problema. Faça uso das formatações de texto, como negrito, alteração de cores, utilize CODEBOX ao invés de CODE para postar códigos longos, etc...

Edição feita por: § Kenshin §, 15/01/2008, 03:49.
"Living to learn... learning to live!"
Useful links: Rules | Search
#7
Posted 15/01/2008, 07:30
if ($HTTP_REFERER != $formURL) { die("Unauthorized use."); }essa funcao verifica se o endereco que enviou os dados eh o mesmo da variavel $formURL.'HTTP_REFERER'
O endereço da página (se houver) através da qual o agente do usuário acessou a página atual. Essa diretiva é informada pelo agente do usuário. Nem todos os browsers geram esse header, e alguns ainda possuem a habilidade de modificar o conteúdo do HTTP_REFERER como recurso. Em poucas palavras, não é confiável.
por isso na variavel $formURL voce tem que colocar o endereco do seu formulario.// URL do formulário $formURL = "http://www.acasadoaprendiz.com/recom/recomende.html";ps: mais informacoes sobre as variaveis pre-definidas, incluindo alteracoes quanto as versoes do php neste link.
regras de utilizacaovlw3.e. Evite postar mensagens muito longas que torne a leitura cansativas. Tente usar o bom senso para incluir todas as informações necessárias relacionadas ao seu problema. Faça uso das formatações de texto, como negrito, alteração de cores, utilize CODEBOX ao invés de CODE para postar códigos longos, etc...
Fiz tudo correto, como você mencionou, mas não dá certo. Você não tem algum outro código que funcione pra eu colocar no site.
Grato!
#8
Posted 24/01/2008, 21:06
no primeiro: 500 internal server error (erro interno do servidor)
no segundo: 403 method not allowed (metodo nao permitido).
so pra desencargo de consciencia, tire os colchetes dos nomes dos campos.
se o erro continuar, entre em contato com o host e veja se nao eh necessaria alguma configuracao extra para que o script funcione.
403... nunca tinha visto

vlw

"Living to learn... learning to live!"
Useful links: Rules | Search
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)