我正在通過jQuery $.post
函數調用一個使用外部php腳本(do.php,say)的php(index.php,say)編寫一個頁面。無法通過jQuery從外部php腳本訪問php cookie
我傳遞一個名爲doit的post變量,它決定腳本將執行的操作。例如,如果doit爲1,它將爲用戶分配一個唯一的ID並將其存儲在一個名爲uid的cookie中,並使用setcookie()函數。如果doit爲2,則它將另一個稱爲msg的發佈數據輸入到表中,它通過名稱t + uid創建。例如。如果uid是14,它將創建一個名爲t14的表並將msg放入其中。
我用下面的代碼行設置cookie:
setcookie("uid", $val, time()+3600, '/');
而此行的代碼來創建表:
$q = "create table t".$_COOKIE["uid"]." (sl int primary key auto_increment, msg varchar(1000), seen int);";
mysql_query($q);
現在我的問題是這樣的: SQL查詢正確執行,但我沒有從cookie變量中獲得任何價值。創建的表格簡單地命名爲t。
我的問題是: 我在做什麼錯?我應該怎麼做才能正確地獲得一個值?
P.S:當我檢查我的頁面設置的cookie時,我在那裏看到cookie。我嘗試清除cookie並再次嘗試,但每次cookie都設置正確,但不是表格。
還有另一個問題。 sql查詢只有在我刷新頁面後纔會執行。例如,我有另一個名爲uu的表,其中存儲當前用戶的uid和其他信息。該表中的最後一行包含前面的uid,而不是現在的那個。如果uid這次是10,並且我刷新頁面並將uid設置爲11,那麼uid = 10的信息會在表uu中更新。
任何幫助都非常感謝:-)謝謝。
您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068)並應使用[現代替代](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin 2013-03-25 14:18:21
這裏有很多問題,但爲什麼要爲每個用戶創建一個新表?更糟糕的是,這是從一個可操作性很大的cookie設置的。最好有一個帶有用戶標識,消息標識,消息文本,時間戳等字段的「消息」表。另外,您不能將POST存儲在cookie中嗎?一切取決於你的應用程序設計,但聽起來像需要一些更多的想法 – okyanet 2013-03-25 14:29:40
我知道這些漏洞。重點不在於構建完善而安全的網站,而是要學習mySQL和PHP的基礎知識。我是這兩個人的小白菜。無論如何感謝信息;我會記住:-) @Quentin。 – rktcool 2013-03-26 16:58:51