2016-06-03 10 views
0

Ich habe Captcha für Codeigniter verwendet ich gut funktioniert auf meinem PC, aber irgendwie, wenn ich auf den Server hochgeladen, es erzeugt nicht das Bild, ich habe versucht mit Vorschlag aus anderen Beitrag von stackoverflow aber es funktioniert nichtCodeigniter Captcha nicht angezeigt Bild

I

    gewesen Prüfung unter Punkt haben
  1. GD bereits
  2. wird aktivieren ich tun bereits die chmod 755 auf Vermögenswerte Verzeichnis mit rekursiven Modus

Bitte unten meinen Code in Controller finden

public function captcha_config() { 
       $this->load->helper(array('captcha','form')); 
       $vals = array(
           'img_path' => '/var/www/html/assets/files/captcha/', 
           'img_url' => base_url().'assets/files/captcha/', 
           'img_width' => 150, 
           'img_height' => 30, 
           'expiration' => 7200 
         ); 
         $cap = create_captcha($vals); 
         $this->session->set_userdata('capt',md5($cap['word'])); 
         $image = $cap['image']; 

         //$data['captcha_img'] = $cap['image']; 

         //return $image; 
         var_dump($cap); //it shown bool(false) 
     } 

das Ergebnis ist

bool(false) 

ich waren den Weg in das unten ändern, aber auch nicht funktioniert.

./assets/files/captcha/ 

---------------------------Update 2016.06.04 ----------- ---------------------

bekam ich einen weiteren Hinweis

Nachdem ich in Helfer Debuggen tun (captcha_helper) i einige ändern return false zu debuggen Modus. es

Message: imagejpeg(/var/www/html/assets/files/captcha/1465012057.5767.jpg): failed to open stream: Permission denied 

Ich habe getan, um das Captcha-Verzeichnis ändern zu 777 folgende Fehler angezeigt chmod aber es scheint, funktioniert nicht.

Ich habe die Eigentumsrechte geändert, um Apache zu sein, verwende ich dieses Skript, um das Eigentum von Web zu überprüfen, aber immer noch nicht funktioniert?

<?php echo exec('whoami'); ?> 

Warum kann das Captcha nicht in dieses Verzeichnis schreiben?

+0

Es gibt 4 Orte, wo es wieder false in der Funktion 'create_captcha()'. Wenn der Imagepfad/URL nicht gesetzt wurde (Dein Code ist damit kein Problem). Wenn der Image-Pfad kein Verzeichnis ist (ich hoffe, Sie haben ein Verzeichnis erstellt oder dies wird das Problem sein). Wenn der Image-Pfad nicht beschreibbar ist (ich vermute, dass dies Ihr Problem ist, 0755 bedeutet, dass Ihr Benutzer schreibbar ist, aber nur Lese-/Ausführungsrechte für andere Benutzer, ändern Sie die Berechtigungen auf 0777, um dies zu umgehen). Und schließlich, wenn die GD lib nicht installiert ist (Sie behaupten, es ist schon so, sollte kein Problem sein). Viel Glück :) – mic

+0

haben Sie versucht, diese 'Assets/Dateien/captcha /' –

+0

@mic: Ich habe den Pfad überprüft, erstellen Sie ein Verzeichnis, das Verzeichnis schreibbar mit chmod 666, GD bereits Installer (ich sah auf PHP info), was war das Problem?, es ist verwirrend –

Antwort

0

Ihr i img_path ist falsch. Versuchen Sie, mit diesem

'img_path' => './assets/files/captcha/', 

CodeIgniter Captcha Helper Example - FormGet.com

+0

hi @abdulla bitte auf meine Frage oben, ich habe in diese auch ändern, aber es funktioniert nicht –

+0

@ abdulla, relative Wege sind gefährlich in umfasst. Der Grund dafür, und der Weg zu gehen, wird hier erklärt: https://stackoverflow.com/questions/36577020/failed-to-open-stream-no-such-file-or-directory –