2013-09-17 3 views
0

У меня проблема с моим сайтом. Я хочу создать страницу в php. на этой странице я хочу, чтобы пользователь приглашал пользователя. , но у меня есть ошибка. Я не знаю, что делать. thx все.Ошибка SQL: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашему

ошибка: Ошибка SQL: у вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1.

и в заголовке есть база данных подключений. это не моя проблема.

мой код:

<?php 
include('header.php'); 
$n1 = rand(1, 9); 
$n2 = rand(1, 9); 

if(isset($_POST['send'])) { 
    $nr1 = base64_decode($_POST['nr1']); 
    $nr2 = base64_decode($_POST['nr2']); 
    $emailinvite = $db->EscapeString($_POST['email']); 
    $rec = $db->FetchArray($db->Query("SELECT id,login FROM `users` WHERE `login`='".$data['login']."'")); 

    if($nr1 + $nr2 != $_POST['captcha']){ 
     $mesaj = '<div class="error">pliz try again.</div>'; 
    }elseif($_POST['email'] == ""){ 
     $mesaj = '<div class="error">empty email</div>'; 
    }elseif ($db->GetNumRows($db->Query("SELECT id FROM `users` WHERE `email`='".$emailinvite."'")) > 0) { 
     $mesaj = '<div class="error">your friend register!</div>'; 
    }else{ 
     $newhash = rand(1000000,9999999); 
     $db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'"); 

      $error = 0; 

     $subject ="invite to site"; 
     $message="hello 

the user {$rec['login']} want to invite you to : 
http://www.like2hits.net 

click here: 
{$site['site_url']}/register.php?hash={$newhash} 

thx!"; 
     $header="{$site['site_email']} <{$site['site_email']}>"; 
     $send_contact=mail($emailinvite,$subject,$message,$header); 
     $mesaj = "<div class=\"success\">thx you!</div>"; 
    } 
}?> 
<div id="login"> 
      <div class="top"> 
        <h1>invite friend</h1> 
      </div> 
      <div class="content"><div class="msg"><?echo $mesaj;?></div> 
      <form id="form" method="post"> 
       <input type="hidden" name="nr1" value="<? echo base64_encode($n1); ?>" /> 
       <input type="hidden" name="nr2" value="<? echo base64_encode($n2); ?>" /> 
       <fieldset> 

         <label>email of your friend</label> 
        <p><span class="fontawesome-user"></span> 
         <input name="email" type="email" value="" required="required" /> 
        </p> 

         <label><?=($n1." + ".$n2." = ?")?></label> 
        <p><span class="fontawesome-user"></span> 
         <input name="captcha" type="text" value="" required="required" /> 
        </p> 
        <p style="text-align: center; padding-top: 15px;"> 
        <input type="submit" name="send" value="invite user" /> 
        </p> 
       </fieldset> 
      </form> 
     </div> 
    </div> 
<? 
include('footer.php');?> 
+2

Какой SQL заявление дает ошибку? – Fluffeh

+0

Также, пожалуйста, напишите полное сообщение об ошибке. –

+1

@OmerAsher. , , В общем, распечатка строки с SQL после замены переменных устраняет эти проблемы примерно в 95% случаев. –

ответ

-1

Я думаю, что ваши котировки дают ошибки, попробуйте следующее:

$rec = $db->FetchArray($db->Query("SELECT id,login FROM 'users' WHERE 'login'='".$data['login']."'")); 

И:

$db->GetNumRows($db->Query("SELECT id FROM 'users' WHERE 'email'='".$emailinvite."'")) 

И:

$db->Query("INSERT INTO 'inviteuser' (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'"); 

Это зависит от того, какая версия mysql у вас есть, но в моей версии это: `` цитаты дают мне ошибку. Так я использую ''

+1

цитаты предназначены для строк. – Mihai

+0

'символ предназначен для включения имени поля и имени таблицы, 'для строки данных. –

3

Распространенная ошибка опечатка:

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) 
values('".$data['login']."','".$emailinvite."','".$newhash."'"); 
                  //^Closing Bracket 
                   Missing 

Должно быть:

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) 
values('".$data['login']."','".$emailinvite."','".$newhash."')"); 
                  //^Closing Bracket 
+0

thx very muchhhhh! –

2

В

$db->Query("INSERT INTO `inviteuser` (user,emailinvite,hash) values('".$data['login']."','".$emailinvite."','".$newhash."'"); 

Вы пропускаете )

+0

ow oops nvm. Кто-то уже ответил на это – Loko

Смежные вопросы

 Смежные вопросы