我在开发服务器上有一个基本身份验证设置.它是在我的httpd.conf文件中为网站的VirtualHost设置的.我必须将它设置为排除某些目录,这些目录没有引起任何问题并且一切正常.
问题在于排除已通过文件中的mod_rewrite规则的URL .htaccess.我的设置是我有所有URL通过我的index.php文件,并从那里找到并运行相关的代码.我尝试添加我想要排除的URL(/businesses/upload_logo),就像我做其他人一样,但它仍然需要身份验证.这就是我目前拥有的:
...
<Location />
SetEnvIf Request_URI "/businesses/upload_logo" noauth=1
SetEnvIf Request_URI "/api/.*" noauth=1
AuthType Basic
AuthName "Private"
AuthUserFile ****
Require valid-user
Order deny,allow
Satisfy any
Deny from all
Allow from env=noauth
</Location>
....
Run Code Online (Sandbox Code Playgroud)
我在这里和这里找到了与我类似的问题,但答案只给了我正在尝试的东西.
我也想过其他可能的解决方案,但这些都是最后的选择.我想看看我现在的做法是否可行:
.htaccess文件中
SetEnvIf HOST ...但我想看看它是否可以这样修复或不首先修复.该mod_rewrite规则:
...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud) 我正在尝试建立与数据库的连接.这是一个使用maven的简单项目.我有问题sqljdbc_auth.dll
我添加了mssql jdbc驱动程序并添加了依赖项 pom.xml
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>4.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是我的尝试块
try {
// Establish the connection.
SQLServerDataSource ds = new SQLServerDataSource();
ds.setIntegratedSecurity(true);
ds.setServerName("BUILDSRV");
ds.setDatabaseName("master");
ds.setIntegratedSecurity(true);
con = ds.getConnection();
}
Run Code Online (Sandbox Code Playgroud)
我有一个错误
21.11.2012 18:07:04 com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
WARNING: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path
com.microsoft.sqlserver.jdbc.SQLServerException:
Run Code Online (Sandbox Code Playgroud)
我有我的sqljdbc_auth.dll但我不需要把它放到我的C:\windows\...
我需要在maven的项目中添加它.我怎样才能做到这一点?
我试图将它添加到它pom.xml但它不起作用
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>attach-artifacts</id>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<file>target</file>
<type>dll</type>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
我在建造时遇到了另一个错误
Failed to execute …Run Code Online (Sandbox Code Playgroud) 我正在我的一个控制器的动作中使用CakeEmail类发送电子邮件.在添加电子邮件代码之前,我对此控制器进行了单元测试.添加电子邮件后,我收到此错误:
SocketException:无法发送电子邮件.
这可以归结为我无法通过本地机器发送电子邮件.
所以我认为也许一个好主意是在Config/email.php中的EmailConfig类中有两个不同的配置选项(类似于数据库配置文件的工作方式).默认使用Mail传输,使用Debug传输进行测试.这个问题是,与数据库配置不同,Cake在测试期间不会在两者之间自动切换.
我唯一想到的是在EmailConfig类中添加一个构造函数并测试我们是否进行单元测试,但我不确定该检查应该是什么.
有点像这样:
class EmailConfig {
public $default = array(
'transport' => 'Mail'
);
public $test = array(
'transport' => 'Debug'
);
public function __construct() {
if ($isUnitTesting) {
$this->default = $this->test;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我上面的建议是不是一个好主意?如果没有,在单元测试期间,我还可以使用其他方式为电子邮件使用不同的传输方式?
更新 - 2012年4月10日
我想我的做法是错误的.看看这个答案,似乎即使$default默认情况下没有加载配置,你必须通过调用CakeEmail::config()方法指定它或在构造函数中给它.所以我认为这给我留下了两个选择:
我宁愿做第一个,但不确定如果我们进行单元测试,如果不对控制器动作进行检查,这怎么办呢,这样做似乎是错误的.
我的模块有我的自定义折扣,没关系.
config.xml文件:
<sales>
<quote>
<totals>
<aver>
<class>Dani_Prueba_Model_Total_Aver</class>
<after>subtotal</after>
</aver>
</totals>
</quote>
</sales>
Run Code Online (Sandbox Code Playgroud)
我的模块:
<?php
class Dani_Prueba_Model_Total_Aver extends Mage_Sales_Model_Quote_Address_Total_Abstract{
public function collect(Mage_Sales_Model_Quote_Address $address){
$baseDiscount = 2.5;
$discount = Mage::app()->getStore()->convertPrice($baseDiscount);
$address->setCustomDiscount($baseDiscount);
$address->setBaseGrandTotal($address->getBaseGrandTotal() - $baseDiscount);
$address->setGrandTotal($address->getGrandTotal() - $discount);
return $this;
}
public function fetch(Mage_Sales_Model_Quote_Address $address){
$this->setCode('aver');
$amount = $address->getCustomDiscount();
if ($amount != 0){
$address->addTotal(array(
'code' => $this->getCode(),
'title' => 'Custom Discount',
'value' => $amount
));
}
return $this;
}
}
Run Code Online (Sandbox Code Playgroud)
这没关系,当我将产品添加到购物车时,会自动应用我的自定义折扣.
但现在我需要用一个按钮来做.当我向购物车添加产品时,不应用折扣并拥有正确的总数.但是当我点击一个按钮,应用我的自定义折扣,并使用其他按钮"取消",取消折扣.我需要一些类似功能的优惠券代码.
我怎么做的?
我正在学习Laravel 5.4并定制和制作我原来的Auth功能.
以下是我的"身份验证"方法.
public function authenticate(Request $request)
{
$remember_me = (Input::has('remember')) ? true : false;
Auth::guard('web');
$this->validateLogin($request);
$credentials = array(
'username' => trim($request->input('username')),
'password' => trim($request->input('password'))
);
if(Auth::attempt($credentials, $remember_me)){
$user = Auth::guard('web')->user();
Auth::guard('web')->login($user, $remember_me);
return redirect()->route('mypage');
}
return redirect()->back();
}
Run Code Online (Sandbox Code Playgroud)
关于上面提到的尝试和登录方法的$ remember_me参数部分,我有一个问题.
他们之间有什么区别?
当我看到文档时,它说类似于,如果你想制作"记住我"的标记,你可以设置关于它们的第二个布尔参数.
我正在尝试在Eclipse CDT(On Ubuntu)中运行gtkmm项目.项目编译正常,没有报告错误但是当我尝试运行项目时,控制台会打印出此消息
"Gtk-WARNING **: cannot open display:"
Run Code Online (Sandbox Code Playgroud)
如果我去可执行文件所在的位置,在nautilus中,我可以打开它并运行正常.尝试直接从Eclipse运行时,这只是一个问题.
谢谢,
我正在尝试通过CakeEmail发送电子邮件,它在调试级别为2时都能正常工作但是只要我将其切换到调试级别0它就会停止工作并且在访问页面时出现服务器错误.我检查了日志,这就是我得到的:
PHP Fatal error: Call to a member function subject() on a non-object
这是我正在使用的代码:
$email = new CakeEmail();
$email->template('forgot_password', 'default')
->emailFormat('html')
->viewVars(array('password' => $password))
->from(array('my@email.com' => 'My Company'))
->to('my@email.com')
->subject('Your new password')
->send();
Run Code Online (Sandbox Code Playgroud)
我之前使用过类似的代码,但是不记得我是否尝试过调试级别为0的代码.
谢谢,
cakephp ×2
.htaccess ×1
.htpasswd ×1
apache ×1
cakephp-2.0 ×1
eclipse ×1
eclipse-cdt ×1
gtkmm ×1
java ×1
jdbc ×1
laravel ×1
laravel-5.4 ×1
login ×1
magento ×1
magento-1.7 ×1
maven ×1
mod-rewrite ×1
netbeans ×1
phpunit ×1
sql-server ×1
ubuntu ×1
unit-testing ×1