嗨,我已經看到另一篇文章相似,但似乎不符合我的問題。PHP Mysqli INSERT錯誤,意外''
我寫一個註冊腳本的網站,並已得到了將數據輸入數據庫的最後一點,但我得到這個錯誤...
Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\fastfood\app\register.php on line 46
我看到的是說,有一個意想不到的''
,但我不能看到。我需要所有我不喜歡的人?
如果有一個人可以看看這個,讓我知道我在哪裏出了問題,將不勝感激。
我有兩個腳本(以及三個IF你算我的數據庫配置)一個包含了所有我打電話的功能。
<?php
require_once "config.php";
function dbconnect(){
global $dbhost,$dbuser,$dbpass,$connectdb;
if (!$connectdb){
echo "failed to connect to database" . mysqli_connect_error();
}
}
function dbdisconnect(){
global $connectdb;
if(mysqli_close($connectdb)){
}else{
echo "an error occured while attempting to close the connection to the database";
}
}
//notworking
function getCategories(){
global $connectdb;
$query = mysqli_query($connectdb,"SELECT category_name FROM categories");
while ($result=mysqli_fetch_array($query)){
$options=$result['catergory_name'];
echo "$options";
}
}
function randStrGen($len){
$result = "";
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$charArray = str_split($chars);
for($i = 0; $i < $len; $i++){
$randItem = array_rand($charArray);
$result .= "".$charArray[$randItem];
}
return $result;
}
function mysqlclean($clean){
global $connectdb;
mysqli_real_escape_string($connectdb, $clean);
return $clean;
}
function checkUsername($a){
global $connectdb;
$query = $connectdb->query("SELECT username FROM users WHERE username = '$a'");
$result = $query->num_rows;
if ($result !=0){
return true;
}else{
return false;
}
}
function verify($a,$b){
if ($a == $b){
return true;
}else{
return false;
}
}
function encrypt($a,$b){
$encrPass = hash('sha256',$b.$a);
return $encrPass;
}
?>
和主要註冊腳本:
<html>
<head></head>
<body>
<?php
require'assets/functions.php';
$errors = array();
$cleanData =array();
//fetch data from form and add to array
if (isset($_POST['submit'])){
$data = array('uName'=>$_POST['uName'],
'pass'=>$_POST['pass'],
'verPass'=>$_POST['verPass'],
'fName'=>$_POST['fName'],
'lName'=>$_POST['lName'],
'dob'=>$_POST['dob'],
'email'=>$_POST['email'],
'verEmail'=>$_POST['verEmail'],
'address'=>$_POST['address'],
'city'=>$_POST['city'],
'suburb'=>$_POST['suburb'],
'country'=>$_POST['country'],
);
}
//loop form data and escape
foreach ($data as $key => $value) {
$cleanData[$key] = mysqlclean($value);
}
//check if user exists, returns true if not unique
if (checkUsername($cleanData['uName'])){
$errors['uName'] = "error";
}
//check if password matches
if (verify($data['pass'],$data['verPass'])){
}else{$errors['pass'] = "error";}
//check if email matches
if (verify($data['email'],$data['verEmail'])){
}else{$errors['email'] = "error";}
if (empty($errors)){
$emailVerStr = randStrGen(100);
$uniqueKey = randStrGen(100);
$encrPass = encrypt($cleanData['pass'],$uniqueKey);
$query = $connectdb->query("INSERT INTO users(username,fName,lName,dob,emailAddress,address,city,suburb,country,password,emailVerStr,uniqueKey) VALUES('$cleanData['uName']','$cleanData['fName']','$cleanData['lName']','$cleanData['dob']','$cleanData['email']','$cleanData['address']','$cleanData['city']','$cleanData['suburb']','$cleanData['country']','$encrPass','$emailVerStr','$uniqueKey')");
if (!$query){
echo 'an error has occured!' mysqli_error();
}
}
echo '<pre>',print_r($data,true),'</pre>' ;
echo '<pre>',print_r($errors,true),'</pre>' ;
echo '<pre>',print_r($cleanData,true),'</pre>' ;
?>
<div id=register>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php if (array_key_exists('username', $errors)){
echo '<span>Username</span><input type="text" name="uName" value="'. $data['uName'] .'" placeholder="desired username" autofocus required><span>username taken</span></br>';
}else{
echo '<span>Username</span><input type="text" name="uName" value="'. $data['uName'] .'" placeholder="desired username" autofocus required></br>';
}
if (array_key_exists('pass', $errors)){
echo '<span>Password</span><input type="password" name="pass" value="" placeholder="enter password"required><span class=error>Passwords did not match</span></br>';
}else{
echo '<span>Password</span><input type="password" name="pass" value="'. $data['uName'] .'" placeholder="enter password"required></br>';
}
echo '<input type="password" name="verPass" value="'. $data['verPass'] .'" placeholder="re-enter password"required></br>
<span>First Name</span><input type="text" name="fName" value="'. $data['fName'] .'" required></br>
<span>Last Name</span><input type="text" name="lName" value="'. $data['lName'] .'" required></br>
<span>D.O.B</span><input type="date" name="dob" required></br>';
if(array_key_exists('email', $errors)){
echo '<span>Email</span><input type="email" name="email" value="'. $data['email'] .'" required><span class=error>Email did not match</span></br>';
}else{
echo '<span>Email</span><input type="email" name="email" value="'. $data['email'] .'" required></br>';
}
echo '<input type="email" name="verEmail" value="'. $data['email'] .'" required></br>
<span>Address</span><input type="text" name="address" value="'. $data['address'] .'" required></br>
<span>City</span><input type="text" name="city" value="'. $data['city'] .'" required></br>
<span>Suburb</span><input type="text" name="suburb" value="'. $data['suburb'] .'" required></br>
<span>Country</span><input type="text" name="country" value="New Zealand" readonly></br>
<input type="submit" name="submit" value="Register">
</form>';
?>
</div>
</body>
</html>
只是爲了節省您在這裏有一段時間是給我的悲傷
if (empty($errors)){
$emailVerStr = randStrGen(100);
$uniqueKey = randStrGen(100);
$encrPass = encrypt($cleanData['pass'],$uniqueKey);
$query = $connectdb->query("INSERT INTO users(username,fName,lName,dob,emailAddress,address,city,suburb,country,password,emailVerStr,uniqueKey) VALUES('$cleanData['uName']','$cleanData['fName']','$cleanData['lName']','$cleanData['dob']','$cleanData['email']','$cleanData['address']','$cleanData['city']','$cleanData['suburb']','$cleanData['country']','$encrPass','$emailVerStr','$uniqueKey')");
if (!$query){
echo 'an error has occured!' mysqli_error();
}
}
我感謝所有幫助的SQL查詢。
請包括整個錯誤,它通常會告訴你什麼行,發生在什麼文件中的錯誤。 – Epodax
讓你這樣的查詢$查詢= $ connectdb->查詢(「INSERT INTO的用戶(用戶名,FNAME,LNAME,出生日期,EMAILADDRESS,地址,城市,郊區,鄉村,密碼,emailVerStr,唯一鍵) VALUES( '{$ cleanData [' UNAME ']}', '{$ cleanData [' FNAME ']}', '{$ cleanData [' L-NAME ']}', '{$ cleanData [' DOB ']}', '{$ cleanData [' 電子郵件」 ]} ' '{$ cleanData [' 地址 ']}', '{$ cleanData [' 城市 ']}','{$ CL eanData [ '郊區']}」, '{$ cleanData [' 國家 ']}', '$ encrPass', '$ emailVerStr', '$唯一鍵')「); – ManiMuthuPandi
喜對不起這裏是完整的錯誤.. 解析錯誤:語法錯誤,意想不到 ''(T_ENCAPSED_AND_WHITESPACE),期望標識符(T_STRING)或可變(T_VARIABLE)或數字(T_NUM_STRING)在C:\瓦帕\ WWW \快餐\應用\ register.php在線46. 它是在$查詢行manimuthu拿起我會給他的建議一試。 謝謝 – Codecowboy