PHP - probelmas con variables en funciones

 
Vista:

probelmas con variables en funciones

Publicado por cosmito (35 intervenciones) el 17/07/2019 18:56:36
Estoy iniciandome con las funciones en php y tengo estas funciones para seleccionar estas variables y estoy tratando de que se impriman pero no lo hace:

Cual es el error?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function usoHotmail($hot) {
 
    $tag = "@hotmail.com";
 
    $hotm = strpos($hot, $tag);
    if($hotm === true){
        echo "se encontro la cadena";
    }
}
 
 
function usoGmail($gm) {
 
    $tag = "@gmail.com";
 
    $gmail = strpos($gm, $tag);
    if($gmail=== true){
        echo "se encontro la cadena";
    }
}
 
function usoYahoo($ya) {
 
    $tag = "@yahoo.com";
 
    $yahoo = strpos($yah, $tag);
    if($yahoo === true){
        echo "se encontro la cadena";
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 2.881
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

probelmas con variables en funciones

Publicado por joel (901 intervenciones) el 17/07/2019 19:36:11
La función strpos nunca devuelve true!!!!

o devuelve false o la posición donde encuentra la coincidencia https://www.php.net/manual/en/function.strpos.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

probelmas con variables en funciones

Publicado por cosmito (35 intervenciones) el 17/07/2019 19:51:41
Si ya me habia percatado, gracias,

ahora lo estoy mejorando asi:
Y PARA IMPRIMIR EL VALOR DE LA VARIABLE COMO HARIA? la coloqué en la cadena pero no lo imprime
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
 
function usoHotmail($hot) {
 
  $tag = "@hotmail.com";
 
  $hotm = strpos($hot, $tag);
}
echo $hotm;
 
			if($hotm !== false){
				echo "se encontro la cadena111.$hotm"; echo"</br>";
 
			}
			else{
				echo "no se encontro, esta vacia";
			}
 
 
 
function usoGmail($gm) {
 
  $tag = "@gmail.com";
 
  $gmail = strpos($gm, $tag);
 
}
 
			if($gmail !== false){
				echo "se encontro la cadena222";echo"</br>";
			}
 
 
function usoYahoo($ya) {
 
  $tag = "@yahoo.com";
 
  $yahoo = strpos($yah, $tag);
 
}
			if($yahoo !== false){
				echo "se encontro la cadena333";echo"</br>";
			}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 2.881
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

probelmas con variables en funciones

Publicado por joel (901 intervenciones) el 18/07/2019 08:44:20
Las variables definidas dentro de una función solo tienen efecto dentro de la misma... desde fuera no las puedes llamar... la manera correcta, es devolver el valor... algo así:

1
2
3
4
5
function suma($a,$b) {
    return $a+$b;
}
 
$resultado=suma(1,2);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas con variables en funciones

Publicado por cosmito (35 intervenciones) el 18/07/2019 14:03:57
Hola Joel, gracias por responder y ayudar. Bueno ya voy bastante adelantado en esto, ahora he creado una Clase con sus funciones.
Esta es la clase:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
Class Correos
{
public function usoHotmail() {
		echo 	$this->$smtp->SMTPAuth   = true; echo "</br>";
		echo 	$this->$smtp->SMTPSecure = "tls"; echo "</br>";
		echo 	$this->$smtp->Host       = "smtp.live.com"; echo "</br>";
		echo 	$this->$smtp->Username   = "miCuenta@outlook.com"; echo "</br>";
		echo 	$this->$smtp->Password   = "miPassword"; echo "</br>";
		echo 	$this->$smtp->Port       = 25; echo "</br>";
 
}
public function usoGmail() {
		echo	$this->$smtp->SMTPAuth   = true; echo "</br>";
		echo	$this->$smtp->SMTPSecure = "tls"; echo "</br>";
		echo	$this->$smtp->Host       = "smtp.gmail.com"; echo "</br>";
		echo	$this->$smtp->Username   = "miCuenta@gmail.com"; echo "</br>";
		echo	$this->$smtp->Password   = "miPassword"; echo "</br>";
		echo	$this->$smtp->Port       = 587; echo "</br>";
}
public function usoYahoo() {
			echo $this->$smtp->SMTPAuth   = true; echo "</br>";
			echo $this->$smtp->SMTPSecure = "ssl"; echo "</br>";
			echo $this->$smtp->Host       = "smtp.mail.yahoo.com"; echo "</br>";
			echo $this->$smtp->Username   = "miCuenta@yahoo.com"; echo "</br>";
			echo $this->$smtp->Password   = "miPassword"; echo "</br>";
			echo $this->$smtp->Port       = 465; echo "</br>";
   }
}
 $t = new Correos;
 $u = new Correos;
 $v = new Correos;
 print_r($t->usoHotmail());
 print_r($u->usoGmail());
 print_r($v->usoYahoo());
?>

La idea es que un usuario seleccione su servidor de correo no importa cual sea, ya tengo el codigo que manda el correo.
este el mi codigo para enviar los mensajes:

Codigo basado en la Clase PHPMAILER
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
set_time_limit(500);
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];//cta de correo al que va dirigido el mensaje.
$password = $_POST['passw'];
$nombres = $_POST['nombres'];
var_dump($nombres);
$asunto = $_POST["asunto_txt"];
$addcco = $_POST["cco_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
$adjunto = chunk_split(base64_encode(file_get_contents($archivo)));
$destino = $_FILES["archivo_fls"]["name"];
$mensaje = $_POST["mensaje_txa"];
copy($_FILES["archivo_fls"]["tmp_name"],$_SERVER['DOCUMENT_ROOT']."/archivos/".$_FILES["archivo_fls"]["name"]);
copy($_FILES["archivo_fls"]["tmp_name"],"archivos/".$_FILES["archivo_fls"]["name"]);
$smtp=new PHPMailer();
$smtp->IsSMTP();
$smtp->CharSet="UTF-8";
 
            $smtp->SMTPAuth = true;
            $smtp->SMTPSecure = "tls";
            $smtp->SMTPDebug = 0;
            $smtp->Host = "smtp.live.com";
            $smtp->Username = $de;
            $smtp->Password = $password;
            $smtp->Port = 587;
 
            $smtp->From = $de;
            $smtp->FromName = $nombres;
            # Indicamos la dirección donde enviar el mensaje
            $para1= $para;
            $nameTo=$para1;
            $smtp->AddAddress($para,utf8_decode($nameTo));
            $smtp->Subject = $asunto;
            $smtp->Body = $mensaje;
            $smtp->WordWrap = 50;
            $smtp->IsHTML(true);
            $smtp->MsgHTML($mensaje);//
            $smtp->AddAttachment($_FILES["archivo_fls"]["tmp_name"],$_FILES["archivo_fls"]["name"]);
               if (!$smtp->Send())
                  {
              	    $respuesta ="El mensaje no se pudo enviar";
            		$respuesta .="Error: " .$mail->ErrorInfo;
                  }
               else
                  {
                    $respuesta ="El mensaje ha sido enviado";
                  }
               header("Location:correomail.php?respuesta=$respuesta");
?>
Nota: ahora te pregunto Joel es posible llamar o seleccionar desde este codigo el correoque se guarda la Clase Correos? Por favor ayudame con esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar