我正在尝试设计具有私人聊天和群聊功能的数据库架构。这是我到目前为止所得到的:
所以 - 理论是,即使用户只是在一对一的私人聊天中,他们仍然会被分配一个“roomID”,他们发送的每条消息都指向那个room
。
要找出他们参与的所有房间,我可以从表中选择一个列表participants
来找出。
这没关系,但是我觉得这张room
桌子有点多余,因为我真的不需要房间名称,我可以省略它,只需使用participants
桌子并SELECT DISTINCT roomID FROM particpants
找出各个房间。
谁能向我解释一个更好的结构或为什么我应该保留房间桌子?
在IE开发人员(F12)控制台中,我设法让我的页面无错误地运行; 除了一个!
SCRIPT1002:语法错误
mypage.php,第1行第6个字符
我正在使用IE9.这是什么问题?
这是我的代码:
<!DOCTYPE html>
<head>
<script type='text/javascript' src='/files/jquery-1.7.2.min.js'></script>
<script type="text/javascript">
$(document).ready(function() {
$("#donateButton").click(function() {
alert('hey');
});
});
</script>
</head>
<body>
<a href="javascript:void();" id="donateButton">asdsadasd</a>
</body>
Run Code Online (Sandbox Code Playgroud)
当我点击#donateButton
一个错误产生.但是,当我改为时javascript:void()
,#
不再发生错误.为什么?
我有一个QR阅读器.当QR阅读器扫描时,我想监视它扫描的内容,但我遇到了一个奇怪的问题,因为我是Python的新手,我真的不知道它为什么会发生.好的,下面是两个看似(对我而言)相同的程序,除了行.当删除该行时,我会得到不同的结果(看似charset更改).我真的不明白为什么.
test2.py:
# -*- coding: utf-8 -*-
import pyHook
import pythoncom
import re
import webbrowser
chars = ""
def pressed_chars(event):
global chars
if event.Ascii:
char = chr(event.Ascii)
if event.Ascii == 3:
quit()
else:
chars += char
print chars
proc = pyHook.HookManager()
proc.KeyDown = pressed_chars
proc.HookKeyboard()
pythoncom.PumpMessages()
Run Code Online (Sandbox Code Playgroud)
使用以下内容扫描QR码时产生以下输出http://google.com
:
H
HT
HTT
HTTP
HTTP:
HTTP:?
HTTP:??
HTTP:??G
HTTP:??GO
HTTP:??GOO
HTTP:??GOOG
HTTP:??GOOGL
HTTP:??GOOGLE
HTTP:??GOOGLE>
HTTP:??GOOGLE>C
HTTP:??GOOGLE>CO
HTTP:??GOOGLE>COM
HTTP:??GOOGLE>COM
Run Code Online (Sandbox Code Playgroud)
现在test3.py:
# -*- coding: utf-8 -*-
import pyHook
import pythoncom
import re
import …
Run Code Online (Sandbox Code Playgroud) 可能重复:
你如何遍历$ _FILES数组?
由于某种原因阵列真的得到了我.我最终可以到达那里,但这个$ _FILES数组似乎对我不利.
我希望能够循环遍历$ _FILES,如下所示:
foreach($_FILES as $file)
{
echo $file['name'] . "<br>";
echo $file['type'] . "<br>";
echo $file['size'] . "<br>";
echo $file['error'] . "<br>";
}
Run Code Online (Sandbox Code Playgroud)
但显然,结构化的方式你不能这样做.所以我写了以下内容:
echo "<pre>";
$x=0;
$file = array();
foreach($_FILES['attachment']['name'] as $data)
{ $file[$x]=array();
array_push($file[$x],$data); $x++;
}
$x=0;
foreach($_FILES['attachment']['type'] as $data)
{ array_push($file[$x],$data); $x++;}
$x=0;
foreach($_FILES['attachment']['tmp_name'] as $data)
{ array_push($file[$x],$data); $x++;}
$x=0;
foreach($_FILES['attachment']['error'] as $data)
{ array_push($file[$x],$data); $x++;}
$x=0;
foreach($_FILES['attachment']['size'] as $data)
{ array_push($file[$x],$data); $x++;}
var_dump($file);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)
这看起来很长很啰嗦,但是我的思绪一直停留在如何正确地循环这个数组的不同部分以使其工作并循环我想要的方式.
肯定有更好的办法?
请帮忙!
我有以下代码:
$subject = "Test Email";
$from = "noreply@bob.com";
ini_set("sendmail_from", $from);
$message = "<html><body bgcolor=\"#DCEEFC\">
Hello<br><br>
This is a <b>test</b> email.
<br><br><hr>
<a href=\"\">Click Here</a>
<br><br><hr>
<br><br>
Thank you for your time,<br><br>
</body></html>";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= "From: " . $from . "\r\n";
mail($mail, $subject, $message, $headers);
Run Code Online (Sandbox Code Playgroud)
但是,当我向自己发送电子邮件时,我会在Outlook中看到所有代码.如果我将其发送给其他人,他们会看到HTML.如果我将它发送到我的hotmail,他们会看到HTML.
这是我的展望(2007)的问题,如果是,它是什么,或者我可以在电子邮件中做些什么来保证它正确显示?
请帮忙!
最近(我之前的问题)强调了我设计Web应用程序的方式并不理想.
考虑以下.我正在开发一个多用户网站,其中包含许多不同的部分,包括个人资料和论坛以及支持服务单.结构如下:
包含所有其他页面的主页面或*required_once*我们将其称为home.php.
在home.php中,首先加载的东西之一是router.php,它处理用户可能生成的每个$ _GET和$ _POST,并且每个表单和进程都通过一个名为$ data_process的主变量进行排序.Router.php本质上只是$ data_process的一个巨型switch()语句.这将解析所有数据并给出结果.
接下来包括header.php,它不仅会处理将要加载的页面的必要变量,还会设置标题并准确确定将在那里显示的内容,例如菜单,用户信息和有关页面的信息目前正在查看(即主页>支持>查看票证).
然后根据$ page变量加载页面.一个简单的包括.
然后footer.php,然后关闭.
因此创建了动态网站.我被告知这是一个名为@HorusKol的用户的不良做法.我对这个网站非常满意,因为它是我用过的最简化,易于编写的网站.如果这仍然是糟糕的代码设计?什么是完美的代码设计?
PS - 任何人都可以推荐任何易于阅读的书籍,为我解释PHP,MySQL和设计结构吗?
字符编码对我来说一直是个问题.当正确的使用时间时,我真的没有得到.
我现在使用的所有数据库都是使用utf8_general_ci设置的,因为这似乎是一个很好的"一般"开始.从那时起我在过去的五分钟里就知道它不区分大小写.这很有帮助.
但我的问题是何时使用utf8_encode
和utf8_decode
?据我现在所知,如果我从我网站上的表中输出一个表单,我需要utf8_encode()
在将其插入数据库之前输入该值.
然后,当我把它拉出来时,我需要utf8_decode它.是这样的吗?或者我错过了什么?
就是想 -
在调试PHP时 - 您如何输出测试数据以查看最新情况?我一直注意到我的PHP回声测试很多都搞砸了我的CSS.有没有人有一个很好的清洁方法来看到结果而不会搞乱网站本身?
仅使用 PHP,是否可以检测页面是否是从特定设备加载的?说,如果只有我的 iPhone 正在加载页面,没有其他人的,我希望页面有不同的反应?
到目前为止,我唯一的解决方案是将 $_SERVER['REMOTE_PORT' 与 $_SERVER['HTTP_USER_AGENT'] 结合使用来验证 iPhone,但这并不能确保特定的iPhone..
我只是想让我的多部分电子邮件用 base64 编码并通过 swiftmail 发送。这是我到目前为止的代码:
$message = Swift_Message::newInstance("Email Template Test")
->setBoundary($boundary)
->setFrom(array('no-reply@domain.net' => 'Mailer Service'))
->setTo(array("a@d.com","a@b.com"))
->setBody($plaintext)
->addPart($htmlmail,"text/html");
$headers = $message->getHeaders();
$headers->addTextHeader('Content-Transfer-Encoding','base64');
$contenttype = $message->getHeaders()->get('Content-Type');
$contenttype->setValue('multipart/alternative');
Run Code Online (Sandbox Code Playgroud)
据我从文档中看到(我不太清楚),Content-Transfer-Encoding
标题是一个文本标题,所以我应该能够像上面那样设置它。在此之前,我运行了所有当前标题的输出,并且Content-Transfer-Encoding
没有在那里列出,因此需要设置它。因此为什么在上面的代码中我试图设置它。
输出很好,我收到了电子邮件,它们可以工作,但是当我查看源代码时,它们没有被编码。我已尝试使用上述相同的代码,但更改$plaintext
为base64_encode($plaintext)
,但刚刚收到编码的消息。怎么做的>