Aquí podría ser tu PUBLICIDAD


error de análisis, esperando `T_STRING 'o` T_VARIABLE' o `T_NUM_STRING '

votos
0

Necesito una nueva mirada en esto. Recibí este código de alguien que dijo que funcionó.

Aquí está el error:

PHP Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Inetpub\wwwroot\2am\employment\send-email-form.php on line 19 

La línea 19 es la primera línea de GetUploadedFileInfo(). Obtengo el error para la línea 20 y 21 también. Es obviamente con la $file_infomatriz, pero ¿qué hay de malo aquí?

<?php 
$max_allowed_file_size = 100; // this is size in KB 
list($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file) = GetUploadedFileInfo();
if(!Validate($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file, $max_allowed_file_size)) {
   exit();
}
LoadUploadedFile($name_of_uploaded_file);
$path_of_uploaded_file = uploads/ . $name_of_uploaded_file;

   include_once('Mail.php');
   include_once('mime.php');

ComposeMail($path_of_uploaded_file);


//////////////////// Functions ////////////////////////

function GetUploadedFileInfo() {
   $file_info[] = basename($_FILES['uploaded_file']['name']);
   $file_info[] = substr($file_info[0], strrpos($file_info[0], '.') + 1);
   $file_info[] = $_FILES[uploaded_file][size]/1024;
   return $file_info;
}


function Validate($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file, $max_allowed_file_size) {
   if($size_of_uploaded_file>$max_allowed_file_size ) {
       echo Size of file is greater than . $max_allowed_file_size .  KB. <a href='attachment_email_form.html'>Click Here to upload a smaller sized file.</a>;
      return false;
   }
$allowed_extension = array(jpg, jpeg, gif, bmp);
for($i=0; $i<sizeof($allowed_extension); $i++) { 
   $allowed_extension[$i] = strtoupper($allowed_extension[$i]); 
}
$type_of_uploaded_file = strtoupper($type_of_uploaded_file);
if(!(in_array(strtoupper($type_of_uploaded_file),$allowed_extension))) {
   echo You have uploaded a file with an extension of  . $type_of_uploaded_file .  . This type is not allowed. Please upload a file with allowed image extensions like jpg, jpeg, bmp, gif. <a href='attachment_email_form.html'>Click Here to upload a file with allowed extension.</a>;
   return false;
}
   return true;
}


function LoadUploadedFile($name_of_uploaded_file) {
   move_uploaded_file($_FILES[uploaded_file][tmp_name], uploads/ . $name_of_uploaded_file);
   return true;
}


function ComposeMail($name_of_uploaded_file) {
   $name = $_POST['name'];
   $user_message = $_POST['message'];
   $to = RecipietnEmail@hotmail.com;
   $subject=An email with attachement is sent;
   $from = SenderEmail@hotmail.com;
   $text = A user  . $name . has sent you this message and an attachment:  . $user_message;
   $message = new Mail_mime(); 
   $message->setTXTBody($text); 
   $message->addAttachment($name_of_uploaded_file);
   $body = $message->get();
   $extraheaders = array(From=>$from, Subject=>$subject);
   $headers = $message->headers($extraheaders);
   $mail = Mail::factory(mail);
   $mail->send($to, $headers, $body);
   echo Your Email with attachment was sent.;
}
?>
Publicado el 12/03/2009 a las 17:42
fuente por usuario Brian McClean
En otros idiomas...        العربية       

6 respuestas

votos
4

Llámame loco, pero probé esto y no obtuve un error de análisis - ¿estás seguro de que estás buscando el archivo correcto (o la versión correcta)?

Editar: entonces lo único que se me ocurre es que las comillas simples están cerrando una cadena que se ha dejado abierta en otro lado.

Respondida el 12/03/2009 a las 05:50
fuente por usuario Greg


Aquí podría ser tu PUBLICIDAD


votos
2

$ file_info no es una función, es una variable (matriz).

El código que publicaste no tiene ningún error. Lo copié / pegué a un archivo php y ejecuté lint: php -l e informa: No se detectaron errores de sintaxis en test.php

Respondida el 12/03/2009 a las 06:00
fuente por usuario Milan Babuškov

votos
0

Bueno, descubrí el problema.

No estoy seguro de lo que se logró, pero presioné la línea 19 hacia abajo hasta la línea 20, dejando una línea en blanco después de la línea 18 de la función GetUploadedFileInfo () {

Respondida el 12/03/2009 a las 11:30
fuente por usuario Brian McClean

votos
0

¿El navegador solicita directamente send-email-form.php, o está accediendo a algún otro archivo PHP que incluye o requiere send-email-form.php?

Si es el caso de que otro script lo incluya, verifique que no haya caracteres no coincidentes (pares, comillas, llaves, etc.) en cualquier código PHP incluido antes de este archivo, o en cualquier código PHP en línea en el archivo principal.

Respondida el 12/03/2009 a las 07:00
fuente por usuario Kip

votos
0

El error que está recibiendo sugiere un paréntesis o citas que no coinciden, sin embargo, la sintaxis se ve bien. Puedo ejecutar esa función sin error:


$ php -a
Interactive shell

php > function GetUploadedFileInfo() {
php {    $file_info[] = basename($_FILES['uploaded_file']['name']);
php {    $file_info[] = substr($file_info[0], strrpos($file_info[0], '.') + 1);
php {    $file_info[] = $_FILES["uploaded_file"]["size"]/1024;
php {    return $file_info;
php { }
php > print_r(GetUploadedFileInfo());
Array
(
    [0] => 
    [1] => 
    [2] => 0
)

@PhiLho php te permite crear dinámicamente variables de matriz. Sin embargo, dado que no se inicializa correctamente, puede tener un comportamiento inesperado en los casos en que la variable se inicializó en otro lugar. Pero dado que la variable está aislada dentro de una función y no se accede globalmente, está bien en este caso.


$ php -a
Interactive shell

php > $a = array();
php > $a[] = 'Hello, world!';
php > print_r($a);
Array
(
    [0] => Hello, world!
)
php > $b[] = 'Hello, SO!';
php > print_r($b);
Array
(
    [0] => Hello, SO!
)

Además, ¿qué versión de PHP estás ejecutando? Mis ejemplos usan PHP 5.2.8-pl2-gentoo.

Respondida el 12/03/2009 a las 06:17
fuente por usuario adam

votos
0

El mensaje de error parece que está esperando un índice $file_info[]. ¿Estás usando una versión antigua de PHP que no reconoce la []sintaxis " " para agregar al final de una matriz?

Respondida el 12/03/2009 a las 06:15
fuente por usuario Kip