0

私のサイトに問題があります。PHPでページを作りたいです。このページでは、ユーザーがユーザーを招待したいと考えています。しかし、私はエラーがあります。どうすればいいのかわからない。thxすべて。

エラー: SQL エラー: SQL 構文にエラーがあります。1 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

ヘッダーには接続データベースがあります。それは私の問題ではありません。

私のコード:

<?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');?>
4

3 に答える 3

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 
于 2013-09-17T10:51:04.967 に答える
2

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

あなたは欠けています)

于 2013-09-17T11:31:35.933 に答える
-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 のバージョンによって異なりますが、私のバージョンでは、 `` 引用符でエラーが発生します。だから私は「」を使います

于 2013-09-17T10:49:46.113 に答える