его довольно расстраивает и уверен, что это легко исправить. насколько я могу сказать, что мой код – это место, из-за которого я полагаю, что есть проблема с сервером. Я создал БД, и я могу вставлять данные в таблицу из командной строки. если это помогает, я использую WAMP.
<?php $host="localhost"; // Host name $username="root"; // Mysql username $password="permission"; // Mysql password $db_name="login"; // Database name $tbl_name="members"; // Table name // Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // username and password sent from form $myusername=$_POST['username']; $mypassword=$_POST['password']; $myfname=$_POST['fname']; $mylname=$_POST['lname']; $myemail=$_POST['email']; // To protect MySQL injection $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM $tbl_name WHERE username='$myusername'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // username taken echo "Username already taken"; exit(); } //protection against sql injection if (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map(stripslashes_deep, $value) : stripslashes($value) ; return $value; } $_POST = array_map(stripslashes_deep, $_POST); $_GET = array_map(stripslashes_deep, $_GET); $_COOKIE = array_map(stripslashes_deep, $_COOKIE); $_REQUEST = array_map(stripslashes_deep, $_REQUEST); } //insert form into DB members 'INSERT INTO members SET username="' . $myusername . '", password="' . $mypassword . '", email="' . $myemail . '", fname="' . $myfname . '", lname="' . $mylname . '",'; session_register("myusername"); session_register("mypassword"); header("location:registersuccess.html"); ?>
Помимо проблемы с внедрением SQL, у вас есть ненужная запятая.
Изменить:
lname="' . $mylname . '",';
чтобы:
lname="' . $mylname . '"';
Это может быть потому, что у вас есть дополнительная запятая: lname="' . $mylname . '",';
вероятно, должно быть lname="' . $mylname.'"';
Кроме того, если вы не знаете, как выполнить запрос, это выглядит так:
$link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* Create table doesn't return a resultset */ if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) { printf("Table myCity successfully created.\n"); }