我在共享主机上有Cpanel,Apache,PHP由fastcgi运行.PHP存储错误日志在哪里?
有没有其他方法可以在共享主机环境中找到错误日志,而不必通过整个站点结构来查找error_log文件?
我可以访问php.ini(我使用的是PHP版本5.2.16).
我有一个注册页面,基本上我需要将数据插入到4个表中.我是PDO的新手,对某些事感到困惑.
基本上,如果任何插入失败,我不希望任何添加到数据库的东西,这似乎很简单.
我的困惑是,我需要先在我的users表中插入用户的用户名,电子邮件,密码等,这样我就可以得到(不确定如何)使用PDO的MySQL给我的用户(由mysql自动递增).我需要用户uid MySQL为其他表提供了我的用户,因为其他表需要uid所以所有内容都正确链接在一起.我的表是InnoDB,我有外键从users_profiles(user_uid),users_status(user_uid),users_roles(user_uid)到users.user_uid,所以它们都链接在一起.
但同时我想确保如果例如在users表中插入数据之后(因此我可以获得MySQL给用户的uid),如果任何其他插入失败,它将删除插入users表中的数据.
我认为我展示我的代码是最好的; 我已经注释掉了代码,并在代码中进行了解释,这可能使它更容易理解.
// Begin our transaction, we need to insert data into 4 tables:
// users, users_status, users_roles, users_profiles
// connect to database
$dbh = sql_con();
// begin transaction
$dbh->beginTransaction();
try {
// this query inserts data into the `users` table
$stmt = $dbh->prepare('
INSERT INTO `users`
(users_status, user_login, user_pass, user_email, user_registered)
VALUES
(?, ?, ?, ?, NOW())');
$stmt->bindParam(1, $userstatus, PDO::PARAM_STR);
$stmt->bindParam(2, $username, PDO::PARAM_STR);
$stmt->bindParam(3, $HashedPassword, PDO::PARAM_STR);
$stmt->bindParam(4, $email, …Run Code Online (Sandbox Code Playgroud) 在我的.htaccess中,我有以下内容:
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
<Files .htaccess>
order allow,deny
deny from all
</Files>
Run Code Online (Sandbox Code Playgroud)
现在,我只是愚蠢还是错了?我在网上查看并在Apache文档中看不清楚limit get post put delete但是我认为无论它在做什么都说要允许它再允许它再次拒绝?它对我来说没有意义,我不确定是否应该从.htaccess中删除它,或者如果错误则更正它?我想第三个意味着拒绝访问.htaccess文件,但是这个顺序允许然后deny似乎首先允许然后立即拒绝.
可能重复:
PhpMailer与Swiftmailer?
我一直使用PHP的内置mail()功能,它一直对我有用,并且完成了我想要的工作.
现在有些人可能会想"为什么要修复一些没有破坏的东西?".
如果有人要求,我对这些问题的答案是:
我之前从未使用过框架,如果它被归类为它们或者它们被称为我不知道的库.
我想开始使用一个并查看文档,两者看起来都很容易使用.
当我在我的网站中实现新功能时,我的网站更多地依赖于发送电子邮件等,这意味着PHP的mail()功能不再适用于工作.
在处理附件,HTML和文本版本等高级内容时,它们会更容易使用; 否则使用PHP的mail()功能将是困难或不可能的.
我从来没有使用过SMTP,我已经调查过了,我可以看到我可以在我的托管包中使用它和SSL.经过大量阅读后,似乎不仅SMTP更可靠,使用更广泛,电子邮件不太可能被标记为垃圾邮件,使用任一框架都可以提高性能,可靠性和安全性,因为它使用SMTP和SSL.
现在我不确定使用SMTP的其他好处是什么,也许有人可以给我更多理由为什么它更好?我希望找到有关SMTP好处的更多信息.
我看了两个文档看了他们都提供的功能,搜索谷歌PHPMailer与SwiftMailer,但没有找到任何说明为什么一个比另一个好.
有没有人有任何经验?
一个人比另一个人有更多的好处吗?
你会说一个比另一个好吗?
我确实读过很多人说PHPMailer是一个死的项目,但那些帖子相对较旧.看看PHPMailer的网站,似乎该项目已经并且已经开发了一段时间了.
感谢您在PHPMailer和/或SwiftMailer上提供的任何功能.希望我能决定一方或另一方,因为此刻我没有理由为什么我会选择一方而不是另一方.
我有新闻项,在创建时将以unix时间戳格式创建日期/时间的时间添加到数据库中.如果我想按最近的顺序排序,我会在我的mysql查询中使用ASC或DESC吗?
谢谢大家的回复.我现在知道了.我会让Sarfraz回答他接受的解决方案,因为他是第一个回复,但感谢其他人:).必须等待11分钟才能接受它作为解决方案.
我基本上尝试过下面的mode_rewrite规则.它最后使用斜杠,但是我想让它工作,无论它是否有一个尾部斜杠.基本上我希望它像这样,因为有些人认为它是正常的,最后有一个斜线而其他人不这样做,因此我希望它能够工作,无论它是否存在.
RewriteRule ^signup/register(.[^/]*) /signup/register.php [NC]
Run Code Online (Sandbox Code Playgroud)
基本上它会工作,http://localhost/signup/register/但如果我从最后删除/它会给出404错误.
有人可以告诉我,当你例如更新,插入,删除..你应该关闭它mysqli_stmt::close();吗?我检查了PHP手册,但不明白close()实际做了什么.
例:
$stmt = $dbh->prepare("SELECT `user_email` FROM `users` WHERE `user_email` = ? LIMIT 1");
$stmt->execute(array($email));
$stmt->close();
Run Code Online (Sandbox Code Playgroud)
我的问题的一个部分是,如果作为一个例子,我曾在多次更新查询交易后,每execute()因为我是内执行的每个查询交易,我应该单独关闭它们?...因为这是一个不确定我需要$stmt->close();在每次执行后使用的事务(); 或者只是$stmt->close();在他们之后使用一个?
我只是浏览了我的Cpanel的php.ini EZConfig(基本上是php.ini;它只允许我通过Cpanel更改php.ini中的一些设置)并注意到track_errors.
有人可以告诉我这意味着什么,我已经搜索了php网站和谷歌,但无法找出它究竟意味着什么?
在PHP中计算UTF-8字符串的长度时,我使用mb_strlen().
例如:
if (mb_strlen($name, 'UTF-8') < 3) {
$error .= 'Name is required. Minimum of 3 characters required in name.';
}
Run Code Online (Sandbox Code Playgroud)
由于文本字段可以接受任何语言(多语言),我想确保PHP将正确计算mutltilanguage UTF-8字符.
这是足够的还是我需要使用其他方法?我担心PHP可能由于某种原因弄错了,或者我可能只是持怀疑态度,但我不希望人们绕过重要的验证,因为PHP错了.
我有一些列可能包含用户想要提供的数据.
示例| 电子邮件 | 名字 | 姓氏 |
电子邮件 - 必需,因此列设置为NOT NULL - 默认值:无
名字 - 不需要因此列设置为NULL - 默认值:NULL
姓氏 - 不需要,因此列设置为NULL - 默认值:NULL
在phpmyadmin中创建/编辑列时; 它有一个选项说默认:下拉显示无| 如定义| NULL | 当前时间戳
因为名字| 姓氏是可选的,如果我选择默认的NULL或NONE,则不需要姓氏?
哪个最好,为什么请?
我知道有很多关于此的讨论,但我找不到任何回答我的问题; 他们更多关于允许NULL或NOT NULL,我的问题是关于默认值.
php ×6
.htaccess ×2
mysql ×2
mysqli ×2
apache ×1
cpanel ×1
database ×1
friendly-url ×1
mbstring ×1
mod-rewrite ×1
multi-query ×1
multilingual ×1
null ×1
pdo ×1
phpmailer ×1
phpmyadmin ×1
smtp ×1
sql ×1
sql-order-by ×1
swiftmailer ×1
transactions ×1
utf-8 ×1