#php #mysql #mysqli
#php #mysql #mysqli
Вопрос:
У меня возникли проблемы с записью данных на страницу с формой. Ниже показано, как это выглядит, а затем часть кода, который я использую:
<section>
<form method="POST" action="/teste/registro.php">
<div class="container">
<div class="form-group">
<label for="nome">Nome</label>
<input type="text" name="nome" id="nome" placeholder="nome completo"class="form-control" required>
</div>
<div class="form-group">
<label for="nome">Email</label>
<input type="email" name="email" id="email" placeholder="nome@email.com"class="form-control" required>
</div>
<div class="form-group">
<label for="telefone">Telefone</label>
<input type="tel" name="telefone" id="telefone" placeholder="telefone residencial" class="form-control" >
</div>
<div class="form-group">
<label for="telefone">Celular</label>
<input type="tel" pattern="^d{2}-d{5}-d{4}$" name="celular" id="telefone" placeholder="telefone celular xx-xxxxx-xxxx" class="form-control" required>
</div>
<div class="form-group">
<label for="endereco">Endereço</label>
<textarea name="endereco" rows="5" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="assunto">Assunto</label>
<input type="text" name="assunto" id="assunto" placeholder="assunto"class="form-control" required>
</div>
<div class="form-group">
<label for="mensagem">Mensagem</label>
<textarea name="mensagem" rows="5" class="form-control"></textarea>
</div>
<button type="submit" class="btn btn-primary">Enviar</button>
</div>
</form>
</section>
<footer>
<footer>
в этой части я показываю свою связь с локальным bank:conexao.php
<?php
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "contato";
//criando a conexao com o banco
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
?>
Я создал страницу для сохранения данных формы следующим образом:
<?php
include_once('conexao.php');
$nome = $_POST['nome'];
$email =$_POST['email'];
$telefone = $_POST['telefone'];
$celular = $_POST['celular'];
$endereco = $_POST['endereco'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$result_msg_contato = "INSERT INTO tbl_contato(nome, email, telefone, celular, endereco, assunto, mensagem, criada) VALUES ('$nome', '$email', '$telefone', '$celular', '$endereco', '$assunto', '$mensagem', NOW()) ";
$resultado_msg_contato = mysqli_query($conn,$result_msg_contato);
?>
после того, как вы введете данные из формы и нажмете «Отправить», появится белый экран:
[]
Комментарии:
1. вы проверяли phpmyadmin, есть ли там введенные вами данные?
2. phpMyAdmin — это клиентское приложение для базы данных. Похоже, вы пишете свой собственный клиент на PHP, поэтому я не понимаю, какое отношение к этому имеет phpMyAdmin.
3. Я не вижу, что вы опубликовали с ошибкой, если только нет синтаксических ошибок / ограничений, о которых мы не знаем.
mysqli_error($conn)
Здесь вам помогут отчеты об ошибках и запросы. Если это ничего не показывает, то это означает, что вы пытаетесь получить доступ к asfile:///
, а не к thanhttp://localhost
, и / или у вас не установлен веб-сервер / php / mysql. Кроме того, если есть какие-либо символы, введенные как апострофы, то ваш запрос не удался из-за этого.4. Когда вы нажмете «Отправить», посмотрите на свой исходный код html и сообщите нам, что вы видите. Вам также был дан ответ и другие комментарии. До тех пор, пока вы не вернетесь сюда, мы не будем знать, что происходит; удачи с этим.
5. Спецификация, SQL-инъекция. Я желаю вам
O'Maley
никогда не регистрироваться, используя ваш пользовательский интерфейс.
Ответ №1:
Название темы вводит в заблуждение, поскольку это не имеет никакого отношения к phpMyAdmin. phpMyAdmin — это просто инструмент, графический интерфейс, для MYSQL.
Скорее всего, проблема связана с INSERT
запросом, но не могу определить, поскольку вы не используете отчеты об ошибках.
Попробуйте выполнить следующее:
<?php
$link = mysqli_connect('localhost', 'root', '', 'contato');
/* check connection */
if (!$link) {
printf("Connect failed: %sn", mysqli_connect_error());
exit();
}
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$celular = $_POST['celular'];
$endereco = $_POST['endereco'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$stmt = mysqli_prepare($link, "INSERT INTO tbl_contato (`nome`, `email`, `telefone`, `celular`, `endereco`, `assunto`, `mensagem`, `criada`) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())");
mysqli_stmt_bind_param($stmt, 'sssssssd', $nome, $email, $telefone, $celular, $endereco, $assunto, $mensagem);
/* execute prepared statement */
mysqli_stmt_execute($stmt);
printf("%d Row inserted.n", mysqli_stmt_affected_rows($stmt));
/* close statement and connection */
mysqli_stmt_close($stmt);
Комментарии:
1. Я сделаю то, что вы дали мне для решения, скажу вам больше, я благодарю вас за вашу помощь.
2. Рад вам помочь! Не могли бы вы отметить этот ответ как принятый, если он решил вашу проблему? 🙂
3. Я скопировал код и ничего не изменил, и появилась ошибка 404 Not Found, запрошенный URL /teste/teste.ico/salvaregistro.php не был найден на этом сервере. Сервер Apache / 2.4.18 (Win64) PHP / 5.6.19 на локальном хост-порту 80, и в банке ничего не было записано