Jump to content

usuarios en varios sitios


gainax0

Recommended Posts

Hola, soy nuevo en el sitio, pero ya tengo 5 años con creacion (3) de sitios en prestashop,

me agradaría saber si alguien tiene una idea de cómo insertar usuarios nuevos  (en que tablas) en prestashop, directamente desde un formulario ajeno pero dentro del mismo hosting

lo he intentado varias veces, pero me marca el ultimo error hasta ahorita es: "SQLSTATE[HY000]: General error: 1364 Field 'id_gender' doesn't have a default value"

les platico mi idea:

a falta de algún plugin, modulo, o webservices que CONECTE Y sirva para los 3 CMS, se me ocurrió la idea de hacer un formulario genérico (usuario, correo, password) que apunte a 3 sitios diferentes (joomla, prestashop, moodle) y que al registrase en ese formulario se de de alta en los 3 sitios.

si alguien tiene una idea de cómo se hace en prestashop el registro de usuarios fuera del formulario habitual de prestashop agradecería mucho su ayuda.

Gracias y feliz programación.

 

Edited by gainax0 (see edit history)
Link to comment
Share on other sites

18 minutes ago, Prescol said:

El error que te da es porque el campo id_gender tiene que tener un valor si o si. 

Sí, olvide mecionar esto... de hecho eso note, pero aun pasandole valor a la tabla me seguía marcando error, por ende borre la tabla gender y sigo sin poder eliminar  ese error, de hecho el error que marcaba era otro, algo así, y buscando una solución decía que había que transformar las tablas o la BD en un formato X$# que no entendí, por eso opte por el formulario antes mencionado

Link to comment
Share on other sites

On 4/10/2020 at 11:40 AM, Prescol said:

No hay que borrar tablas. Lo único que necesitas es pasar los parámetros correctos a la query.

Ok, pero porqué me sigue mandando ese mensaje, si la tabla ya no existe?
habrá otra forma de insertar un usuario en prestashop solo con los datos de: usuario, mail, passsword, fuera del entorno de prestashop?

Link to comment
Share on other sites

También es muy practico añadir registros mediante las funciones que incluye Prestashop por defecto. eg

<?php

use PrestaShop\PrestaShop\Adapter\ServiceLocator;
use PrestaShop\PrestaShop\Adapter\CoreException;
use PrestaShop\PrestaShop\Core\Crypto\Hashing;

require 'config/config.inc.php';

try {

    $crypto = ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing');

    $customer = new Customer();
    $customer->lastname = 'Doe';
    $customer->firstname= 'Jane';
    $customer->email = '[email protected]';
    $customer->passwd = $crypto->hash('janedoepassword');
    $customer->add();

} catch (Exception $e) {

    die( $e->getMessage() );
}

print 'Successfully created new customer '.$customer->firstname.' '.$customer->lastname.'';

 

Link to comment
Share on other sites

12 hours ago, Juanjomg said:

Muy buenas. 

Si indicas la sentencia SQL quizás se te pueda ayudar.

Hola, OK! tienen razón!. dejo aquí el código que ocupo para insertar un usuario en prestashop

<?php
$a = 'juanito'; ----->usuario
$b = 0; -----> genero dónde 1 es hombre y 0 es mujer me parece!!!

// conectar la base da datos
$db = 'shop0';
$host = 'localhost';
$user = shop0';
$pass = 'kuHwP0';
$conn = new PDO("mysql:dbname=".$db.";host=".$host,$user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// iniciar transacción
$conn->beginTransaction();

try {
// tabla user
$sql = 'INSERT INTO ps_customer (firstname) VALUES (:firstname);';
$result = $conn->prepare($sql);
$result->bindValue(':firstname', $a, PDO::PARAM_STR);
$result->execute();

//tabla genero
// $sql = 'INSERT INTO ps_customer (id_gender) VALUES (:id_gender);';
// $result = $conn->prepare($sql);
// $result->bindValue(':id_gender', $b, PDO::PARAM_STR);
// $result->execute();


$conn->commit();
echo 'Datos insertados';
} catch (PDOException $e) {
// si ocurre un error hacemos rollback para anular todos los insert
$conn->rollback();
echo $e->getMessage();;
}

echo $b->getMessage();
?>

al ejecutar el código y finalizar marca:

SQLSTATE[HY000]: General error: 1364 Field 'id_gender' doesn't have a default value

lo raro es!! que ya elimine la tabla gender

imagen.thumb.png.341835275ffc77175632e56e92ccc9cb.png

y me sigue pidiendo ese dato...

ojala me allá explicado bien

Link to comment
Share on other sites

El parámetro $b, en alguna iteración, está vacío, y como la columna id_gender está definida como "NOT NULL", necesica un parámetro. Normalmente se define un valor por defecto a nivel de base de datos, pero en esta ocasión no aplica, porque no hay un defecto para el género, por lo que te pide si o si un valor.

Link to comment
Share on other sites

On 4/14/2020 at 9:06 PM, gainax0 said:

Hola, OK! tienen razón!. dejo aquí el código que ocupo para insertar un usuario en prestashop

<?php
$a = 'juanito'; ----->usuario
$b = 0; -----> genero dónde 1 es hombre y 0 es mujer me parece!!!

// conectar la base da datos
$db = 'shop0';
$host = 'localhost';
$user = shop0';
$pass = 'kuHwP0';
$conn = new PDO("mysql:dbname=".$db.";host=".$host,$user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// iniciar transacción
$conn->beginTransaction();

try {
// tabla user
$sql = 'INSERT INTO ps_customer (firstname) VALUES (:firstname);';
$result = $conn->prepare($sql);
$result->bindValue(':firstname', $a, PDO::PARAM_STR);
$result->execute();

//tabla genero
// $sql = 'INSERT INTO ps_customer (id_gender) VALUES (:id_gender);';
// $result = $conn->prepare($sql);
// $result->bindValue(':id_gender', $b, PDO::PARAM_STR);
// $result->execute();


$conn->commit();
echo 'Datos insertados';
} catch (PDOException $e) {
// si ocurre un error hacemos rollback para anular todos los insert
$conn->rollback();
echo $e->getMessage();;
}

echo $b->getMessage();
?>

al ejecutar el código y finalizar marca:

SQLSTATE[HY000]: General error: 1364 Field 'id_gender' doesn't have a default value

lo raro es!! que ya elimine la tabla gender

imagen.thumb.png.341835275ffc77175632e56e92ccc9cb.png

y me sigue pidiendo ese dato...

ojala me allá explicado bien

No creo que sea una buena practica añadir contraseñas de usuario sin encriptar

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...