Foros del Web » Programando para Internet » PHP »

Parse error: syntax error, unexpected

Estas en el tema de Parse error: syntax error, unexpected en el foro de PHP en Foros del Web. Buenas noches, tengo este codigo en PHP con FPDF para crear PDF's pero, me marca este error: Cita: Parse error: syntax error, unexpected '$pdf' (T_VARIABLE), ...
  #1 (permalink)  
Antiguo 21/04/2014, 21:55
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Parse error: syntax error, unexpected

Buenas noches, tengo este codigo en PHP con FPDF para crear PDF's pero, me marca este error:

Cita:
Parse error: syntax error, unexpected '$pdf' (T_VARIABLE), expecting function (T_FUNCTION) in C:\wamp\www\inscripcion_kinder\pdf_identificacion. php on line 20
Y tengo el codigo:

Código PHP:
<?php
 
require('FPDF/fpdf.php');

$link mysql_connect("localhost","root","") or die ("Lo siento, no se pudo conectar con el servidor") ; 
mysql_select_db("kinder"$link) or die ("problemas en la conexion a la base de datos");

    if(isset(
$_POST['id'])){
    
$id=$_POST['id'];
    }else{
    echo 
"No has enviado ninguna ID";
    }

$result mysql_query("SELECT * FROM ficha_identificacion WHERE id_identificacion LIKE '$id'",$link); 
$row=mysql_fetch_array($result); 

class 
PDF extends FPDF
{

        
$pdf = new PDF();             //Crea objeto PDF
        
$pdf->AddPage('P''Letter'); //Vertical, Carta
        
$pdf->SetFont('Arial','B',16);//Establece la fuente a utilizar, el formato 
        //La siguiente instrucción escribe el siguiente mensaje.
//        $pdf->Cell(40,10,'Hola, soy Gerardo y este es mi primer pdf');//primer numero es en qué parte aparece el texto de izquierda a derecha, mientras que el segundo es, en qué linea aparece.

     
function Footer() // Pie de página
    
{
        
$this->SetY(-15);
        
$this->SetFont('Arial','I',8);//Es, nombre de la letra [en este caso es arial], formato [en este caso en CURSIVA] y el tamaño [en este caso 20]

        
$this->Cell(0,10,'Av. Lazaro Cardenas #998 Col. Cuahutemoc, Morelia, Michoacán','T',0,'C');
    }
 
    function 
Header() //Encabezado
    
{
        
//Define tipo de letra a usar, Arial, Negrita, 15
        
$this->SetFont('Arial','B',20);//Es, nombre de la letra [en este caso es arial], formato [negrita, subrayado, etc[en este caso en NEGRITAS]] y el tamaño [en este caso 20]
 
        /* Líneas paralelas
         * Line(x1,y1,x2,y2)
         * El origen es la esquina superior izquierda
         * Cambien los parámetros y chequen las posiciones
         * */
        
$this->Line(5,10,209,10);//el primer numero es donde empieza la linea [de izquierda a derecha], el segundo es donde empieza la linea [de arriba a abajo de lado izquiedo], el tercer numero es en donde empieza la linea [de derecha a izquierda] y el cuarto numero es en donde empieza la linea [de arriba a abajo de lado derecho];
        
$this->Line(5,35,209,35);//el primer numero es donde empieza la linea [de izquierda a derecha], el segundo es en donde empieza la linea [de arriba a abajo de lado izquiedo] y el cuarto donde acaba [de arriba a abajo de lado derecho], mientras que el tercer numero es en donde empieza la linea [de derecha a izquierda] ;.
 
        /* Explicaré el primer Cell() (Los siguientes son similares)
         * 30 : de ancho
         * 25 : de alto
         * ' ' : sin texto
         * 0 : sin borde
         * 0 : Lo siguiente en el código va a la derecha (en este caso la segunda celda)
         * 'C' : Texto Centrado
         * $this->Image('images/logo.png', 152,12, 19) Método para insertar imagen
         *     'images/logo.png' : ruta de la imagen
         *     152 : posición X (recordar que el origen es la esquina superior izquierda)
         *     12 : posición Y
         *     19 : Ancho de la imagen <span class="wp-smiley emoji emoji-wordpress" title="(w)">(w)</span>
         *     Nota: Al no especificar el alto de la imagen (h), éste se calcula automáticamente
         * */
 
        
$this->Cell(130,25,'Jardin de Niños "Carmen Serdan"',0,0,'C');//el primer numero es en donde empieza el texto del encabezado, el segundo numero es, en que parte del header va a aparecer el texto, entre menor el numero, mas arriba va a aparecer seguido del texto principal, el tercer numero no entiendo la funcionalidad mientras que el cuarto numero al parecer es para crear un salto de linea.
 
        //Se da un salto de línea de 25
        
$this->Ln(25);
    }
 
}
while(
$row=mysql_fetch_array($result))
{
 
        
$pdf->Cell(80,10,$row[0],0,1,'L');
        
$pdf->Cell(80,10,$row[1],0,1,'L');
        
$pdf->Cell(80,10,$row[2],0,1,'L');
        
$pdf->Cell(80,10,$row[3],0,1,'L');
        
$pdf->Cell(80,10,$row[4],0,1,'L');
        
$pdf->Cell(80,10,$row[5],0,1,'L');
        
$pdf->Cell(80,10,$row[6],0,1,'L');
        
$pdf->Cell(80,10,$row[7],0,1,'L');
        
$pdf->Cell(80,10,$row[8],0,1,'L');
        
$pdf->Cell(80,10,$row[9],0,1,'L');
        
$pdf->Cell(80,10,$row[10],0,1,'L');
        
$pdf->Cell(80,10,$row[11],0,1,'L');
        
$pdf->Cell(80,10,$row[12],0,1,'L');
        
$pdf->Cell(80,10,$row[13],0,1,'L');
        
$pdf->Cell(80,10,$row[14],0,1,'L');
        
$pdf->Cell(80,10,$row[15],0,1,'L');
        
$pdf->Cell(80,10,$row[15],0,1,'L');
        
$pdf->Cell(80,10,$row[16],0,1,'L');
        
$pdf->Cell(80,10,$row[17],0,1,'L');
        
$pdf->Cell(80,10,$row[18],0,1,'L');
        
$pdf->Cell(80,10,$row[19],0,1,'L');
        
$pdf->Cell(80,10,$row[20],0,1,'L');
        
$pdf->Cell(80,10,$row[21],0,1,'L');
        
$pdf->Cell(80,10,$row[22],0,1,'L');
        
$pdf->Cell(80,10,$row[23],0,1,'L');
        
$pdf->Cell(80,10,$row[24],0,1,'L');
        
$pdf->Cell(80,10,$row[25],0,1,'L');
        
$pdf->Cell(80,10,$row[26],0,1,'L');
        
$pdf->Cell(80,10,$row[27],0,1,'L');
        
$pdf->Cell(80,10,$row[28],0,1,'L');
        
$pdf->Cell(80,10,$row[29],0,1,'L');
        
$pdf->Cell(80,10,$row[30],0,1,'L');
        
$pdf->Cell(80,10,$row[31],0,1,'L');
        
$pdf->Cell(80,10,$row[32],0,1,'L');
        
$pdf->Cell(80,10,$row[33],0,1,'L');
        
$pdf->Cell(80,10,$row[34],0,1,'L');
        
$pdf->Cell(80,10,$row[35],0,1,'L');
        
$pdf->Cell(80,10,$row[36],0,1,'L');
        
$pdf->Cell(80,10,$row[37],0,1,'L');
        
$pdf->Cell(80,10,$row[38],0,1,'L');
        
$pdf->Cell(80,10,$row[39],0,1,'L');
        
$pdf->Cell(80,10,$row[40],0,1,'L');
        
$pdf->Cell(80,10,$row[41],0,1,'L');
        
$pdf->Cell(80,10,$row[42],0,1,'L');
        
$pdf->Cell(80,10,$row[43],0,1,'L');
        
$pdf->Cell(80,10,$row[44],0,1,'L');
        
$pdf->Cell(80,10,$row[45],0,1,'L');
        
$pdf->Cell(80,10,$row[46],0,1,'L');
        
$pdf->Cell(80,10,$row[47],0,1,'L');
        
$pdf->Cell(80,10,$row[48],0,1,'L');
        
$pdf->Cell(80,10,$row[49],0,1,'L');
        
$pdf->Cell(80,10,$row[50],0,1,'L');
        
$pdf->Cell(80,10,$row[51],0,1,'L');
        
$pdf->Cell(80,10,$row[52],0,1,'L');
        
$pdf->Cell(80,10,$row[53],0,1,'L');
        
$pdf->Cell(80,10,$row[54],0,1,'L');
    } 
        
$pdf->Output();               //Salida al navegador
?>
Pero no entiendo cual pueda ser el error.
  #2 (permalink)  
Antiguo 21/04/2014, 22:46
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 7 meses
Puntos: 43
Respuesta: Parse error: syntax error, unexpected

Código PHP:
Ver original
  1. $pdf = new PDF();             //Crea objeto PDF
No podés instanciar un objeto al declarar la variable, tenés que hacerlo en el constructor, o algún otro método.

También las líneas que le siguen:
Código PHP:
Ver original
  1. $pdf->AddPage('P', 'Letter'); //Vertical, Carta
  2.         $pdf->SetFont('Arial','B',16);//Establece la fuente a utilizar, el formato
No se puede, eso tiene que estar dentro de un método.
  #3 (permalink)  
Antiguo 22/04/2014, 01:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Parse error: syntax error, unexpected

Parece que estás intentando crear una nueva clase solo para especificar encabezado y pie de página; estoy casi seguro que FPDF tiene métodos para eso y necesitas leer el manual.

Por otra parte, la definición, implementación e instanciación de tu clase son incorrectas.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 22/04/2014, 12:13
 
Fecha de Ingreso: marzo-2014
Mensajes: 34
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Parse error: syntax error, unexpected

Viendo sus respuestas, corregi eso, y lo puse despues del while, de esta manera:

Código PHP:
}
while(
$row=mysql_fetch_array($result))
{

      
$pdf = new PDF();             //Crea objeto PDF
      
$pdf->AddPage('P''Letter'); //Vertical, Carta
      
$pdf->SetFont('Arial','B',16);//Establece la fuente a utilizar, el formato 
y antes de mostrar el resultado, modificando por recomendación en vez de $pdf a $this quedando de la siguiente manera:

Código PHP:
        $this->Cell(80,10,$row[0],0,1,'L');
        
$this->Cell(80,10,$row[1],0,1,'L');
        
$this->Cell(80,10,$row[2],0,1,'L');
        
$this->Cell(80,10,$row[3],0,1,'L');
        
$this->Cell(80,10,$row[4],0,1,'L'); 
Pero, ahora que lo corregi me manda un error en la linea de output, ¿como lo puedo corregir? y, ¿como puedo implementar lo que ustedes muy amablemente me dicen?.

Saludos.

Última edición por gus_manson_arizmendi; 22/04/2014 a las 12:15 Razón: Adiciionar información importante.
  #5 (permalink)  
Antiguo 22/04/2014, 16:19
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Parse error: syntax error, unexpected

$pdf = new PDF(); dentro del while hará que en cada iteración se instancie la variable y perderás todo lo que hayas hecho en las iteraciones anteriores.

Piensa qué es lo que necesitas que se ejecute antes, dentro y/o después del while.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:08.