2011-09-09 10 views
0

これは、ユーザーが読んでいる記事を「保存」するためのものです。私は数日前にSOから抜粋したコードを手に入れましたが、動作させることができません。ユーザーが現在表示しているページからURLを取得し、そのURLをMySQL DBに挿入して、Webサイトのお気に入りセクションの下にあるクライアントにURLを出力します。何か案は?スクリプトをブックマークしますか?

以下のコードを試してみると、T文字列エラーが発生します。 curPageURL()関数呼び出しのためのPHPタグを閉じるに追加されました

Index.php 
    <?php  
    function curPageURL() {  
    $pageURL = 'http'; 
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; 
     if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER ["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 

    } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"; 
    } 
    return $pageURL; 
    } 

?> 

    <html> 
    <body> 
    <form action="storeBookmark.php?url=<?php echo curPageURL();" method="GET"> <input type="submit" value="Submit" /> 
    </form> 
    </body> 
    </html> 

    <?php  
    $url = $_GET['url'];  

    $dbc = mysqli_connect('xxxx', 'xxxx', 'xxxx', 'xxxx')  
    or die('Error connecting to MySQL server');  

    $query = "INSERT INTO xxxx (url)". "VALUES('$url')";  

$result = mysqli_query($dbc, $query) or die('Error.'); 

mysqli_close($dbc); 
?> 
+0

T_STRINGにはどのようなエラーがありますか?どの行? –

+0

フォームaction = "storeboookphp ...... –

+0

line 17 ...私はその行でt文字列エラーを受け取り続けます –

答えて

1
<form action="storeBookmark.php?url=<?php echo curPageURL();?>" method="GET"> <input type="submit" value="Submit" /> 

また、非正規化されたユーザーデータをデータベースに格納しないでください。 mysqliを使用しているので、prepared statementを使用する必要があります。

<?php 

$link = mysqli_connect('xxxx', 'xxxx', 'xxxx', 'xxxx') or die('Error connecting to MySQL server'); 

$url = $_GET['url']; 

/* create a prepared statement */ 
if ($stmt = mysqli_prepare($link, 'INSERT INTO table1 (url) VALUES(?)')) { 

    /* bind parameters for markers */ 
    mysqli_stmt_bind_param($stmt, "s", $url); 

    /* execute query */ 
    mysqli_stmt_execute($stmt); 

    /* close statement */ 
    mysqli_stmt_close($stmt); 
} 
関連する問題