Correct array format in PHP 5.3

1

I have the following code to have the records of a database:

<?php
  include '__conexion.php';
  require_once 'funciones/passwordLib.php'; // Libreria de PHP5.5 Hash de contraseñas 
  ini_set('max_execution_time', 300); //300 seconds = 5 minutes
  //Sentencia.
  $stmt = $conexion->prepare("SELECT contrasena FROM usuarios");//Selecciono solo los datos a utilizar, en tu caso la contraseña.
  //Ejecutar sentencia.
  $stmt->execute();
  //Ligamos resultado BD.
  $stmt->bind_result($contrasena_txt_plano);
  while ($stmt->fetch()) {

    //Creamos nuestro Hash.
    $hash = password_hash($contrasena_txt_plano, PASSWORD_BCRYPT);//BCRYPT, que tendrá siempre 60 caracteres. (¡Imporante comprobar que tu columna contrasena en caso varchar pueda obtener 60 caracteres!

    //Creo un array, con el hash y la contrasena de texto plano.
    $arr[] = ['contrasena' => $contrasena_txt_plano, 'hash' => $hash]; 
    echo "seleccionadno";

  } 

  $stmt->close();//Cerramos sentencia 'select'.



  //Recorremos el array, para hacer nuestro 'UPDATE'.
  for ($i=0; $i<count($arr); $i++) { 

    //Actualizamos datos.
    $actualiza = $conexion->prepare("UPDATE usuarios SET hash=? WHERE contrasena=?");    
    $actualiza->bind_param("ss",$arr[$i]['hash'],$arr[$i]['contrasena']);

    $comprobar = $actualiza->execute();

    //Comprobamos si se ejecuto nuestra sentencia.
    if (false===$comprobar) {
      exit('Nuesta sentencia UPDATE fallo: ' . htmlspecialchars($actualiza->error));
    } else {
      echo "Los datos se actualizaron correctamente.<br />";
    }

    $actualiza->close();    

  }
?>

I get the error HTTP ERROR 500 when executing it.

HTTP ERROR 500 : Programming error.

This file was brought from a server where PHP 5.4.0 was installed and it was included in a PHP 5.3.3 system

Identify the error in this line:

$arr[] = ['contrasena' => $contrasena_txt_plano, 'hash' => $hash]; 

What would be the correct formatting of this line to serve in PHP 5.3.3

    
asked by Victor Alvarado 27.04.2017 в 13:40
source

1 answer

3

the definition of array is incorrect for version 5.3 should be as follows:

$arr[] = array('contrasena' => $contrasena_txt_plano, 'hash' => $hash); 
    
answered by 27.04.2017 / 14:14
source