Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/09/2013, 07:05
liberenatu
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: no guarda datos en la base de datos

Código PHP:
Ver original
  1. buenas tardes tengo un inconveniente con el envio de datos desde mi formulario de registro el cual al dar enviar me comunica que se a realizado correctamente el registro pero al ver en mi base de datos no existe los datos ingresados y la verdad no me arroja ningun error.
  2.  
  3.  nota "la conexion a la base de datos es correcta y tambien se realiza desde una class llamada enlace la cual se instancio en la class conn"
  4.  
  5.  agradezco su ayuda.
  6.  
  7.  
  8.  pagina de registro.php
  9.  <?php
  10.  if(isset($_POST['register']))
  11.  {
  12.  include'registrar.php';
  13.  $registrar = new Registrar();
  14.  
  15.  if($registrar->confirmar()) {
  16.  echo "Felicitaciones registro exitoso";
  17.  header("Refresh: 5; URL=index.php");
  18.  } else {
  19.  $registrar->_errors();
  20.  }
  21.  }
  22.  ?>
  23.  <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" >
  24.  <label for="apodo">Nick:</label>
  25.  <input type="text" name="apodo" id="apodo" maxlength="20" value="">
  26.  <label for="password">Contraseña:</label>
  27.  <input type="password" name="password" id="password" maxlength="20" value="">
  28.  <input type="hidden" name="token" value="<?php $token = $_SESSION['token'] = md5(uniqid(mt_rand(),true)); echo $token;?>">
  29.  <input type="submit" name="register" id="submit" value="registrar">
  30.  <input type="reset" value="Borrar">
  31.  </form>
  32.  
  33.  
  34.  
  35.  
  36.  /************************************************** *********************************
  37.  ************************************************** *********************************
  38.  ************************************************** *********************************/
  39.  
  40.  archivo conexion.php
  41.  <?php
  42.  require'enlace.php';
  43.  class conn {
  44.  private $servidor;
  45.  private $usuario;
  46.  private $password;
  47.  private $database;
  48.  
  49.  private static $_instance;
  50.  
  51.  private function __construct() {
  52.  $this->enlaces();
  53.  $this->conectar();
  54.  }
  55.  
  56.  public static function getInstance(){
  57.  if (!(self::$_instance instanceof self)){
  58.  self::$_instance = new self();
  59.  }
  60.  return self::$_instance;
  61.  }
  62.  
  63.  private function enlaces(){
  64.  $enlace = enlace::getInstance();
  65.  $this->servidor = $enlace->hostin();
  66.  $this->usuario = $enlace->rot();
  67.  $this->password = $enlace->pasw();
  68.  $this->database = $enlace->test();
  69.  }
  70.  
  71.  private function __clone() {
  72.  }
  73.  
  74.  private function conectar() {
  75.  $mysqli = new mysqli($this->servidor, $this->usuario, $this->password, $this->database);
  76.  printf("Falló la conexión: %s\n", mysqli_connect_error());
  77.  exit();
  78.  }
  79.  echo 'Éxito... ' . $mysqli->host_info . "\n";
  80.  if (!$mysqli->set_charset("utf8")) {
  81.  printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
  82.  } else {
  83.  printf("Conjunto de caracteres actual: %s\n", $mysqli->character_set_name());
  84.  }
  85.  $mysqli->close();
  86.  }
  87.  }
  88.  //conn::getInstance();
  89.  ?>
  90.  
  91.  
  92.  
  93.  /************************************************** *********************************
  94.  ************************************************** *********************************
  95.  ************************************************** *********************************/
  96.  
  97.  
  98.  
  99.  registrar.php
  100.  <?php
  101.  require'conexion.php';
  102.  $mysqli = conn::getInstance();
  103.  
  104.  class Registrar {
  105.  private $apodo;
  106.  private $contrase;
  107.  private $passmd5;
  108.  
  109.  private $errors;
  110.  private $token;
  111.  
  112.  public function __construct() {
  113.  $this->data();
  114.  }
  115.  
  116.  private function data(){
  117.  $this->apodo = $_POST['apodo'];
  118.  $this->contrase = $_POST['contrase'];
  119.  $this->passmd5 = md5($this->contrase);
  120.  $this->errors = array();
  121.  $this->token = $_POST['token'];
  122.  }
  123.  
  124.  public function confirmar() {
  125.  if($this->_token() && $this->_data())
  126.  $this->users();
  127.  return count($this->errors)? 0 : 1;
  128.  }
  129.  
  130.  public function users() {
  131.  if (isset($mysqli)) {
  132.  $mysqli = conn::getInstance();
  133.  $mysqli->query("INSERT INTO usuario(apodo,contrase) VALUES (''{$this->apodo}','{$this->passmd5}')");
  134.  if($mysqli->affected_rows< 1)
  135.  $this->errors[] = 'Could Not Process Form';
  136.  }
  137.  }
  138.  
  139.  public function existe() {
  140.  if (isset($mysqli)) {
  141.  $mysqli = conn::getInstance();
  142.  $result = $mysqli->query("SELECT id FROM usuario WHERE apodo = '{$this->apodo}'");
  143.  $row_cnt = $result->num_rows;
  144.  return $row_cnt? 1 : 0;
  145.  $result->close();
  146.  }
  147.  
  148.  }
  149.  
  150.  public function _errors() {
  151.  echo "<h3>Errors</h3>";
  152.  foreach($this->errors as $key=>$value)
  153.  echo $value."<br>";
  154.  }
  155.  
  156.  public function _data() {
  157.  if($this->existe()) {
  158.  $this->errors[] = 'El seudonimo digitado ya se encuentra en uso';
  159.  }
  160.  if(empty($this->apodo)) {
  161.  $this->errors[] = 'Digite su seudonimo para ingresar a esta web';
  162.  }
  163.  if(empty($this->contrase)) {
  164.  $this->errors[] = 'Sin la contraseña no podra ingresar en el futuro';
  165.  }
  166.  return count($this->errors)? 0 : 1;
  167.  }
  168.  
  169.  public function _token() {
  170.  if(!isset($_SESSION['token']) || $this->token != $_SESSION['token'])
  171.  $this->errors[] = 'Invalid Submission';
  172.  return count($this->errors)? 0 : 1;
  173.  }
  174.  }
  175.  ?>