0
Ich habe versucht, Daten an die Datenbank mit Ajax, aber ich bleibe ich stecken.Einfügen von Daten in die Datenbank mit Jquery/Ajax & PHP
Ich nahm einfachen Code, um es zu testen, aber es hat nicht funktioniert, egal was ich mache.
HTML/Ajax-Code
<?php include("osb.php");?>
<script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!--we have our html form here where user information will be entered-->
<form action='osb.php' method='post' border='0' id="form1">
<div id = "container"> <br>
<label>Name: </label> <input type='text' id="name" name='name' /><br> <br>
<label>E-mail: </label> <input type='text' id="email" name='email' /><br><br><br>
<input type='hidden' name='action' value='create' />
<input type='button' value='Submit' id="submit" />
<input type="reset" value="Reset" class="reset-org">
<div>
</form>
<script type = "text/javascript">
$(function(){
$('#submit').click(function(){
$('#container').append('<img src = "img/ajax/ajax-loader.gif" alt="Currently loading" id = "loading" />');
$.ajax({
url: 'osb.php',
type: 'POST',
data: $('#form1').serialize(),
success: function(result){
$('#response').remove();
$('#container').append('<p id = "response">' + result + '</p>');
$('#loading').fadeOut(500);
}
});
});
});
</script>
PHP CODE
<?php
//set connection variables
$host = "localhost";
$username = "";
$password = "";
$db_name = "";
//connect to mysql server
$mysqli = new mysqli($host, $username, $password, $db_name);
//check if any connection error was encountered
if(mysqli_connect_errno()) {
echo "Error: Could not connect to database.";
exit;
}
$action = isset($_POST['action']) ? $_POST['action'] : "";
if($action=='create'){ //the the user submitted the form
$data=$_POST['serialize'];
$name=$data['name']; //access data like this
$email=$data['email']; //access data like this
//include database connection
//our insert query query
//$mysqli->real_escape_string() function helps us prevent attacks such as SQL injection
$query = "insert into 'user' VALUES ($name,$email)";
mysqli_query($mysqli, $query);
//execute the query
if($mysqli ->query($query)) {
//if saving success
echo "User was created.";
}else{
//if unable to create new record
echo "Database Error: Unable to create record.";
}
//close database connection
$mysqli->close();
}
?>
ich diesen Fehler jedes Mal stelle ich die Form:
Undefined index: serialize in C:\xampp\htdocs\php1\osb.php on line 29
Database Error: Unable to create record.
Hinweis: Nirgendwo in Ihrem 'form' tun Sie ein Formular-Element mit dem Namen' serialize'. – David
Wie kommt es, dass Sie die '// $ mysqli-> real_escape_string() - Funktion haben, die uns hilft, Angriffe wie den SQL-Injection-Kommentar zu verhindern, aber Sie verwenden ihn nicht, um die Injektion in Ihre Variablen zu verhindern $ query = insert in Benutzer 'VALUES ($ name, $ email) ";'? In jedem Fall sollten Sie beim Umgang mit Benutzereingaben Parameter binden. – Rasclatt
Warum "include()' 'osb.php' und auch POST? – GrumpyCrouton