Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Tienda HTMLTema Solucionado

Foros de soporte phpBB 3.2


MadameSativa
Observador/a
Mensajes: 4
Registrado: 26 Jul 2018, 00:33
Género:

Tienda HTML

#1

Mensaje por MadameSativa »


Datos de Soporte - Inicio

URL: https://durmstrang-rpg.com/foro/
Estilo(s) usuado(s): Milk v2
MODs/Extensiones instaladas:
Imagen
Versión de phpBB:3.2.2
Tu conocimiento: Conocimiento básico
Servidor: Hostalia

Datos de Soporte - Fin

El código funciona correctamente, sin embargo al enviar la compra, sale el siguiente error
Imagen
rompiendo la cadena "automática" del sistema a la hora de enviar el mp, modifique el js original para adaptarlo a phpbb3 pero siento que falla algo. Ya que realmente una vez le das de nuevo a enviar cuando sale el error el mensaje se envía correctamente si le vuelves a dar ya en la bandeja de entrada, necesitaría que el mensaje se enviase automática sin ninguna clase de error. Quisiera arreglar el error, para que el mensaje se envíe correctamente desde la primera vez que se le da a enviar. ¿Alguna idea de lo que esta fallando? Dejo el código completo de la tienda en Hidden, el original sería de aquí @socialacademy.

Código: Seleccionar todo

<script type="text/javascript">
(function($){
$(document).ready(function(){
var $total = 0.0

$('.addButton').click(function (){
    var theID ='#' + $(this).attr('data-item');
var pointstoAdd = parseFloat($(theID).find('.points').attr('data-myprice'));
$total += pointstoAdd;
$('.totaler').html('Total Currencies = R$ ' + $total.toFixed(2));
var $newItem = '<li class="cart-item" data-points="'+ pointstoAdd+'">' + $(theID).find('.title').text()+ '</li>';
$('.theList').append($newItem);
BindIt();
});

function BindIt(){
   
   $('.cart-item').unbind('click');
   
   $('.cart-item').click( function(){
        $total -= parseFloat($(this).attr('data-points'));
        $('.totaler').html('Total Currencies = R$ ' + $total.toFixed(2));
        $(this).remove();
    });
}
});
 $(document).ready(
              function() {
                $('#submitCart').click(function() {
                var text = '';
var total = 0;

$(".theList li").each(function () {
  var string = $(this).text();
  var points = parseInt($(this).data('points'));

  //capitalize first letter of string
  text += string.charAt(0).toUpperCase() + string.slice(1)
  //add line break at the end
      + ' = ' + points + "\n";

  total += points;
});

//I think calculating total is easier than trying to manipulate $(".totaler")
text += "Total Currencies = R$ " + total;
$("#cartMessage").text(text);
            });
        });
})(jQuery);
</script>

  <form id="privatemessage" action="https://durmstrang-rpg.com/foro/ucp.php?i=pm&mode=compose&u=48" method="post" name="post">
    <input name="username[]" type="text" style="display:none" value="The Crow">
    <input value="Pedido compra" style="display:none" maxlength="64" name="subject" type="text" class="usernameinput">
    <textarea id="cartMessage" style="display:none" class="noThis" name="message"></textarea>
    <span class="buttons">
    <center><button id="submitCart" type="button" class="button1 specialbutton" onclick="this.disabled = false;document.getElementById('sendingBut').disabled = false"><i class="fa fa-share"></i> ACTUALIZAR </button>
<button type="submit" name="post" class="button2 specialbutton" id="sendingBut" disabled="disabled"><i class="fa fa-shopping-cart"></i> ENVIAR COMPRA</button></span></center><center style="font-size: 13px;width: 560px;text-align: justify;float: left;"><span style="color:red;font-size: 13px;">**Debes actualizar la cesta antes de enviar la compra.</span><br>
¡Bienvenido a la tienda del foro! 
Selecciona los objetos que deseas comprar haciendo Click en "Comprar" puedes revisar tu cesta de la compra en la parte lateral de la tienda. Revisa la compra antes de actualizar y darle a enviar compra.
La actualización de tu inventario será entre 24 - 48hrs desde la recepción del mensaje por parte del staff. Cuando la compra se haya completado la administración realizará el descuento de puntos correspondiente al valor de la compra enviada.</center></form>
Contenido Oculto
Este foro requiere que este registrado e identificado para ver el contenido oculto.


Avatar de Usuario
AbaddonOrmuz
Moderador
Mensajes: 1054
Registrado: 14 Ene 2017, 22:18
Género:

Re: Tienda HTML

#2

Mensaje por AbaddonOrmuz »

Lo que muestras parece ser un mod, cosa que no debería ser usado en versiones de phpBB superiores a 3.1 y dado que no pertenece a ningúna extensión o función oficial, deberías buscar soporte en el sitio en donde has conseguido el script.

El error que te muestra por lo regular se muestra cuando el token CSRF del formulario es inválido, no se tiene permisos suficientes para acceder/enviar el contenido o falla algún tipo de validación.

No veo el token CSRF en el formulario, pero el error se podría ser causado por varias razones y el sitio que ofrece el script conocerá mejor las posibles soluciones, ya que el error es probable que se encuentre en el código PHP, y lo que muestras sólo es HTML, CSS y JavaScript.

Algunas de mis extensiones:
Imagen Imgur | :chart_with_upwards_trend: SEO Metadata | Imagen Markdown | :lock: Auto-lock Topics | :mermaid: Mermaid Diagrams
:trophy: Checa todas mi extensiones aprobadas :trophy:

:penguin: Usuario de Arch Linux :penguin:

MadameSativa
Observador/a
Mensajes: 4
Registrado: 26 Jul 2018, 00:33
Género:

Re: Tienda HTML

#3

Mensaje por MadameSativa »

¡Hola! Gracias por tu respuesta pero lo cierto es que no es ningun modx, ni extension simplemente es una pagina html con css y js que he agregado con la extensión de paginas html con "phpbb/pages" y de esta forma hacer una tienda dentro del foro debido a que la ext de ultimate points no lo ofrece aún como en versiones anteriores.

El código corresponde a la zona de tutoriales de "Hypertext Markup Language (HTML) Tutorials" y es una pagina inicialmente programada para que funcione en Forumotion, y lo único que me falla es el envio del mensaje directo por lo demas parecen perfectamente compatibles, ya que la funcionalidad va bien pero a la hora del envio es donde se queda pillado. Este sería el codigo original de la pagina -no es extensión, ni mod- https://durmstrang-rpg.com/foro/app.php/tienda

Código: Seleccionar todo

    <div id="main-content"><div style="height:3px"></div>
    <style>#right {width: 1px;height: 1px;max-width: 1px;max-height: 1px;overflow: hidden;display: none;}#content{width: 100%;z-index: 999;}</style>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
     <link type="text/css" rel="stylesheet" charset="UTF-8" href="http://translate.googleapis.com/translate_static/css/translateelement.css"><script type="text/javascript" charset="UTF-8" src="http://translate.googleapis.com/translate_static/js/element/main_pt-BR.js"></script><script type="text/javascript" charset="UTF-8" src="http://translate.googleapis.com/translate_static/js/element/10/element_main.js"></script>
    <style type="text/css">
    .header{
    margin-top: 25px;
    background: #DDD;
    font-size: 25px;
    color: white;
    padding: 10px 15px;
    margin-bottom: 15px;
    border: 1px solid #CCC;
    box-shadow: inset 1px 1px 2px #999;
    border-radius: 4px;
    text-align: center;
    }
    /.shopWrapper{text-align:center;margin:0 auto;border:3px dashed/
    #0000ff;overflow:hidden;height:auto;background: whiteSmoke;}
    .title{
    font-weight: bold;
    font-size: 12px;
    color: #303030;
    margin: 5px;
    }
    .image img{padding-top: 13px;height:40px;width:40px;}
    .image{text-align:center;}
    .points{
    background: url(http://s6.tinypic.com/286sfuu_th.jpg) no-repeat;
    padding-bottom: 5px;
    padding-left: 18px;
    color:#242424;
    font-weight:bold;
    font-size:11px;
    float:left;
    text-align:center;
    }
    .sale{color:green;font-style: italic;font-size:11px;float:right;text-align:center;}
    .item{width:188px;min-height:195px;border:1px solid #CECECE;overflow:hidden;height:auto;padding:5px;background:#fff;text-align:center;}
    .descrip{
    float: left;
    margin-left: -10px;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 5px;
    padding-bottom: 5px;
    background: #E9E9E9;
    border: 1px solid #CECECE;
    border-left: 0;
    width: 92.3%;
    text-align: left;
    margin-top: 30px;
    margin-bottom: 5px;
    }
    .description {color: #242424;font-size: 11px;word-wrap: break-word;text-align: left !important;float: left;text-indent: 11px;}
    .itemWrapper{text-align:center;margin:0 auto;float:left;}
    .inventWrapper{float:left;width:815px;height:auto;overflow:hidden;}
    .cart{overflow: hidden;background: white;}
    .cart_title{text-align:center;color:#000;border-bottom:2px solid #000;}
    .cart_items{text-align:center;}
    .cart_body{text-align: center;
    margin: ;
    overflow-x: hidden;
    overflow-y: scroll;
    border: 1px solid lime;
    height: 210px;
    background: white;}
    .cartWrapper
    .totaler{bottom:0;}
    li:hover{cursor:pointer;}
    #checkout{float: left;
    height: 130px;
    text-align: center;
    background: white;
    border-top: 2px solid #343434;
    margin-top: 5px;
    width: 100% !important;}
    input[type="button"], input[type="reset"], input[type="submit"] {
    margin-bottom: -30px;
    font-family: 'Segoe UI Web Light', 'Segoe UI Light', 'Segoe UI Web Regular', 'Segoe UI', 'Segoe UI Symbol', 'Helvetica Neue', Arial;
    font-size: 15px;
    color: black;
    border: 1px solid #cecece;
    background-color: #F3F3F3;
    padding: 4px 10px;
    -webkit-transition: all 0.3s;
    }
    input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover {
    border: 1px solid #CECECE;
    background: #CECECE;
    box-shadow: 0 0 0px;
    }
    button.button1, button.button2, input.button1, input.button2 {
    margin: 3px;
    cursor: pointer;
    border-radius: 2px;
    font-family: 'Segoe UI Web Light', 'Segoe UI Light', 'Segoe UI Web Regular', 'Segoe UI', 'Segoe UI Symbol', 'Helvetica Neue', Arial;
    font-size: 16px;
    color: black;
    border: 1px solid #CECECE;
    background: #F3F3F3;
    padding: 15px 51px;
    -webkit-transition: all 0.3s;
    }
    button.button1:hover, button.button2:hover, input.button1:hover, input.button2:hover {
    color: white;
    border: 1px solid #A3A3A3;
    background-color: #A3A3A3;
    }
    .type_header {
    -webkit-box-shadow: none !important;
    margin: 0px;
    padding: 4px 10px;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    font-size: 12px;
    line-height: normal;
    font-family: arial, helvetica, sans-serif;
    color: white;
    background-image: url(http://i47.tinypic.com/33nusqs.jpg);
    background-color: #8A8783;
    border: 1px solid #6E6A65;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
    background-position: initial initial;
    background-repeat: repeat no-repeat;
    width: 778px;
    }
    </style>


    <script type="text/javascript">
    (function($){
    $(document).ready(function(){
    var $total = 0.0

    $('.addButton').click(function (){
        var theID ='#' + $(this).attr('data-item');
    var pointstoAdd = parseFloat($(theID).find('.points').attr('data-myprice'));
    $total += pointstoAdd;
    $('.totaler').html('Total Currencies = R$ ' + $total.toFixed(2));
    var $newItem = '<li class="cart-item" data-points="'+ pointstoAdd+'">' + $(theID).find('.title').text()+ '</li>';
    $('.theList').append($newItem);
    BindIt();
    });

    function BindIt(){
       
       $('.cart-item').unbind('click');
       
       $('.cart-item').click( function(){
            $total -= parseFloat($(this).attr('data-points'));
            $('.totaler').html('Total Currencies = R$ ' + $total.toFixed(2));
            $(this).remove();
        });
    }
    });
     $(document).ready(
                  function() {
                    $('#submitCart').click(function() {
                    var text = '';
    var total = 0;

    $(".theList li").each(function () {
      var string = $(this).text();
      var points = parseInt($(this).data('points'));

      //capitalize first letter of string
      text += string.charAt(0).toUpperCase() + string.slice(1)
      //add line break at the end
          + ' = ' + points + "\n";

      total += points;
    });

    //I think calculating total is easier than trying to manipulate $(".totaler")
    text += "Total Currencies = R$ " + total;
    $("#cartMessage").text(text);
                });
            });
    })(jQuery);
    </script>

       
                     
    <style>
    div.module.main.module-advert {
    display: none;
    }
    img, .input_check, .input_radio {
    vertical-align: middle;
    }
    .ipsButton_secondary img {
    vertical-align: middle;
    margin-top: -1px;
    }
    .ipsButton_secondary:hover {
    color: #4C4C4C;
    background-color: #F8F8F8;
    }
    index.phpmedia="screen, print"
    .input_submit, .ipsButton_secondary {
    outline: none;
    }
    .ipsButton_secondary {
    height: 24px;
    line-height: 24px;
    font-size: 11px;
    padding: 0 10px;
    background: #ECECEC url('http://i46.tinypic.com/2v0y81x.png') repeat-x 0 0;
    border: 1px solid #D0D0D0;
    -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.1), inset rgba(255,255,255,0.7) 0px 1px 0px;
    -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1), inset rgba(255, 255, 255, 0.7) 0px 1px 0px;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1), inset rgba(255, 255, 255, 0.7) 0px 1px 0px;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    color: #616161;
    text-shadow: white 0px 1px 0px;
    display: inline-block;
    white-space: nowrap;
    cursor: pointer;
    }
    .ipsButton_secondary:active{-webkit-box-shadow:inset rgba(0,0,0,0.15) 0px 1px 2px, rgba(255,255,255,0.5) 0px 1px 0px;-moz-box-shadow:inset rgba(0,0,0,0.15) 0px 1px 2px, rgba(255,255,255,0.5) 0px 1px 0px;box-shadow:inset rgba(0,0,0,0.15) 0px 1px 2px, rgba(255,255,255,0.5) 0px 1px 0px;position:relative;top:1px}
    #Doarfast{
      background: rgba(0, 0, 0, 0.6) url('http://fcimage.net/public/style_images/imgfc/trans60.png') repeat;
      box-shadow:10px 10px 40px #000;
      color:#333;
      font-family:sans-serif;
      left:30%;
      position:fixed;
      top:20%;
      width:550px;
      z-index: 999;
      padding: 8px;
      -webkit-box-shadow: rgba(0, 0, 0, 0.5) 0px 10px 20px;
      -moz-box-shadow: rgba(0,0,0,0.5) 0px 10px 20px;
      box-shadow: rgba(0, 0, 0, 0.5) 0px 10px 20px;
      -moz-border-radius: 5px;
      -webkit-border-radius: 5px;
      border-radius: 5px;
    }
    #Doarfaster {
    background-color: #3E3E3E;
    filter: Alpha(opacity=80);
    left: 0;
    min-height: 101%;
    opacity: 0.4;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 999;
    }
    #Doarfast h1 {
    padding: 5px;
    font-size: 12px;
    text-align: center;
    color: #727272;
    text-shadow: rgba(255, 255, 255, 0.8) 0px 1px 0px;
    background: #EEE url('http://i46.tinypic.com/2v0y81x.png') repeat-x 0 0;
    }
    .Doarfast-content {
    background-color: #FCFCFC;
    border-bottom: 1px solid #EAEAEA;
    border-top: 1px solid white;
    }
    .Doarfast-content td {
    padding: 10px;
    padding-top: 2px;
    padding-bottom: 2px;
    border-bottom: 1px solid #EAEAEA;
    border-top: 1px solid white;
    }
    #Doarfast img.closebutton{
    background:url(http://i50.tinypic.com/33kqfld.png) no-repeat;
      cursor:pointer;
      float:right;
      height:22px;
      margin:5px;
      width:22px
    }
    .pun input {
    padding: 6px;
    border: 1px solid #D4D4D4;
    background: #FCFCFC;
    color: #9F9F9F;
    text-shadow: white 0px 1px 0px;
    -webkit-box-shadow: inset rgba(0, 0, 0, 0.1) 0px 1px 3px;
    -moz-box-shadow: inset rgba(0,0,0,0.1) 0px 1px 3px;
    box-shadow: inset rgba(0, 0, 0, 0.1) 0px 1px 3px;
    }
    .pun input:focus {
    background-color:#fefefe;color:#555;border-color:#bbb;-webkit-box-shadow:inset 0px 0px 4px rgba(0,0,0,0.2);-moz-box-shadow:inset 0px 0px 4px rgba(0,0,0,0.2);box-shadow:inset 0px 0px 4px rgba(0,0,0,0.2)
    }
    .submit {
    padding: 15px;
    text-align: center;
    background: #EEE url('http://i46.tinypic.com/2v0y81x.png') repeat-x 0 0;
    border-top: 1px solid #CCC;
    height: 30px;
    }</style>
       
     
    <div class="header"><font>Online Shop</font></div><div class="shopWrapper"><div class="inventWrapper"><div class="type_header">Item store</div>
      <div class="itemWrapper"><div id="item1" class="item">
    <span class="title"><font><font>Item Name #1</font></font></span><br>
    <span class="image"><img src="http://png.findicons.com/files/icons/2169/picnic/70/helmet2.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item1" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item2" class="item">
    <span class="title"><font><font>Item Name #2</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item2" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item3" class="item">
    <span class="title"><font><font>Item Name #3</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item3" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item4" class="item">
    <span class="title"><font><font>Item Name #4</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item4" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item5" class="item">
    <span class="title"><font><font>Item Name #5</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item5" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item6" class="item">
    <span class="title"><font><font>Item Name #6</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item6" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item7" class="item">
    <span class="title"><font><font>Item Name #7</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item7" value="Buy"></font></font>
    </div>
    </div>
    <div class="itemWrapper"><div id="item8" class="item">
    <span class="title"><font><font>Item Name #8</font></font></span><br>
    <span class="image"><img src="http://png-3.findicons.com/files/icons/2169/picnic/70/lightsaber24.png"></span><br><div class="descrip">
    <span class="points" data-myprice="200"><font><font>200 cash </font></font></span>
    <span class="sale"><font><font>For sale </font></font></span><br>
    </div>
        <font><font><input type="button" class="addButton" data-item="item8" value="Buy"></font></font>
    </div>
    </div>

     </div>
        <div class="cartWrapper"><div class="cart" id="cartj"><div class="cart_body"><div class="cart_title"><font><font>Shopping cart</font></font></div><div class="cart_items">
    <ul class="theList">
    </ul>
    </div>
    </div>
          <span class="totaler"><font><font>Total Currencies = </font></font></span>
    </div>
    <form id="privatemessage" action="/privmsg" method="post" name="post">
    <input name="username[]" type="text" style="display:none" value="Admin">

    <input value="Order of Store" style="display:none" maxlength="64" name="subject" type="text" class="usernameinput">
    <textarea id="cartMessage" style="display:none" class="noThis" name="message"></textarea>
    <span class="buttons">
    <center><button id="submitCart" type="button" class="button1" onclick="this.disabled = false;document.getElementById('sendingBut').disabled = false"><font><font>Update cart</font></font></button><center><span style="color:red">Update before sending.</span></center></center>

     <center><button type="submit" name="post" class="button2" id="sendingBut" disabled="disabled"><font><font>Submit request</font></font></button></center></span></form>
        </div>
        </div>
MadameSativa
Observador/a
Mensajes: 4
Registrado: 26 Jul 2018, 00:33
Género:

Re: Tienda HTML

#4

Mensaje por MadameSativa »

¿Alguien podría echar un cable? :geek:
Avatar de Usuario
canidev
Moderador
Mensajes: 590
Registrado: 30 Jun 2011, 17:06
Género:
Edad: 33

Re: Tienda HTML  Tema Solucionado

#5

Mensaje por canidev »

No creo que puedas hacerlo funcionar porque todos los formularios de phpBB llevan una comprobación extra para evitar ataques. Dicha comprobación es una "clave" que se genera mediante php cuando se visualiza el formulario y que se comprueba al enviarlo. Debido a que el método que utilizas solo te te permite utilizar html, js y css no podrás generar esa clave en php, por lo que el envío siempre te dará el error.
MadameSativa
Observador/a
Mensajes: 4
Registrado: 26 Jul 2018, 00:33
Género:

Re: Tienda HTML

#6

Mensaje por MadameSativa »

Entiendo, resuelto el paradigma entonces, el mensaje de error puede ser soportable mientras envié todo correctamente. Gracias por la respuesta. :rock:

Volver a “🔎 Foros de Soporte 3.2”