вводить данные в компьютер в mysql с формуляром

недавно напечатайте тот же вопрос но изюм, который прекратил функционировать! я отношусь к вводить данные в компьютер в таблицу в MySql., но получаю эту ошибку:

 Notice: Undefined variable: username in    H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22

 Notice: Undefined variable: apellido in H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22

 Notice: Undefined variable: email in H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22

 Notice: Undefined variable: telefono in H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22

 Notice: Undefined variable: usuario in H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22

  Notice: Undefined variable: password in H:\SERVER\htdocs\SITIO2\2\content\control_register_user.php on line 22


Success

файл - следующий:

если они знают, как делать это в PHP7?

дело в том, что я загрузился последняя версия XAMPP, и он приносит эту версию PHP

это файл, ответственный вводить все в MySQL.

Хотело бы осуществить также какой-то контроль, который он говорил бы, что пользователь, введенный в компьютер уже существует (если он состоит в том, что он существует!)

я не хочу злоупотребить Вами, но если они помогают мне с каким-то контролем для длины password, который просит вводить какой-то прописной, серьезный explendido в компьютер.

большое спасибо заранее!!

control_register_user.php:

      session_start();

      <?php include_once('header.php'); ?>

      <h1>Control Register Usuario</h1>

    <?php
   define ("MYSQLUSER", "jolunavi");
   define ("MYSQLPASS", "688200");
   define ("HOSTNAME", "localhost");
   define ("MYSQLDB", "msf");
   if ($coneccion = @new mysqli (HOSTNAME, MYSQLUSER, MYSQLPASS, MYSQLDB));

if (isset($_REQUEST['user_nombre']) && isset($_REQUEST['user_apellido']) && isset($_REQUEST['user_email']) && isset($_REQUEST['user_telefono']) && isset($_REQUEST['user_usuario']) && isset($_REQUEST['user_password']) && isset($_REQUEST['user_token']))
{
#Asignar a las variable
$nombre = isset($_REQUEST['user_nombre']) ? $_REQUEST['user_nombre'] : '';
$nombre = isset($_REQUEST['user_apellido']) ? $_REQUEST['user_apellido'] : '';
$nombre = isset($_REQUEST['user_email']) ? $_REQUEST['user_email'] : '';
$nombre = isset($_REQUEST['user_telefono']) ? $_REQUEST['user_telefono'] : '';
$nombre = isset($_REQUEST['user_usuario']) ? $_REQUEST['user_usuario'] : '';
$nombre = isset($_REQUEST['user_password']) ? $_REQUEST['user_password'] : '';
$nombre = isset($_REQUEST['user_token']) ? $_REQUEST['user_token'] : '';
$sql = "INSERT INTO usuarios (user_nombre,user_apellido,user_email,user_telefono,user_usuario,user_password) VALUES ('$username','$apellido','$email','$telefono','$usuario','$password')";
$query = mysqli_query($coneccion, $sql);
if (!$query) {
 echo "Error</br>";
 echo $sql;
 }
else {
 echo "Success";
 }
}
mysqli_close($coneccion);
?>

<?php include_once('footer.php'); ?>

Пожалуйста они могли бы помогать мне решать?

здесь - формуляр:

   <?php include_once('header.php'); ?>   
   <h1>Registrate</h1>
   <form action="control_register_user.php" method="post">
   <div class="maintform">
   <p class="formulario"><label for="name">Nombre:  </label> <input placeholder="Ejm: Juan" type="text" name="user_nombre" id="user_nombre"  /></p>
   <p class="formulario"><label for="name">Apellido:</label> <input placeholder="Ejm: Gutierrez" type="text" name="user_apellido" id="user_apellido"  /></p>
   <p class="formulario"><label for="name">email:   </label> <input placeholder="Ejm: ejemplo@gmail.com"type="text" name="user_email" id="user_email"  /></p>
   <p class="formulario"><label for="name">telefono:</label> <input placeholder="Ejm: 0931234567"type="text" name="user_telefono" id="user_telefono"  /></p>
   <p class="formulario"><label for="name">Usuario: </label> <input placeholder="Ejm: Pedrito1980"type="text" name="user_usuario" id="user_usuario"  /></p>
   <p class="formulario"><label for="name">Contrase&ntilde;a:</label> <input placeholder="Ejm: **************"type="password" name="user_password" id="user_password"/></p>
   <p class="formulario">
   <input class="ok" type="submit" name="testform" value="Terminado" />
   <input class="no_ok" type="reset" name="testform" value="Restablecer" />
   <input class="cancel" type="button" value="Cancelar" onclick="window.location.href='../index.php';"/></p>
   <br />
   <br />
   <br />
   <?php 
     $salt = 'SomeSalt';
     $token = sha1(mt_rand(1,1000000) . $salt); 
     $_SESSION['token'] = $token;
     ?>
   <input type="hidden" name="user_token" id="user_token" value="<?php echo $token; ?>"/>
   </div>
   </form>
   <?php include_once('footer.php'); ?>

Большое спасибо!!

1
задан 11.11.2016, 04:54
4 ответа
$link = mysqli_connect("localhost", "Root", "MyRootPassword", "MyDbName");

        #Usa esta Verificacion
        if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['name']) && isset($_POST['email'])) {

            #Asignalas a una variable asi
            $usuario_login =$_POST['username'];
            $usuario_passwd =$_POST['password'];
            $usuario_nombre =$_POST['name'];
            $usuario_email =$_POST['email'];

            $sql = "INSERT INTO members (username, password, name, email) VALUES    ('$usuario_login', '$usuario_passwd', '$usuario_nombre', ' $usuario_email')";

            $query = mysqli_query($link, $sql);
            if (!$query) {
                echo "Error";
            } else {
                echo "Success";
            }
        } else {
            echo "Parametros vacios. Verifique POST del Form";
        }
0
ответ дан 24.11.2019, 14:16
  • 1
    я это чувствую друг... продолжает давать мне ошибку: Notice: Undefined index: username in ...\save-user.php on line 5 Notice: Undefined index: password in...\save-user.php он-лайн 6 Notice: Undefined index: ямс in...\save-user.php он-лайн 7 Notice: Undefined index: электронная почта in...\save-user.php он-лайн 8 Notice: Undefined index: username in...\save-user.php он-лайн 20 Notice: Undefined index: password in...\save-user.php он-лайн 20 Notice: Undefined index: ямс in...\save-user.php он-лайн 20 Notice: Undefined index: электронная почта in...\save-user.php он-лайн 20' – jolunavi 30.05.2016, 19:34
  • 2
    ты протестировал этот edici и # 243; n, который я сделал ему?. Если он не комментирует твой формуляр, который нужно видеть. – Christian Gimenez 30.05.2016, 19:35
  • 3
    не я d и # 225; никакая ошибка. но он пересылает совсем не database., который плохой? – jolunavi 30.05.2016, 19:47
  • 4
    печатает твой form посмотрим пару и # 225; метры est и # 225; n прибывая в Вашу судьбу. Он говорит " пустые Параметры. Проверьте POST Form" – Christian Gimenez 30.05.2016, 19:51
  • 5
    ok, modifiqu и # 233; мой вопрос добавляя form и файл php настоящий. – jolunavi 30.05.2016, 19:56

Я не нахожу твою ошибку, но перемещаю тебя код, который я сделал, он делает время, он php Ориентируемый на объекты я думаю, что он более легкий и работоспособный. Я надеюсь, что он подает тебя

Класс, ответственный управлять о связях в базу данных

class DB {

private $servidor; 
private $usuario; 
private $password; 
private $bd; 
private $link; 



//Constructor
function __construct(){
    $this->servidor = 'localhost';
    $this->usuario = 'root';
    $this->password = '';
    $this->bd = 'libreria';
    $this->conectar(); /*Al inicializar la clase ya estará conectada*/ 
} 

//Destructor   
function __destruct() {
    if (isset($this->link) && is_resource($this->link)) {
        mysql_close($this->link);
    }
}

/*Realiza la conexión a la base de datos.*/ 
private function conectar(){ 
  $this->link=mysql_connect($this->servidor, $this->usuario, $this->password);
  if (!$this->link){
       die('Error de coneccion' . mysql_error());  
  }
  else{
        mysql_select_db($this->bd,$this->link); 
        mysql_query("set names 'utf8'");
  }
}

Выполни консультацию возврати результат

private function ExecuteQuery($query){
    $resultado = mysql_query($query,$this->link);
    if ($resultado)
        return $resultado;
    else
        return false;
} 

Выполни консультацию и он не возвращает результат

private function ExecuteNonQuery($query){
    if ( (mysql_query($query,$this->link)) == true ){
        return true;
    }
    else{
        return false;
    }
}

Простой Insert с параметрами

public function InsertarLibro($titulo, $paginas,$precio,$foto,$genero,$autor)
{
    $query="INSERT INTO libros(titulo,paginas,precio,foto,idGenero,idAutor) VALUES('$titulo', $paginas,$precio,'$foto',$genero,$autor)";
    $this->ExecuteQuery($query);
    $id = mysql_insert_id();
    return $id;
}

Я надеюсь, что он подает тебя

0
ответ дан 24.11.2019, 14:16

Это не ошибка mysql, это ошибка php, где ты используешь $ _POST ['username'], к тебе не прибывает ничто.

подсказки,

1) для debug используй метод GET и ты увидишь в бруске адресов, что то, что прибывает к тебе. 2) использует $ _REQUEST вместо $ _POST функционирует с GET и POST 3) не используй прямую стоимость, потому что они могут делать тебя sql injection

ты можешь использовать функцию, чтобы возвращать данные о $ _RQUEST немного как

function traerParametro( $nombre ){
  if ( array_key_exists( $nombre, $_REQUEST ) )
  {
    return funcionQueEviteSQLInjection( $_REQUEST[ $nombre ] );
  }
  return '';
}
0
ответ дан 24.11.2019, 14:16

Ошибка говорит тебе, что переменные не определены, и в коде php находится в поле зрения проблема, все ты записываешь стоимость в той же переменной $nombre

$nombre = isset($_REQUEST['user_nombre']) ? $_REQUEST['user_nombre'] : '';
$nombre = isset($_REQUEST['user_apellido']) ? $_REQUEST['user_apellido'] : '';
$nombre = isset($_REQUEST['user_email']) ? $_REQUEST['user_email'] : '';
$nombre = isset($_REQUEST['user_telefono']) ? $_REQUEST['user_telefono'] : '';
$nombre = isset($_REQUEST['user_usuario']) ? $_REQUEST['user_usuario'] : '';
$nombre = isset($_REQUEST['user_password']) ? $_REQUEST['user_password'] : '';
$nombre = isset($_REQUEST['user_token']) ? $_REQUEST['user_token'] : '';

Ты не определяешь другие переменные. С другой стороны я рекомендую тебе, если ты получаешь данные POST тогда, получать их через $_POST

-------------------------------------------------------EDIT:-------------------------------------------------------

@jolunavi, проблема состоит в том, что ты используешь имена переменных, чтобы получать данные о POST и другие имена переменных, в них ОЦЕНИ в момент ввождения.

Если ты используешь эти имена переменных:

        $nombre =$_POST['user_nombre'];
        $apellido =$_POST['user_apellido'];
        $email =$_POST['user_email'];
        $telefono =$_POST['user_telefono'];
        $usuario =$_POST['user_usuario'];
        $password =$_POST['user_password'];

Тогда ты должен исправлять меняя эту линию:

$sql = "INSERT INTO usuarios (user_nombre,user_apellido,user_email,user_telefono,user_usuario,user_password) VALUES ('$username','$apellido','$email','$telefono','$usuario','$password')";

Поэтому:

$sql = "INSERT INTO usuarios (user_nombre,user_apellido,user_email,user_telefono,user_usuario,user_password) VALUES ('$nombre','$apellido','$email','$telefono','$usuario','$password')";

Ты должен проверять очень хорошо имена полей, порядок, и избегать менять переменные.

-------------------------------------------------------EDIT 2------------------------------------------------------

спасибо Adres,

ты был прав, именно эта переменная давала проблемы

решенный так:

      <?php include_once('header.php'); ?>
      <h1>Control Register Usuario</h1> 
      <?php 
       if (isset($_POST['user_nombre']) && isset($_POST['user_apellido']) && isset($_POST['user_email']) && isset($_POST['user_telefono']) && isset($_POST['user_usuario']) && isset($_POST['user_password']) && isset($_POST['user_token']))
       {      
       # Asigno a una variable asi:
    if (!empty($nombre =$_POST['user_nombre']));
      if (!empty($apellido =$_POST['user_apellido']));
      if (!empty($email =$_POST['user_email']));
      if (!empty($telefono =$_POST['user_telefono']));
      if (!empty($usuario =$_POST['user_usuario']));
      if (!empty($password =$_POST['user_password']));
      if (!empty($password =$_POST['user_token']));

в этом у меня есть проблемы

Как я делаю, чтобы помещать контроль?

костлявая, что, если пользователь уже существует..., что позволил мне менять имя пользователя или что-либо подобное

        # creí poder solucionar asi, pero no funciona
        if ($_GET['user_usuario']) == $_POST['user_usuario'])
        {
          echo "usuario ya existente"
         }

продолжение......

    //imprimo las variables para saber si llegan o no
    $nombre =   $_POST['user_nombre'];     echo "nombre: ";   echo $_POST ['user_nombre'];   echo "<br />";
    $apellido = $_POST['user_apellido'];   echo "apellido: "; echo $_POST ['user_apellido']; echo "<br />"; 
    $email =    $_POST['user_email'];      echo "email: ";    echo $_POST ['user_email'];    echo "<br />";
    $telefono = $_POST['user_telefono'];   echo "telefono: "; echo $_POST ['user_telefono']; echo "<br />"; 
    $usuario =  $_POST['user_usuario'];    echo "usuario: ";  echo $_POST ['user_usuario'];  echo "<br />"; 
    $password = $_POST['user_password'];   echo "password: "; echo $_POST ['user_password']; echo "<br />"; 
    $token = $_POST['user_token'];         echo "token: ";    echo $_POST ['user_token'];    echo "<br />";
    echo "Los Archivos se reciben perfectamente. <br />";

    $sql = "INSERT INTO usuarios (user_nombre,user_apellido,user_email,user_telefono,user_usuario,user_password) VALUES ('$nombre','$apellido','$email','$telefono','$usuario','$password')";
      $query = mysqli_query($coneccion, $sql);
       if (!$query) {
       echo "Error</br>";
       echo $sql;
       }
       else {
       echo "Success";
       }
       }
       mysqli_close($coneccion);
       ?>
       <?php include_once('footer.php'); ?>
0
ответ дан 03.12.2019, 22:12
  • 1
    Привет @Andres. ¡ Желанный в Стакк Оверфлов в espaГ±ol ! А следовательно я вижу, это уже está включенный в получающий ответ он делает má s 5 месяцев. С другой стороны, я не вижу ningú n ущерб в использовании Привет @Andres. ¡ Желанный в Стакк Оверфлов в espaГ±ol ! А следовательно я вижу, это уже está включенный в получающий ответ он делает má s 5 месяцев. С другой стороны, я не вижу ningú n ущерб в использовании [110] позволяя получать стоимость как из-за POST, так и из-за GET.REQUEST позволяя получать стоимость как из-за POST, так и из-за GET. – Mariano 11.11.2016, 08:29