Yii2, wie man eine php-Datei in einem Controller
in meinem Yii2 Rahmen der Arbeit Projekt, ich möchte eine php-Datei. die Datei enthält zwei Funktion Datei-name "encryptdecrypt.php" und speichern Sie es in common\extension Ordner
<?
public function encryptIt( $q ) {
$cryptKey = 'OrangeOnlineMedia';
$qEncoded = base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), $q, MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ) );
return( $qEncoded );
}
public function decryptIt( $q ) {
$cryptKey = 'OrangeOnlineMedia';
$qDecoded = rtrim( mcrypt_decrypt( MCRYPT_RIJNDAEL_256, md5( $cryptKey ), base64_decode( $q ), MCRYPT_MODE_CBC, md5( md5( $cryptKey ) ) ), "\0");
return( $qDecoded );
}
?>
ich diese Zeile in der controller-Seite("CustomersController")
oben auf der Seite enthalten die mit dieser Linie
$encFile =Yii::getAlias('@common'). '\extensions\encryptdecrypt.php';
require_once($encFile);
und verwenden Sie die Funktion in einer Aktion
code Balg
public function actionCreate()
{
$model = new Customers();
if ($model->load(Yii::$app->request->post()) ) {
$model->password=encryptIt($model->password);
if($model->created_date==null)
{
$model->created_date=date('y-m-d') ;
}
$model->save();
return $this->redirect(['view', 'id' => $model->customer_id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
hier bin ich immer die folgende Fehlermeldung
"Call to undefined function backend\Controller\encryptIt()"
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Yii2 Verwendet PSR-4 AutoLoader Regel, so speichern Sie zuerst
Security.php
In
common\extensions
- Ordner, dann öffnen SieSecurity.php
und Klasse erstellen in es.und dann in Ihre
CustomersController
AktionCreate
verwenden Sie es wie diese:BTW in Yii2 generieren Sie sichere Passwort-hash, wie auch diese:
Yii::$app->security->generatePasswordHash($password);
Möglicherweise werden Sie mit falschen Ordner.
Wie Sie bereits erwähnt-Datei ist in
common\extension folder
require_once(Yii::getAlias('@common').'/extensions/func.php');
verwendet werden muss, bevor die Klasse Begriff und nach namespace includation<?php ?>
versuchen immer
versuchen auch
und prüfen Sie den Pfadnamen
Nutzen DOCUMENT_ROOT
Beispiel
Einschließen, um Dateien unabhängig von den server-Typ, dies zu tun: