Ergebnis 1 bis 6 von 6

Thema: Captcha und CHMOD

  1. #1
    Interessierte/r
    Registriert seit
    24.09.2004
    Ort
    Ispringen bei PF
    Beiträge
    149
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Captcha und CHMOD

    Hi,

    habe das Captcha von SELFPHP

    http://www.selfphp.de/kochbuch/kochbuch.php?code=22

    eingebunden. Lokal funktioniert alles einwandfrei, aber auf dem Server funkt es nicht. Es wird ein Bild erstellt, allerdings ohne Buchstaben drauf.

    PHP unterstützt GD Bibliothek

    GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.2.1 GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XBM Support enabled

    Rechte habe ich mal für alle betroffenen Dateien auf 777 gesetzt aber es hilft nix. Die Schriftartendatei habe ich mit nem absoluten Pfad angegeben. Bin jetzt ratlos...

    Hat jemand ne Idee?


    Grüße
    MAD
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Gruß

    Matthias

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Captcha und CHMOD

    zeig bitte mal deinen Code und bestenfalls noch einen Link.

  3. #3
    Interessierte/r
    Themenstarter

    Registriert seit
    24.09.2004
    Ort
    Ispringen bei PF
    Beiträge
    149
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Captcha und CHMOD

    Hi,

    der Quellcode ist direkt von SELFPHP


    captcha_check.php
    PHP-Code:
    <?php

    /**
     *    Captcha Bild Überprüfung
     *
     *    Systemvoraussetzung:
     *    Linux, Windows
     *     PHP 4 >= 4.0.0-RC2 , PHP 5
     *    GD-Bibliothek ( > gd-1.6 )
     *    FreeType-Bibliothek
     *
     *    Prüft ein Captcha-Bild
     *
     *     LICENSE: GNU General Public License (GPL)
     *    This program is free software; you can redistribute it and/or modify
     *    it under the terms of the GNU General Public License version 2,
     *    as published by the Free Software Foundation.
     *
     *    @category   Captcha
     *    @author     Damir Enseleit <info@selfphp.de>
     *    @copyright  2001-2006 SELFPHP
     *    @version    $Id: captcha_check.php,v 0.10 2006/04/07 13:15:30 des1 Exp $
     *    @link       http://www.selfphp.de
     */

    /**
     * Prüft ein Captcha-Bild
     *
     * @param        string        $codeCaptcha            Hash-Wert
     * @param        string        $stringCaptcha        Eingabe durch den User
     * @param        string      $dir                            Das Verzeichnis mit den Captcha-Bilder
     * @param        integer        $delFile                    Die Zeit in Minuten, nachdem ein Captcha-Bild gelöscht wird
     *
     * @return    bool                                                TRUE / FALSE            
     */
    function CheckCaptcha($codeCaptcha,$stringCaptcha,$dir,$delFile=5)
    {
        
    // Setzt den Check erst einmal auf FALSE
        
    $captchaTrue FALSE;
        
        
    // Übergebene Hash-Variable überprüfen
        
    if(!preg_match('/^[a-f0-9]{32}$/',$codeCaptcha))
            return 
    FALSE;
        
        
    // Übergebene Captcha-Variable überprüfen
        
    if(!preg_match('/^[a-zA-Z0-9]{1,6}$/',$stringCaptcha))
            return 
    FALSE;
        
        
    $handle = @opendir($dir);
        while (
    false !== ($file readdir($handle))) 
      {
            if (
    preg_match("=^\.{1,2}$="$file))
        {
           continue;
        }
        
        if (
    is_dir($dir.$file))
        {
           continue;
        }
        else
        {
            
    $lastTime ceil((time() - filemtime($dir.$file)) / 60);
            if(
    $lastTime $delFile)
            {
                
    unlink($dir.$file);
            }
            else{
                if(
    strtolower($file) == strtolower($codeCaptcha.'_'.$stringCaptcha.'.png'))
                {
                    
    $captchaTrue TRUE;
                }  
                if (
    preg_match("=^$codeCaptcha=i"$file))
                {
                    
    unlink($dir.$file); 
                }
             }
        }
        }    

        @
    closedir($handle);

        if (
    $captchaTrue)
            return 
    TRUE;
        else
            return 
    FALSE;

    }


    // Temporäres Verzeichnis der Captcha-Bilder
    $captchaDir 'captchadir/';

    // Löschen der alten Captcha-Bilder nach wieviel Minuten
    $delFile 10;

    // Überprüfung starten
    $resultCaptcha CheckCaptcha($_POST["codeCaptcha"],$_POST["stringCaptcha"],$captchaDir,$delFile);

    ?>
    captcha.php
    PHP-Code:
    <?php

    /**
     *    Captcha Bild mit Farbverlauf
     *
     *    Systemvoraussetzung:
     *    Linux, Windows
     *     PHP 4 >= 4.0.0-RC2 , PHP 5
     *    GD-Bibliothek ( > gd-1.6 )
     *    FreeType-Bibliothek
     *
     *    Erstellt ein Captcha Bild mit Farbverlauf und 6 Buchstaben 
     *  und Zahlen
     *
     *     LICENSE: GNU General Public License (GPL)
     *    This program is free software; you can redistribute it and/or modify
     *    it under the terms of the GNU General Public License version 2,
     *    as published by the Free Software Foundation.
     *
     *    @category   Captcha
     *    @author     Damir Enseleit <info@selfphp.de>
     *    @copyright  2001-2006 SELFPHP
     *    @version    $Id: captcha.php,v 0.10 2006/04/07 13:15:30 des1 Exp $
     *    @link       http://www.selfphp.de
     */

    /**
     * Erstellt ein Array aus Gross-, Kleinbuchstaben und Zahlen
     * Schlecht unterscheidbare Buchstaben und Zahlen werden ausgeschlossen
     * Ausgeschlossen werden:
     *     i, I, l, L, o, O, 1, 0
     *
     * Können auch wahlweise mit 
     * range('A','Z');
     * range('a','z');
     * range(0,9);
     * erzeugt werden
     *
     * @return    array        Liefert ein Array aus Buchstaben und Zahlen
     */
    function MakeAlphabet()
    {
        
    // Grossbuchstaben erzeugen
        
    for ($x 65$x <= 90$x++) {
          if(
    $x != 73 && $x != 76 && $x != 79)
              
    $alphabet[] = chr($x);
        }

        
    // Kleinbuchstaben erzeugen
        
    for ($x 97$x <= 122$x++) {
           if(
    $x != 105 && $x != 108 && $x != 111)
               
    $alphabet[] = chr($x);
        }

        
    // Zahlen erzeugen
        
    for ($x 48$x <= 57$x++) {
        if(
    $x != 48 && $x != 49)
            
    $alphabet[] = chr($x);
        }
        
        return 
    $alphabet;
    }

    /**
     * Erstellt einen Außenrahmen um das Captcha-Bild
     *
     * @param        integer        $imgWidth            Breite des Bildes
     * @param        integer        $imgHeight        Höhe des Bildes
     * @param        resource  $im                        Zeiger auf das Bild
     * @param        array          $color                Farbwerte im RGB-Format
     *
     * @return    void            
     */
    function makeBorder($imgWidth,$imgHeight,$im,$color)
    {
        
    imageline($im,0,0,$imgWidth,0,$color); 
        
    imageline($im,0,$imgHeight-1,$imgWidth,$imgHeight-1,$color);
        
    imageline($im,0,0,0,$imgHeight,$color);  
        
    imageline($im,$imgWidth-1,0,$imgWidth-1,$imgHeight,$color);
    }

    /**
     * Erstellt den Farbverlauf im Captcha-Bild
     *
     * @param        array            $fromRGB            Farbwerte im RGB-Format
     * @param        array            $toRGB                Farbwerte im RGB-Format
     * @param        integer      $imgHeight        Bildhöhe
     *
     * @return    array         Gibt ein Array für den Farbverlauf zurück            
     */
    function makeGradient($fromRGB,$toRGB,$imgHeight)
    {
        
        
    $diffR = ($fromRGB[0]-$toRGB[0]); //38
        
    $diffG = ($fromRGB[1]-$toRGB[1]); //133
        
    $diffB = ($fromRGB[2]-$toRGB[2]); // -6

        
    $maxR $diffR $imgHeight// 0.475
        
    $maxG $diffG $imgHeight// 1,66
        
    $maxB $diffB $imgHeight// 0.075

        
    $maxNR $maxR;
        
    $maxNG $maxG;
        
    $maxNB $maxB;

        for(
    $x=0;$x<$imgHeight;$x++)
        {
            
    $color['r'][$x] = abs($fromRGB[0] - $maxR);
            
    $color['g'][$x] = abs($fromRGB[1] - $maxG);
            
    $color['b'][$x] = abs($fromRGB[2] - $maxB);
            
    $maxR += $maxNR;
            
    $maxG += $maxNG;
            
    $maxB += $maxNB;
        }
        
        return 
    $color;
        
    }


    // TTF-Schrift
    // Sie sollten hier unbedingt den absoluten Pfad angeben, da ansonsten
    // eventuell die TTF-Datei nicht eingebunden werden kann!
    $fileTTF =  'www.matthiasbutz.de/captcha/bddavinc.ttf';

    // Verzeichnis für die Captcha-Bilder (muss Schreibrechte besitzen!)
    // Ausserdem sollten in diesem Ordner nur die Bilder gespeichert werden
    // da das Programm in regelmaessigen Abstaenden dieses leert!
    // Kein abschliessenden Slash benutzen!
    $captchaDir 'captchadir';

    // Schriftgröße
    $size 30;

    //Bildgroesse
    $imgWidth 220;//200
    $imgHeight 80;//80


    // Farbverlauf RGB-Wert Start und RGB-Wert Ende
    $fromRGB = array(253,214,0);
    $toRGB = array(215,81,6);

    // Randfarbe
    $colorBorder = array(154,53,2);


    header("Content-type: image/png");

    $im = @imagecreate($imgWidth$imgHeight)
      or die(
    "GD! Initialisierung fehlgeschlagen");

    // Definiert die Farbe für den Border
    $colorB imagecolorallocate($im,$colorBorder[0],$colorBorder[1],$colorBorder[2]);

    // Erstellt den Farbverlauf
    $colorRGB makeGradient($fromRGB,$toRGB,$imgHeight);

    for(
    $x=0;$x<$imgHeight;$x++)
    {
        
    $r $colorRGB['r'][$x];
        
    $g $colorRGB['g'][$x];
        
    $b $colorRGB['b'][$x];
        
    $color imagecolorallocate($im,$r,$g,$b);
        
    imageline($im,0,$x,$imgWidth,$x,$color);
    }


    //Wortliste erstellen
    $alphabet MakeAlphabet();

    // Array des Alphabets durchwürfeln
    shuffle($alphabet); 

    $mix range(0,255);
    shuffle($mix);

    $colors=array(
        
    imagecolorallocate($im,$mix[0],$mix[6],$mix[12]),
        
    imagecolorallocate($im,$mix[1],$mix[7],$mix[13]),
        
    imagecolorallocate($im,$mix[2],$mix[8],$mix[14]),
        
    imagecolorallocate($im,$mix[3],$mix[9],$mix[15]),
        
    imagecolorallocate($im,$mix[4],$mix[10],$mix[16]),
        
    imagecolorallocate($im,$mix[5],$mix[11],$mix[17])
    );

    // Zeichnet die Buchstaben und baut den Dateinamen auf
    for($x=0;$x<6;$x++){ 

        
    $angel rand(-25,25);
        
    $y rand($size,$imgHeight-20);
        
    imagettftext($im$size$angel$next$y$colors[$x], $fileTTF,$alphabet[$x]);
        
    $next += $size + ($imgWidth/$size);
        
    $fileName .= $alphabet[$x];

    }

    // Border erstellen
    makeBorder($imgWidth,$imgHeight,$im,$colorB);

    // Uebermittelter Hash-Wert ueberpruefen
    if(!preg_match('/^[a-f0-9]{32}$/',$_GET['codeCaptcha']))
        
    $_GET['codeCaptcha'] = md5(microtime());

    // Image speichern    
    imagepng($im,$captchaDir.'/'.$_GET['codeCaptcha'].'_'.$fileName.'.png');

    imagedestroy($im);

    // Bild ausgeben
    readfile($captchaDir.'/'.$_GET['codeCaptcha'].'_'.$fileName.'.png');

    ?>
    index.php
    PHP-Code:
    <html>
    <head>
    <title>Demonstration - Captcha</title>
    </head>
    <body>
            <!-- Captcha Check Begin -->
            <?php 
            
    if(!empty($_POST['stringCaptcha']))
            {
                include_once(
    'captcha_check.php'); 
                
                if(
    $resultCaptcha)
                {
                    
    // Alles OK, Daten koennen gespeichert werden
                    
    echo 'Eingabe korrekt!';
                }
                else
                {
                    
    // Captcha ist falsch - Fehler ausgeben
                    
    echo 'Eingabe falsch';
                }
            }
            
    ?>
            <!-- Captcha Check End -->
        <form name="CaptchaForm" method="post" action="index.php">
           <!-- Captcha Begin -->
           <?php $codeCaptcha md5(microtime()); ?>
           <img src="captcha.php?codeCaptcha=<?php echo $codeCaptcha?>">
           <br>
           <input type="hidden" name="codeCaptcha" value="<?php echo $codeCaptcha?>">
           <input type="text" name="stringCaptcha">
           <!-- Captcha End -->
           <p><input type="submit" name="Submit" value="Wert prüfen"></p>
        </form>
    </body>
    </html>
    Was ich halt komisch finde ist, das das Bild erstellt wird, aber ohne die Buchstaben drin, es wird aber kein Fehler rausgehauen...
    Live zu sehen unter www.matthiasbutz.de/captcha/index.php

    Grüße
    MAD
    Gruß

    Matthias

  4. #4
    Bandit
    Gast

    Standard AW: Captcha und CHMOD

    Da steht doch:
    PHP-Code:
    // TTF-Schrift
    // Sie sollten hier unbedingt den absoluten Pfad angeben, da ansonsten
    // eventuell die TTF-Datei nicht eingebunden werden kann! 
    Nennst du das einen absoluten Pfad?
    PHP-Code:
    $fileTTF =  'www.matthiasbutz.de/captcha/bddavinc.ttf'

  5. #5
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Captcha und CHMOD

    gewöhne dich daran, statt www http:// zu schreiben
    Besser wäre noch, den Pfad im Dateisystem zu nehmen:
    /var/kunde/www/captcha etc.

  6. #6
    Interessierte/r
    Themenstarter

    Registriert seit
    24.09.2004
    Ort
    Ispringen bei PF
    Beiträge
    149
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Captcha und CHMOD

    Jau, das habe ich nicht richtig gemacht...

    Wie bekomme ich den absoluten Pfad?
    Habe es jetzt mal mit

    PHP-Code:
     <?php 
    echo(htmlentities($DOCUMENT_ROOT)); 
    ?>
    und habe die Ausgabe dann eingefügt als absoluten Pfad (/www/captcha/bddavinc.ttf). Geht trotzdem nicht...

    SORRY; GEHT MAN SOLLTE HALT DIE RICHTIGE DATEI HOCHLADEN: DANKE UND GRÜßE:::

    Grüße
    MAD
    Geändert von MAD (30.04.2009 um 13:08 Uhr)
    Gruß

    Matthias

Ähnliche Themen

  1. Problem mit chmod
    Von komma im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 16.07.2007, 22:37
  2. CHMOD
    Von Ivanman im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 12.06.2007, 10:00
  3. FTP Zugriff und CHMOD
    Von Mir nicht im Forum Webhoster - Provider - (free) Webspace - Server - Domain
    Antworten: 4
    Letzter Beitrag: 11.06.2007, 18:10
  4. chmod 777
    Von Maggi im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 27.03.2007, 21:01
  5. CHMOD 666
    Von White im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 18.12.2005, 17:33

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •