У меня очень простая форма, которая отправляет данные на другую страницу, чтобы проверить ее до того, как вставить ее в базу данных. Он отлично работает в MAMP в локальной среде, но на сервере он не будет вставлять какие-либо данные. Кажется, что не нужно отправлять какие-либо данные из-за того, что я удаляю isset проверяет, запускает ли она программу, но вставляет пустое поле в базу данных.Форма отправляет данные локально, но не удаленно
Я не понимаю, почему это не сработает. Безопасность не является проблемой.
HTML
<form method="post" action="input.php">
<tbody>
<tr>
<td>Nombre</td>
<td><input type="text" class="form-control" value="" name="nombre" id="nombre"></td>
</tr>
<tr>
<td>Apellido</td>
<td><input type="text" class="form-control" value="" name="apellido" id="apellido"></td>
</tr>
<tr >
<td>Correo</td>
<td><input type="text" class="form-control" value="" name="correo" id="correo"></td>
</tr>
<tr >
<td>Telefono</td>
<td><input type="text" class="form-control" value="" name="telefono" id="telefono"></td>
</tr>
<tr>
<td>Nivel de interés</td>
<td><select name="nivel" id="nivel"><option value="none">Elige uno</option><option value="Licenciatura">Licenciatura</option><option value="Maestria">Maestría</option><option value="Doctorado">Doctorado</option><option value="Curso de ingles">Curso de inglés</option></select></td>
</tr>
<tr >
<td>Universidad</td>
<td><input type="text" class="form-control" value="" name="universidad" id="universidad"></td>
</tr>
<tr >
<td>Hoy</td>
<td><input type="text" class="form-control" value="<?php echo date("Y-m-d"); ?>" name="fecha" id="fecha" readonly></td>
</tr>
<tr >
<td></td>
<td><input class="btn btn-default" type="submit" name="submit" id="submit" value="Guardar"></td>
</tr>
</tbody>
</form>
PHP
if(isset($_POST['submit']))
{
$nombre = mysql_real_escape_string(htmlspecialchars($_POST['nombre']));
$apellido = mysql_real_escape_string(htmlspecialchars($_POST['apellido']));
$correo = mysql_real_escape_string(htmlspecialchars($_POST['correo']));
$telefono = mysql_real_escape_string(htmlspecialchars($_POST['telefono']));
$nivel = mysql_real_escape_string(htmlspecialchars($_POST['nivel']));
$universidad = mysql_real_escape_string(htmlspecialchars($_POST['universidad']));
$fecha = mysql_real_escape_string(htmlspecialchars($_POST['fecha']));
if($nombre == '' || $apellido == '' || $correo == '' || $telefono == '' || $nivel == '' || $universidad == '' || $fecha == '') {
header('Location: fallo.php');
} else {
$db = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$data = $db->prepare("INSERT INTO ferias (nombre, apellido, correo, telefono, nivel, universidad, fecha) VALUES (:nombre, :apellido, :correo, :telefono, :nivel, :universidad, :fecha)");
$data->execute(array(
'nombre' => $nombre,
'apellido' => $apellido,
'correo' => $correo,
'telefono' =>$telefono,
'nivel' => $nivel,
'universidad' => $universidad,
'fecha' => $fecha));
}
}
Использовать 'PDO :: quote()' вместо устаревшего (и в вашем случае совершенно не нужно, потому что вы используете подготовленный оператор) 'mysql_real_escape_string()'. – nietonfir
Ваш сайт на сайте probaly содержит сообщения об ошибках. Вам нужно будет посмотреть журналы сервера или поместить печать или другой оператор после «$ data-> execute», чтобы увидеть, что на самом деле происходит. – jeff
Возможно, проблема с версией PHP. Вы уверены, что у вас такая же версия локально и на сервере? – zzxx53