Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jose1996vs

Páginas: [1]
1
Hola,

qué va, eso lo pongo por supuesto nada más empezar la página. El problema es al dar a recargar, o irse a otra pantalla y luego volver, que desaparece. Se me ocurre que quizás el problema sea que creo la sesión desde una función de javascript. Te muestro el código (y gracias por la respuesta). La página es un carro de la compra de la típica tienda online.

Código: [Seleccionar]
//Añado a la cesta con este botón:
<button onclick="anadiralacesta(document.querySelector('#cesta'))"
            class="botonanadir" id="botondeanadiralacesta">Añadir</button>

//Parte de la función de añadir a la cesta, el resto hace cosas que no tienen que ver con añadir ni crear variables, por eso te lo ahorro:
function anadiralacesta(divcestadeofertas) {
    'use strict';
    var divdecadaoferta = document.createElement("div");
    var titulodelaoferta = document.getElementById('puesto').textContent;
    var puestoanadido = document.createTextNode(titulodelaoferta);
    divdecadaoferta.className = "ofertaenlacesta";
    divdecadaoferta.appendChild(puestoanadido);
    divcestadeofertas.appendChild(divdecadaoferta);
    var botonelimi = document.createElement('div');
    var textobotonelimi = document.createTextNode("Eliminar");
    botonelimi.className = "aspectobotoneliminar";
    botonelimi.appendChild(textobotonelimi);
    divdecadaoferta.appendChild(botonelimi);
    divcestadeofertas.appendChild(divdecadaoferta);
    botonelimi.onclick = removeNodo;
    [...]
    //Aquí me comunico con un archivo php para crear las cookies
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
            var contenidosRecibidos = xmlhttp.responseText;
        }
    };
    xmlhttp.open("GET", "backendcesta.php?oferta=" + titulodelaoferta);
    xmlhttp.send();
}


//Este es el archivo backendcesta.php
Código: [Seleccionar]

<?php
session_start
();
$ofertarecibida=$_REQUEST["oferta"];
$_SESSION["nombredelpuestoseleccionado"]=$ofertarecibida;
echo 
$_SESSION["nombredelpuestoseleccionado"];


Bienesto se hace en una pantallay el resultado de todo esto es que se añade el producto al carrito y aparece también un botón de eliminarpara que entiendas un poco qué hace esoEl problema es que al darle a recargar la páginauna recarga completamente normalpues se va del carrito el productoy tambiénsi vuelvo a la pantalla de inicioy luego vuelvo a esta pantalla de añadir a la cestaya ha desaparecido la sesiónEspero que hayas entendido todo.

2
Hola,

Tengo un problema, quiero usar variables de sesión en php, y se crean bien y tal, la cosa es que al cambiar de página o recargarla, se borran. ¿Qué puedo hacer?

Gracias

3
Hola,

¡MENUDO ERROR MÁS TONTO! Mil gracias, menudo error lo de haber puesto el send dentro de onreadystate, además estoy seguro que lo revisé varias veces, pero con tanto lío de corchetes...Gracias de verdad.

Ya se mete en todas las funciones correctamente, de todas formas, por si te interesa, ocurre algo muy extraño, y es que no se envía el correo aunque pone que si se envía. Pero lo más extraño aun es que esto solo pasa a veces, y no es problema de la conexión Javascript-php, porque si me meto en "borradorPHP" directamente (cambiando el destinatario), tampoco se envía.

Te cuento esto por si acaso da la casualidad de que sabes algo acerca de este problema. ¡De todas formas muchas gracias por tu tiempo!

4
Hola,

Pues es que tampoco te creas que hay mucho más...o sea el resto del código no influye para nada en esto. Le doy a un botón en mi página web, y activo este javascript, en el cual pido un correo usando la función prompt y le muestro al usuario un confirm para que compruebe si lo ha escrito bien...y después ya llega esto, si el usuario le ha dado a aceptar:

Código: [Seleccionar]
function validarcorreo() {
'use strict';
var correo = prompt("Introduce tu correo");
var confirmar = confirm('El correo introducido es ' + correo + ' pulse OK para enviar, o Cancelar para volverlo a escribir');
        if (confirmar === true) {
            alert("Has dado a aceptar");
            alert("Justo antes del httprequest");
            xmlhttp = new XMLHttpRequest();
            alert("Ha pasado el httprequest");
            xmlhttp.onreadystatechange = function () {
                alert("Dentro de onreadystate, antes del if");
                if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
                    var respuestadeenvio = xmlhttp.responseText;
                    alert("La respuesta es" + respuestadeenvio);
                } else {
                    alert("No ha funcionado el if de readyState");
                }
                alert("Justo pasado la funcion de onreadystate");
                xmlhttp.open("GET", "borradorPHP.php?destinatario=" + correo);
                xmlhttp.send();
}

}else {
            alert("has dado a cancelar");
}
}

borradorPHP.php es el nombre del archivo, que no es más que un archivo que envía un correo, te lo adjunto por si acaso pero vamos que éste tampoco es el problema:

Código: [Seleccionar]
<?php
error_reporting
(E_ALL);
ini_set('display_errors''On');

$para=$_REQUEST["destinatario"];
$titulo    'INFORMACIÓN';
$mensaje   'Hola, \nhas recibido este correo porque has dado clic en mi página';
$cabeceras 'From: otrocorreo@hotmail.com' "\r\n" .
    
'Reply-To: hola@undominio.com\n' .
    
'X-Mailer: PHP/' phpversion();

mail($para$titulo$mensaje$cabeceras);
if (
mail($para$titulo$mensaje$cabeceras)) {
    echo 
"Correo enviado y con éxito";
} else {
    echo 
"No se ha podido enviar";
}

Bueno...hasta aquí ya sabes lo mismo que yo, así que espero que consigas resolverlo. Como ves, a priori no parece que haya nada extraño, y parece un ejemplo bastante sencillo...pero el problema parece estar en la función onreadystate.

Sobra decir que muchísimas gracias por tu atención y tu tiempo

5
Hola,

¿Con funciona perfectamente te refieres a que te entra en la función y te salen los alerts?
Pues mira estoy en un servidor local, instalé MAMP, y no sé si será ese el problema, pero como dije en el mensaje inicial, copié el código del ejemplo de Ajax, y cuando hice ese ejemplo, me funcionaba perfectamente.

Lo acabo de volver a hacer y me sigue sin funcionar, en la consola no me aparece nada y además acabo de volver a hacer el ejemplo de aprenderaprogramar de Ajax y funciona o sea que no parece ser el servidor. No sé qué puede ser...También he probado con Chrome y Safari por si eso era el problema.

Gracias por la respuesta.




6
Hola,

Bueno parece bastante fácil, lo voy a hacer con php

Código: [Seleccionar]
<html>
    <head>       
        <title>Comprobar números</title>
        <meta charset="utf-8">
    </head>
<body>
<form action="comprobar.php" method="post">
<p>
<label for="numero">Introduce un número para comprobar: </label>
<input type="text" name="numero">
<input type="submit" value=“Comprobar” name="comprobar">
</p>
</form>

Crea tu archivo php, yo lo he llamado como podrás ver "comprobar.php"

Código: [Seleccionar]
<?php
$numeroacomprobar
=$_POST['numero'];
if(
$numeroacomprobar<|| $numeroacomprobar>99999999){
echo 
"El número $numeroacomprobar no es válido";
}

Esto es la forma más cutre. Lo puedes adornar con un poco de Javascript y Ajax para que te lo muestre en la misma página, y por supuesto con CSS. Espero que te haya ayudado.

7
Hola,

Me autorespondo con la solución por si alguien alguna vez tiene este problema. En MAMP, para enviar un correo:
1. meterse en el archivo php.ini
2. Ir a [mail function] y hacer exactamente esto:
Código: [Seleccionar]
[mail function]
; For Win32 only.
;SMTP = localhost
;smtp_port = 25

; For Win32 only.
;sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "/usr/sbin/sendmail -t -i correodesdedondeseenvia@undominio(gmail/hotmail...).com"

lo de poner un correo desde donde se envía creo que no hace falta, pero bueno, por si acaso. Lo que no he conseguido es que funcione en todos los dominios, es decir, no llega el correo enviado a una cuenta hotmail, aunque sí llega a yahoo o gmail por ejemplo. Pero para empezar está más que bien.

8
Hola, estoy en una función de javascript, y al hacer la comunicacion con el servidor de php, tal como hace en el curso de "Ajax desde cero" (http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=922:ajax-ejemplo-sencillo-basico-codigo-objeto-xmlhttprequest-recuperar-datos-archivo-en-servidor-cu01206f&catid=83&Itemid=212), no entra en la función onreadystatechange. He copiado el código tal cual así que no sé qué está fallando...¿alguna idea?

Mi código:

Código: [Seleccionar]
alert("Justo antes del httprequest");
            xmlhttp = new XMLHttpRequest();
            alert("Ha pasado el httprequest");
            xmlhttp.onreadystatechange = function () {
                alert("Dentro de onreadystate, antes del if");
                if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
                    var respuestadeenvio = xmlhttp.responseText;
                    alert("La respuesta es" + respuestadeenvio);
                } else {
                    alert("No ha funcionado el if de readyState");
                }
                alert("Justo pasado la funcion de onreadystate");
                xmlhttp.open("GET", "nombredemiarchivo.php?variablequellega=" + variablequerecojopreviamenteconunpromt);
                xmlhttp.send();

para saber hasta qué punto llegaba, he puesto alerts, y llega hasta el de "ha pasado el httprequest", por lo que no entra en la función onreadystate y se queda parado.

Bueno GRACIAS!

9
Hola, quiero enviar un email usando PHP, el problema es que no recibo el mail, es decir, el envío se hace correctamente (supuestamente), pero no recibo ningún mail. Estoy probando con el código más básico:

Código: [Seleccionar]
<?php
error_reporting
(E_ALL);
ini_set('display_errors''On');

$para      'micorreopersonal@hotmail.com';
$titulo    'El título';
$mensaje   'Hola';
$cabeceras 'From: micorreopersonal@hotmail.com' "\r\n" .
    
'Reply-To: blablabla@example.com' "\r\n" .
    
'X-Mailer: PHP/' phpversion();

mail('$para''$titulo''$mensaje''$cabeceras');
if (
mail) {
    echo 
"Éxito";
} else {
    echo 
"No se ha podido enviar";
}

Para ahorrar tiempo, les digo estas cosas:
- No me llega el mail a ningún sitio de mi correo, ni a spam ni nada.
- He buscado en mil sitios por internet y lo único que he encontrado ha sido que tengo que instalar un servidor SMTP (eso lo dicen algunos), otros no hablan nada de eso. También he encontrado que tengo que modificar algo en el archivo php.ini, en [mail_function], he modificado esto que pongo aquí, sin embargo no ha cambiado nada.

Código: [Seleccionar]
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from = micorreopersonal@hotmail.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = sendmail -t -i

- Sobre mis condiciones: Trabajo en MAC, con un servidor local MAMMP.
-Al activar el error-reporting, el error que me aparece es: Notice: Use of undefined constant mail - assumed 'mail' in /Users/ubicacion del servidor/borradorPHP.php on line 13
- Al meterme en el archivo, aparte de ese error, me aparece 'Éxito´, así que como pueden ver, supuestamente se envía el mail.

Conclusión: O bien he modificado mal el archivo php.ini, o bien es algo del SMTP, o bien no sé qué puede pasar.

MUCHAS GRACIAS por adelantado, agradezco cualquier respuesta por pequeña que sea, y un saludo

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".