Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2016, 00:58
Avatar de Jose_A
Jose_A
 
Fecha de Ingreso: mayo-2015
Ubicación: México, Sonora.
Mensajes: 180
Antigüedad: 9 años
Puntos: 0
Por qué la página deja de funcionar por cambiar de posición una parte del código?

Hola, buenas. Me está pasando algo muy raro y es que simplemente por modificar de posición unas líneas del código la página deja de funcionar, entiendo que trabajando en php eso es muy habitual pero no comprendo qué lo ocasiona. Tengo este código para la confirmación de emails:

Código PHP:
Ver original
  1. <?php
  2. $id = $_POST["id"];
  3. $verificacion = $_POST["verificacion"];
  4. $fecha=$_POST["fecha"];
  5.  
  6. include 'conexion.php';
  7.  
  8. //Verificacion 1 ok, 2 no aprobado, 0 espera de verificacion, 4 sin movimientos  
  9.  
  10. if($verificacion=="1"){
  11.     $tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where id=".$id);
  12.     //$tabla=$mysqli->query("select nomCurso from curso_asistente where idUsuario=".$id);
  13.     $tabla=$mysqli->query("select ca.nomCurso, c.capacidad, c.nombreCurso from curso c inner join curso_asistente ca
  14.        on c.idCurso=ca.nomCurso where ca.idUsuario=".$id);
  15.     //checar cupo del grupo!!!
  16.     $cursosLlenos ="";    
  17.     //agregar asistente al curso!!!
  18.      
  19.     while($row = $tabla->fetch_array()) {
  20.         if( $row[1]> 0 ){
  21.             $resultado=$mysqli->query("update curso set capacidad=capacidad-1 where idCurso='".$row[0]."'");
  22.         }else{
  23.             $cursosLlenos .= " - ".htmlentities($row[2])."<br>";
  24.             //$mysqli->query("delete from curso_asistente where nomCurso='".$row[0]."' and idUsuario='".$id."'");
  25.             $mysqli->query("update curso_asistente set nomCurso='".$row[0]."_X' where
  26.                nomCurso='".$row[0]."' and idUsuario='".$id."'");
  27.         }
  28.         //echo $resultado->affected_rows();
  29.     }
  30.      
  31.     $tabla=$mysqli->query("update factura set verificacion=1 where idUsuario=".$id."");
  32.  
  33. ///////////////////Se agrega nuevo codigo para enviar correo electronico de confirmacion
  34.     include "config.php";
  35.     require 'class.phpmailer.php';  
  36.     $mail = new PHPMailer();
  37.     //Luego tenemos que iniciar la validaci&oacute;n por SMTP:
  38.     $mail->IsSMTP();
  39.     $mail->SMTPAuth = true;
  40.     $mail->Host = $host; // SMTP a utilizar. Por ej. smtp.elserver.com
  41.     $mail->Username = $Username; // Correo completo a utilizar
  42.     $mail->Password = $password; // Contrase&ntilde;a
  43.     $mail->Port = $port; // Puerto a utilizar
  44.     $mail->SMTPSecure = $smtpSecure;
  45.     //Con estas pocas l&iacute;neas iniciamos una conexi&oacute;n con el SMTP. Lo que ahora deber&iacute;amos
  46.     //hacer, es configurar el mensaje a enviar, el //From, etc.
  47.     //$mail->From = "[email protected]"; // Desde donde enviamos (Para mostrar)
  48.     $mail->FromName = $fromName;
  49.     $tabla=$mysqli->query("Select * from asistente where id='".$id."'");
  50.     //Estas dos l&iacute;neas, cumplir&iacute;an la funci&oacute;n de encabezado (En mail() usado de esta forma: “From: Nombre <[email protected]>”) de //correo.
  51.     while($row = $tabla->fetch_array()){
  52.     $mail->AddAddress($row[7]); // Esta es la direcci&oacute;n a donde enviamos
  53.     $mail->AddAddress("[email protected]"); // Esta es la direcci&oacute;n a donde enviamos
  54.     $mail->IsHTML(true); // El correo se env&iacute;a como HTML
  55.     $mail->Subject = "Registro CONFIRMADO a la SNIDM - Universidad de Sonora"; // Este es el titulo del email.
  56.     $body = "<strong> Hola ".$row[1].",<br><br>
  57.    Este correo es para confirmar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y
  58.    Docencia en Matem&aacute;ticas ha sido registrada EXITOSAMENTE. </strong><br><br>";
  59.      
  60.     $body .= "<strong>Datos De registro:</strong><br>";
  61.     $body .= "<strong>Folio</strong>:".$row[6]."<br>";
  62.     $body .= "<strong>Nombre:</strong>".$row[1]." ".$row[2]." ".$row[3]."<br>";
  63.     $body .= "<strong>Registrado como:</strong>".$row[5]."<br>";
  64.     $body .= "<strong>Instituci&oacute;n</strong>:".$row[4]."<br><br>";    
  65.    
  66.     if($row[13]=='1'){
  67.     //$body.=    "<strong>Datos de facturaci&oacute;n:</strong><br>";
  68.     $fac=$mysqli->query("Select * from factura where idUsuario='".$id."'");
  69.     while($fact = $fac->fetch_array()){
  70.     $body .= "<strong>Datos De Facturaci&oacute;n:</strong><br>";
  71.     $body .= "<strong>Nombre</strong>:".$fact[1]."<br>";
  72.     $body .= "<strong>Calle</strong>:".$fact[2]."<br>";
  73.     $body .= "<strong>N&uacute;mero</strong>:".$fact[3]."<br>";    
  74.     $body .= "<strong>Colonia</strong>:".$fact[4]."<br>";
  75.     $body .= "<strong>C.P.</strong>:".$fact[5]."<br>";
  76.     $body .= "<strong>Municipio</strong>:".$fact[6]."<br>";
  77.     $body .= "<strong>Estado</strong>:".$fact[7]."<br>";
  78.     $body .= "<strong>Pa&iacute;s</strong>:".$fact[12]."<br>";
  79.     $body .= "<strong>R.F.C</strong>:".$fact[8]."<br>";
  80.     $body .= "<strong>Iva desglosado: </strong>".$fact[11]."<br>";
  81.     $body .= "<strong>E-mail</strong>:".$fact[10]."<br><br>";
  82.         }
  83.  
  84.     }
  85.  
  86.     $body .= "<span><strong>Cursos Seleccionados:</strong></span><br>";
  87.     $tabla = $mysqli->query("select curso.nombreCurso from curso_asistente
  88.                            inner join curso on curso.idCurso = curso_asistente.nomCurso
  89.                            where idUsuario='".$id."'");
  90.     if( $tabla->num_rows > 0 ){
  91.         $body .="Usted se encuentra inscrito en los cursos:<br>";
  92.         while($row=$tabla->fetch_array()){
  93.             $body .= " + ".htmlentities($row[0])."<br>";
  94.         }
  95.     }else{
  96.         $body .="Usted no se encuentra inscrito en alg&uacute;n curso.<br>";
  97.     }
  98.     $body .="Desafortunadamente no pudo inscribirse en los siguientes cursos:<br>" .$cursosLlenos;
  99.  
  100.     $body .= "<span><br><br>Para cualquier consulta o correci&oacute;n, favor de comunicarse a
  101.        [email protected]</span><br><br>";
  102.  
  103.     $body.="<br><br>";
  104.     //$body .= "<span>Para cualquier consulta o correci&oacute;n comunicarse a [email protected]</span><br><br>";
  105.      
  106.     $body .= "<span style='color:rgb(68,68,68);font-size:22px;line-height:31px;' >Considera el medio ambiente antes de imprimir este correo</span><br><br><br><br>";
  107.  
  108.     $body .="<b style='line-height:26px;font-weight:bold'>AVISO DE CONFIDENCIALIDAD Y ALCANCE LEGAL</b><br>";
  109.  
  110.     $body .= "<hr color='#214984' style='line-height:31px'>";
  111.  
  112.     $body .= "<p style='font-size:10px;'>Este correo electr&oacute;nico es confidencial y para uso exclusivo de la(s) persona(s) a quien(es) se dirige. Si el lector de esta transmisi&oacute;n electr&oacute;nica no es el destinatario, se le notifica que cualquier distribuci&oacute;n o copia de la misma est&aacute; estrictamente prohibida. Si ha recibido este correo por error le solicitamos notificar inmediatamente a la persona que lo envi&oacute; y borrarlo definitivamente de su sistema.</p>
  113.  
  114. <p style='font-size:10px;'>Los correos electr&oacute;nicos no son necesariamente seguros, por lo que el remitente no ser&aacute; responsable en ning&uacute;n momento por los cambios que se sufra en su transferencia. A&uacute;n cuando se hayan revisado los archivos adjuntos existe siempre la posibilidad de que puedan contener virus o c&oacute;digos maliciosos que da&ntilde;en los sistemas del destinatario, por lo que tampoco se asume ninguna responsabilidad en caso de mutaciones en su transferencia y ser&aacute; siempre necesario revisarlos antes de abrirlos.</p>
  115.  
  116. <p style='font-size:10px;'>Las opiniones expresadas en este correo electr&oacute;nico deber&aacute;n ser confirmadas por escrito y firmadas por el remitente para tener validez legal, por lo que el correo electr&oacute;nico no es el medio apropiado para emitir opiniones o recomendaciones formales.</p><br>";
  117.  
  118. $body .="<b style='line-height:26px;font-weight:bold'>CONFIDENTIALITY AND LEGAL NOTICE</b><br>";    
  119.    
  120. $body .="<p style='font-size:10px;'>This electronic mail transmission is confidential, may be privileged and should be read or retained only by the intended recipient. If the reader of this transmission is not the intended recipient, you are hereby notified that any distribution or copying hereof is strictly prohibited. If you have received this transmission in error, please immediately notify the sender and erase it from your system.
  121. </p>
  122. <p style='font-size:10px;'>E-mail as are not necessarily secure, for which reason the sender shall not be responsible at any moment for any changes suffered during its transfer. Also, the files attached to this e-mail may contain viruses that could harm the systems of the recipient, even though it has been reviewed for viruses. The sender will not be responsible for any distortions that occur during its transfer, for which reason they must be reviewed before they are opened.</p>
  123. <p style='font-size:10px;'>The opinions expressed in this email must be confirmed in writing and signed by the sender to have legal validity, so the email is not the appropriate mean to express opinions or formal recommendations.</p>";    
  124.          
  125.          
  126.     $mail->Body = $body; // Mensaje a enviar
  127.  
  128.     $exito = $mail->Send(); // Env&iacute;a el correo.
  129.  
  130.     //Enviar copia
  131.  
  132.  
  133.     //Tambi&eacute;n podr&iacute;amos agregar simples verificaciones para saber si se envi&oacute;:
  134.     if($exito){
  135.         echo true;
  136.         echo "Se envio";
  137.     }else{
  138.         echo $mail->ErrorInfo;
  139.     }
  140.  
  141. }
  142.      
  143. }
  144. //////////////////////Si es cancelado
  145.  
  146. else{
  147. $tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where id=".$id);
  148. $tabla=$mysqli->query("update factura set verificacion=0 where idUsuario=".$id."");
  149. }
  150.  
  151. $mysqli->close();
  152. header("Location:panelC.php?view=A1&fecha=".$fecha."");
  153. ?>

Y funciona perfecto, pero cuando coloco la parte de "Cursos Seleccionados" deja de funcionar la página, por quée?? Saludos..

Última edición por Triby; 16/11/2016 a las 13:16 Razón: Código en highlight