Foro oficial de PHP

Hola cacharrin,
claro, estoy usando frameworks para la seguridad, tanto para válidacion de datos, como al almacenamiento, se lo importante que son.

Gracias por el aporte.
 
  • Me gusta
Reacciones: Cacharrin
Hola,

En el momento no estoy utilizando ningún framework, estoy trabajando con php y mysql. El problema en si es como guardar las fecha para cual el cliente quiere el servicio y luego cuando el prestador del servicio del spa se meta a mirar su calendario (así como lo muestro en mi comentario inicial), le salga los datos de las reservas qué tiene por días, así como lo presento en el primer comentario mio
Lo dije porque ud mismo dijo que no estaba usando ninguno.

Saludos ;)
 
Una opinión personal... hacer un proyecto en PHP desde 0 para "aprender" si es una buena idea, para lograr empaparse por completo de como funciona PHP y de como interactuan todas las partes.

Pero para un proyecto real no lo recomiendo, pues hay muchas cosas que muchos frameworks ya traen hechas que son "transparentes" para ud, pero que lo protegen de muchas formas de ataque a su sitio... como por ejemplo:
Escapar correctamente los caracteres en cada uno de sus usos, es decir, escaparlos correctamente en sentencias SQL y en la vista para prevenir ataques de injección SQL, XSS y similares.
También algunos frameworks lo protegen de ataques CSRF con una implementación casi nula.

Ud perfectamente podría programar estos puntos anteriores pero debería tener el conocimiento necesario y además de disponer del tiempo necesario para validar que su implementación es correcta.

He visto muchas veces que realizan proyectos y no ponen ni 5 de atención a la seguridad que ofrecen, yo no soy experto en seguridad, pero pues si me importa mucho el tema y procuro implementar las mejores prácticas en los sitios que implemento.

Por eso recomiendo usar algún framework, ya que además de facilitar la implementación de todo el sitio en general, me provee herramientas adicionales de protección de seguridad.

De nada sirve ud tomarse 2 o 3 meses realizando una super sitio web, si al final de los 4 meses su sitio es facilmente vulnerable... es echar su trabajo a perder.
Saludos.
A propósito de eso que Framework recomiendan? En cuáles casos? Cuales son las ventajas de unos frente a otros?se que es muy amplia la pregunta pero llevo un tiempo alejado del desarrollo web y creo que lo mejor en estos casos es escuchar opiniones particulares

Enviado desde mi Nexus 5 mediante Tapatalk
 
Pues para mi el más completo y el que mejor que conozco el Symfony, tiene una curva de aprendizaje un poquito mayor a los demás pero desde mi punto de vista es muy poderoso y super personalizable (De ahi su cruva de aprendizaje mas complicadita).

Saludos.
 
  • Me gusta
Reacciones: Matapatos
A propósito de eso que Framework recomiendan? En cuáles casos? Cuales son las ventajas de unos frente a otros?se que es muy amplia la pregunta pero llevo un tiempo alejado del desarrollo web y creo que lo mejor en estos casos es escuchar opiniones particulares

Enviado desde mi Nexus 5 mediante Tapatalk

Para seleccionar un framework es necesario considerar varias cosas ,curva de aprendizaje ,escalabilidad, portabilidad, patron de diseño,seguridad, y claramente con cual te sientes mas cómodo al trabajar en caso de que aun no tengas un amplio recorrido en el desarrollo seria bueno intentar por uno en el cual su curva de aprendizaje sea bastante rápida en mi caso en aquel momento empece con codeigniter que me fue bastante fácil , posterior yii también bastante fácil ,como lo menciona el compañero symfony es un poco mas difícil pero manejable así que lo mejor es que realices alguna prueba con algunos y con el que te sientas mas cómodo inicias con el tiempo te darás cuenta cual es mejor para tus necesidades (por ahora me va bastante bien con laravel con mongdb) :) saludos y happy coding

Hola a todos amigos espero se encuentren muy bien vengo a pedirles una ayuda si es posible comparto Link de la publicación en el foro agradecería mucho si me pueden ayudar ya que me encuentro en culminación de mi tesis de maestría sobre usabilidad y HCI.

http://www.laneros.com/temas/censo-aplicativos-web-del-sector-salud-ayuda.225964/
 
Última edición por un moderador:
  • Me gusta
Reacciones: Yeison y Matapatos
A propósito de eso que Framework recomiendan? En cuáles casos? Cuales son las ventajas de unos frente a otros?se que es muy amplia la pregunta pero llevo un tiempo alejado del desarrollo web y creo que lo mejor en estos casos es escuchar opiniones particulares

Enviado desde mi Nexus 5 mediante Tapatalk

Personalmente yo me mantengo entre Zend Framework 2 y Symfony 2, ultimamente hay mucha gente metiendose con Laravel pero no se porque si realmente es como un Zend Framework pero menos robusto.

Zend Framework 2 esta orientado al patron MVC y tiene su propio gestor de conexion a base de datos aunque se le pueden meter ORM como Doctrine y tiene la ventaja de que varias plataformas estan basadas en el como por ejemplo el eCommerce Magento.

Symfony 2 la principal ventaja que tiene es que esta orientado a una arquitectura por capas por lo cual no solo vas a poder implementar MVC facilmente si no por ejemplo capas transversales adicionales como helpers y otras cosas e incluso orientarse a implementar arquitecturas como SOA, symfony 2 ademas viene nativo con Doctrine ORM y tiene varios proyectos interesantes en Yeoman

Personalmente me parece que en estos momentos el framework mas robusto de PHP es Symfony 2 pero precisamente por su robustez no debe ser usado en todos los proyectos, para algunos proyectos simples probablemente usar Symfony sea como matar un pajaro con un Ak47, probablemente algo como un Cakephp sea mas que suficiente.

Recuerden que la eleccion de la base tecnologica es una de las decisiones que pueden hacer que un proyecto sea un exito o sea un fracaso. Personalmente para mi hoy en dia programar sin frameworks es como re-inventar la rueda a no ser de que haya una razon 100% valida por la cual quiera hacer su propio framework de trabajo en su proyecto y que esa razon le de un valor adicional mas grande al proyecto del que le va a costar llevar a cabo la idea ya que un framework principalmente es para tener VELOCIDAD y FLEXIBILIDAD de desarrollo, ya despues viene todo el tema de seguridad, manejo de paquetes y todo ese asunto
 
Última edición:
  • Me gusta
Reacciones: Sieke y Cacharrin
Hola chicos. En PL/SQL tengo esta sentencia:
PHP:
UPDATE tabla SET nom= Replace(nom, '"', '')
Con ella elimino las comillas dobles del campo nom de toda la tabla por nada.
Pero si la misma sentencia quiero ejecutarla en PHP/PDO al asignar a una variable tengo esto:
PHP:
$sql="UPDATE tabla SET nom = replace(nom, '\"', '')";
$sth = $BD->prepare($sql);
$sth->execute();
Esta es la manera correcta de usar la sentencia en PHP ?? pues el editor detecta las comillas de la variable y las separa del valor que busco que está entre las comillas simples.
 
Hola chicos. En PL/SQL tengo esta sentencia:
PHP:
UPDATE tabla SET nom= Replace(nom, '"', '')
Con ella elimino las comillas dobles del campo nom de toda la tabla por nada.
Pero si la misma sentencia quiero ejecutarla en PHP/PDO al asignar a una variable tengo esto:
PHP:
$sql="UPDATE tabla SET nom = replace(nom, '\"', '')";
$sth = $BD->prepare($sql);
$sth->execute();
Esta es la manera correcta de usar la sentencia en PHP ?? pues el editor detecta las comillas de la variable y las separa del valor que busco que está entre las comillas simples.
Pues ahi el problema es mas de base de datos que de PHP porque estas ejecutando por medio de php una sentencia mas relacionada con la administracion de la base de datos que manejo de datos de la misma que al fin y al cabo es el objetivo de PHP PDO

¿Esta segura de necesitar eso? ¿Esta segura que no es mas un problema de diseño?
 
Pues ahi el problema es mas de base de datos que de PHP porque estas ejecutando por medio de php una sentencia mas relacionada con la administracion de la base de datos que manejo de datos de la misma que al fin y al cabo es el objetivo de PHP PDO

¿Esta segura de necesitar eso? ¿Esta segura que no es mas un problema de diseño?
Hola. Es parte de un proceso que debe cargar registros que vienen de diferentes fuentes y en el campo nombre tiene comillas entonces parte del proceso de carga es limpiar ese campo para poder seguir con el proceso. Y debe ser parte del código. Tal vez haya alguna otra alternativa? Pero tiene que ser con PHP pues el sistema está en PHP y tenemos problemas con esa parte del proceso de carga/depuración.
 
Hola. Es parte de un proceso que debe cargar registros que vienen de diferentes fuentes y en el campo nombre tiene comillas entonces parte del proceso de carga es limpiar ese campo para poder seguir con el proceso. Y debe ser parte del código. Tal vez haya alguna otra alternativa? Pero tiene que ser con PHP pues el sistema está en PHP y tenemos problemas con esa parte del proceso de carga/depuración.

pues si con PHP esta leyendo esos registros lo ideal es que lo haga antes de ejecutar la sentencia por ejemplo con una expresion regular o incluso son str_replace() para que elimine las comillas asi no se complica la vida ni le mete carga a la base de datos con tareas que no le corresponden
 
pues si con PHP esta leyendo esos registros lo ideal es que lo haga antes de ejecutar la sentencia por ejemplo con una expresion regular o incluso son str_replace() para que elimine las comillas asi no se complica la vida ni le mete carga a la base de datos con tareas que no le corresponden
La carga se hace desde un archivo CSV. Me dices que haga la depuración antes de grabarlo a la tabla? hhmm.... algo así como trabajarlo en un array y luego grabarlo a la tabla?
 
La carga se hace desde un archivo CSV. Me dices que haga la depuración antes de grabarlo a la tabla? hhmm.... algo así como trabajarlo en un array y luego grabarlo a la tabla?

Un array no porque seria muy pesado, por ahi hay muchas librerias para lectura de CSV, lo ideal seria que cuando leyera cada fila hiciera de una vez la depuracion de los datos y una vez terminada pues inserte en la base de datos
 
Un array no porque seria muy pesado, por ahi hay muchas librerias para lectura de CSV, lo ideal seria que cuando leyera cada fila hiciera de una vez la depuracion de los datos y una vez terminada pues inserte en la base de datos

Siguiendo tu consejo estoy leyendo el csv y antes de insertarlo en la tabla hago esto:
PHP:
$buscar = ["\'", "\""];
$reemplazar = ["", " "];
$nombre = trim(str_replace($buscar, $reemplazar, $data[1]));
$sth->bindParam(':nombre', $nombre);
$sth->execute();
Quiero eliminar los espacios intermedios para que quede uno entonces agregué esto en el mismo array:
PHP:
$buscar = ["\'", "\"","  "];
$reemplazar = ["", "", " "];
Pero no reemplaza. Qué puede estar pasando? Alguna sugerencia?
 
Última edición:
Alguien ha exportado tablas en Blade a Excel? Utilizando Laravel 5.2? Quiero exportar unas tablas a excel pero no sé si me sea más facil hacerlo de Blade a Excel, o directamente desde las colecciones o arrays a Excel..
 
Laneros, suplico muy amablemente su ayuda
Estoy aprendiendo algo de envío de datos de formularios a una base de datos mysql (gratuita de miarroba.com)
Siguiendo los pasos de un vídeo di mis primeros pasos pero:
1. el php procesar me dice que
1.JPG

2. Los datos por no llegan a la base de datos

Tengo una pagina index2.html con este código de fuente
HTML:
<!doctype html>
<html>
<head>
    <title>Pagina de pruebas</title>
</head>
<body>
<h1>Formulario de registro </h1>
<form method="post" action="procesar.php" />
<table>
<tr>
<td> Nombre y apellidos
</td>
<td> <input type="name" name="nombre" />
</td>
</tr>

<tr>
<td> apellidos</td>
<td> <input type="name" name="apellidos" />
</td>
</tr>

<tr>
<td> Contraseña
</td>
<td> <input type="password" name="pw" />
</td>
</tr>

</table>
<input type="submit" name="submit" value="Insertar datos" />
</form>

</body>
</html>
Tengo esta pagina procesar.php con este codigo
PHP:
<?php

include("conexion.php");

if(isset($_POST['nombre']) && !empty($_POST['nombre']) &&
   isset($_POST['apellido']) && !empty($_POST['apellido']) &&
   isset($_POST['pw']) && !empty($_POST['pw']))
    {
    $conexion = mysql_connect($host,$user,$pw)or die("problema al conectar el hosto");
    mysql_select_db($bd,$conexion)or die("problema al conectar la bd")

  
    mysql_query("INSERT INTO cursotable (NOMBRE,APELLIDO,PW)
    VALUES ('$_POST[nombre]','$_POST[apellido]','$_POST[pw]')",$conexion);
  
    echo "datos insertados correctamente";
  
    }else{
    echo "problema al insertar los datos";
    }

?>
Tambien tengo una pagina conexion.php
PHP:
<?php

$host ="mysql.webcindario.com";
$user ="littmanncol";
$pw   ="12345678";
$bd   ="littmanncol";


?>
y esta es la base de datos y la tabla
2.JPG
Como no se nada, no se que esta mal.
Que esta mal?
agradezco gentilmente su ayuda, el formulario es muy básico con fines didácticos
Edit: la pagina es http://littmanncol.webcindario.com/index2.html
 
Como dijo que está en proceso de aprender, le hago algunos aportes

1. La extension mysql está obsoleta y no es recomendable (http://php.net/manual/es/function.mysql-connect.php) en su lugar usar mejor la extension mysqli o PDO_MySQL

2. Tambien le recomendaría que nunca concatene cadenas manualmente para hacer consultas SQL, por ejemplo en su caso, esta linea:

PHP:
mysql_query("INSERT INTO cursotable (NOMBRE,APELLIDO,PW)
    VALUES ('$_POST[nombre]','$_POST[apellido]','$_POST[pw]')",$conexion);

Eso lo deja vulnerable a ataques de inyección SQL, mejor usar "prepared statements" (http://php.net/manual/es/mysqli.prepare.php)

Saludos
 
  • Me gusta
Reacciones: eridamega

Los últimos temas