php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.01.2012, 02:28  
Benutzer
 
Registriert seit: 30.07.2011
Beiträge: 45
PHP-Kenntnisse:
Anfänger
clemensplainer befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Captcha-Performance

Hi Leute,
da es spät ist, frage ich mich so einige unnützige Sachen. Vielleicht hat ja jemand wenn ich wieder erwache ein paar tolle Antworten =)

Captcha-Code (xy.php)
PHP-Code:
    session_start();
    
header('Content-Type: image/png');

    
$values explode(' ''A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9');
    
shuffle($values);
    
$text implode(array_slice($values,0,7));


    
$text substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUFVWXYZ1234567890'),0,7);


    
$_SESSION['captcha_text'] = $text;

    
$im imagecreatetruecolor(150,50);

    
$blue imagecolorallocate($im,255,255,255);
    
$black imagecolorallocate($im,0,0,0);

    
imagefill($im,0,0,$blue);
    
imagettftext($im,14,0,25,30,$black,'arial.ttf',$text);

    
imagepng($im);
    
imagedestroy($im); 
1. Ich binde das Bild dann via <img src="xy.php" alt="captcha" /> ein. Angenommen es gibt zwei simultane Requests (soll vorkommen . Wird dann in $_SESSION['captcha_text'] der richtige Captcha gespeichert, oder kann es da zu Verwechselungen kommen. Ich denke, dass das mit der SESSION_ID geregelt wird, nicht?

2. Im Code sind zwei Möglichkeiten der "String-Kreeirung" eingebaut. Im Prinzip machen beide dasselbe. Ich schätze jetzt einfach mal, dass die zweite Möglichkeit schneller ist, oder? Sollte man auf soetwas Acht geben, also in der Praxis? Und ab welcher Größenordnung "lohnt" sich effiziente Programmierung wirklich?

3. Anderes Thema. Macht es performance-technisch einen Unterschied:

PHP-Code:

$str1 
'Hallo'
$str2 ' Welt';

echo 
$str1 $str2

//Oder

echo 'Hallo Welt'
Das ist jetzt bei 'Hallo Welt' natürlich ein bisschen plastisch. Generell frage ich mich da folgendes:
Wenn ich mit SQL-Results hantiere, schlüssele ich der Übersicht habler öfters den Code auf mehrere Zeile auf. Wenn das einen Performance-Unterschied macht, wie wird dass dann in der Praxis gelöst?

Natürlich skaliert betracht. Angenommen wir arbeiten bei Facebook, 1 Billion Pageviews / Monat. Da würde folgendes einen Unterschied machen, schätz ich mal:

PHP-Code:

//Slow
$valuesstr_shuffle('ABCDEFGHIJKLMNOPQRSTUFVWXYZ1234567890');
$text substr($values,0,7);

//Fast
$text substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUFVWXYZ1234567890'),0,7); 
Vielleicht hat ja wer Praxis-Erfahrung wo er/sie solche "Haarspalter"-Probleme lösen musste. Wäre cool, das mal zu wissen.

LG und gute Nacht,
Clemens
clemensplainer ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.01.2012, 02:40  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

1. Probier es aus.
2. Probier es aus. ( ...und messe. Benchmarks ftw )
3. Probier es aus. ( ...und messe. Benchmarks ftw )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 02.01.2012, 02:44  
Benutzer
 
Registriert seit: 30.07.2011
Beiträge: 45
PHP-Kenntnisse:
Anfänger
clemensplainer befindet sich auf einem aufstrebenden Ast
Standard

1. Noch nicht probiert.

2. War irgendwie klar, dass die String-Variante viel schneller ist =)

3. Das ist jetzt interessant. Testet und staunt =)

PHP-Code:
    $t microtime(true);
    
$i 0;
    while(
$i 10000) {

    
$text substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUFVWXYZ1234567890'),0,7);

        
$i++;

    }
    echo 
$t1 microtime(true) - $t;

    echo 
'<br />';

    
$t microtime(true);
    
$i 0;
    while(
$i 10000) {

    
$text str_shuffle('ABCDEFGHIJKLMNOPQRSTUFVWXYZ1234567890');
    
$text substr($text,0,7);

        
$i++;

    }
    echo 
$t2 microtime(true) - $t;

    echo 
'<br />';

    if (
$t1 $t2) {
        echo 
't1 ist schneller';
    } else {
        echo 
't2 ist schneller';
    } 
Mal ist t1 schneller, mal t2.
clemensplainer ist offline   Mit Zitat antworten
Alt 02.01.2012, 02:52  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Okay, jetzt denk drüber nach ob du wirklich _jetzt_ in Grid-Computing dimensionen denken musst, oder ob dir Kollektions-Shuffles im mikro- bis fast millisekundenbereich als ausreichende Performance genügen.

2 Billionen Seitenaufrufe die ein Captcha generieren musst du erstmal haben, prinzipiell denkt man bei so hohen Zahlen auch nicht mehr in der "each call build page"-Dimension, sondern eher in der "Hi, memcache, my good old friend"-Dimension, auch was Captchas angeht, oder glaubst du etwa Google-Captchas sind einzigartig nach ihrer Anzeige ? Wenn die da nicht "tricksen" ( cachen ) würden, bräuchten die die halbe Google-Serverfarm um alleine den einen Service "live" zu erzeugen.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 02.01.2012, 02:54  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Zu 1: Welcher wäre denn in diesem Fall der richtige Captcha-Text?

Zu 2: Welche Methode schneller ist, müsstest du testen. Spontan würde ich aber auch vermuten, dass die zweite schneller ist. Sollte man darauf achten? Schwer zu sagen. Effiziente Programmierung ist nie verkehrt, aber es ist häufig so, dass an unkritischen Stellen gebastelt (weil die Rückgabe sowieso gecacht wird) oder nur ein Geschwindigkeitsvorteil von 0,01 % erreicht wird. Vielleicht als Analogie: Beim Versuch, den Benzinverbrauch deines Autos zu verringern, kannst du sicherlich stundenlang über den Lack nachdenken, aber viel wird das nicht bringen.

Zu 3: Opfere niemals Lesbarkeit – oder allgemeiner vielleicht Klarheit des Anwendungsdesigns – für Performance, wenn du nicht einen sehr sehr sehr sehr sehr guten Grund dafür hast. Konkret zu deinen Beispielen: String-Konkatenationen oder Formatierung von SQL-Queries sind irrelevant. Performance gewinnst oder verlierst du anderswo.

Faustregeln:
  • Mikrooptimierung ist praktisch immer Unsinn.
  • Optimiere keinen Teil des Codes, von dem du nicht beweisen kannst, dass er in Hinsicht auf die Gesamtanwendung (oder zumindest den jeweiligen Kontext) einen Performance-Flaschenhals darstellt.
  • Mache nie „clevere“ Sachen, die den Code unverständlich machen, wenn du nicht eine sehr gute Begründung hast. (Und dokumentiere Cleverness immer.)
  • Denke „global“. Caching bringt oft wesentlich mehr als das Optimieren von Algorithmen.
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (02.01.2012 um 03:03 Uhr).
mermshaus ist offline   Mit Zitat antworten
Alt 02.01.2012, 05:10  
Benutzer
 
Registriert seit: 18.12.2011
Beiträge: 37
PHP-Kenntnisse:
Fortgeschritten
K313 befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php

 
//$a="1234567"; $b="123456789abcdef"; $c=""; $b="";
 //$a="1234567"; $b="123456789abcdef"; function myfunc($x="") {echo $x;} for($i=0;$i<20;$i++) {myfunc($a.$b.$i);}
 
 
$a="qqqqqqqqqqqqqqqqqjhqghqugiqiugwi qwg uqgwgiw gquwqgiug ugugugutgsug sog eog eogwo gweowowgweowegoewogfweofbofebfo eo ewufgweogf weuogf weuogf 
  eugfef weuogf weuofgw efowueg og owegweog woegwoghw viwiwegh iwh weiogh weigh wegihwepigw pghwepgw
  egweu ogweug weog weig hweipgh wepgh wepigh weipgh weipgh wepgiweh gipwh gipweh gipwehgipwe hgpi hw
   weoguihep weigh wepghwepghwegphwepg wehgpw epghwp eghwepghwepghwepehgpwe gh wpe wg weoghwegoghwpeh xxx"
;
 echo 
$a$b=""; echo $b$b=""$a="asdfrgt";
 
//unset($a);

echo "<br>memory_get_usage(false) = ".memory_get_usage();
echo 
"<br>memory_get_usage(true) = ".memory_get_usage(true);

/* = = = = =    ergebnis   = = = = = =

1. $a="1234567"; $b="123456789abcdef";
   
   memory_get_usage(false) = 50304
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $a=""; $b="";
   
   memory_get_usage(false) = 50568  +264
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $a=$b="";
   
   memory_get_usage(false) = 50512  +208
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $c="";
   
   memory_get_usage(false) = 50552  +248
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $c=""; $c="";
   
   memory_get_usage(false) = 50688  +384
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $c=""; $a="";
   
   memory_get_usage(false) = 50688  +384
   memory_get_usage(true) = 262144

1. $a="1234567"; $b="123456789abcdef"; $c=""; $b="";
   
   memory_get_usage(false) = 50680  +376
   memory_get_usage(true) = 262144
_________________________________________________

2. $a="12345678"; $b="123456789abcdef";  èëè  $a="1234567"; $b="123456789abcdefg";

  memory_get_usage(false) = 50320  +16
  memory_get_usage(true) = 262144

_________________________________________________

3. $a="1234567"; $b="1234567"; $a.=$b;

   memory_get_usage(false) = 50440  +120
   memory_get_usage(true) = 262144

3. $a="1234567"; $b="1234567"; $b.=$a;

   memory_get_usage(false) = 50432  +112
   memory_get_usage(true) = 262144

3. $a="1234567"; $b="1234567"; $a.$b;  èëè  $b.$a;

   memory_get_usage(false) = 50520  +200
   memory_get_usage(true) = 262144

_________________________________________________

4. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {}

   memory_get_usage(false) = 51008
   memory_get_usage(true) = 262144

4. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} myfunc();

   memory_get_usage(false) = 51232
   memory_get_usage(true) = 262144

4. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} myfunc($a); èëè myfunc($b); èëè myfunc(&$a); èëè myfunc(&$b);

   memory_get_usage(false) = 51328  +96
   memory_get_usage(true) = 262144

4. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} myfunc($a.$b); èëè myfunc($b.$a);

   memory_get_usage(false) = 51448  +216
   memory_get_usage(true) = 262144

________________________________________________

5. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} for($i=0;$i<1;$i++) {myfunc();} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52096
   memory_get_usage(true) = 262144

5. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} for($i=0;$i<1;$i++) {myfunc($a);} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52192  +96
   memory_get_usage(true) = 262144

5. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} for($i=0;$i<1;$i++) {myfunc($a.$b);} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52312  +216
   memory_get_usage(true) = 262144

5. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {} for($i=0;$i<1;$i++) {myfunc($a.$i);} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52312  +216
   memory_get_usage(true) = 262144

____________________________________________________________
   

6. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {echo $x;} for($i=0;$i<1;$i++) {myfunc($a.$i);} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52408
   memory_get_usage(true) = 262144

6. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {echo $x;} for($i=0;$i<20000;$i++) {myfunc($a.$i);}

   memory_get_usage(false) = 52496  +88
   memory_get_usage(true) = 262144

6. $a="1234567"; $b="123456789abcdef"; function myfunc($x="") {echo $x;} for($i=0;$i<1;$i++) {myfunc($a.$b.$i);} èëè $i<2 èëè $i<20 èëè $i<...

   memory_get_usage(false) = 52528
   memory_get_usage(true) = 262144
   
   
____________________________________________________________
   
7. $a="..."; echo $a; $b=""; echo $b; $b=""; $b="1234567"; // strlen($a)=454
   
   memory_get_usage(false) = 51648
   memory_get_usage(true) = 262144
  
7. $a="..."; echo $a; $a=""; echo $b; $b=""; $b="1234567";
   
   memory_get_usage(false) = 51200  -448
   memory_get_usage(true) = 262144
  
7. $a="..."; echo $a; $b=""; echo $b; $b=""; $a="1234567";
   
   memory_get_usage(false) = 51200  -448
   memory_get_usage(true) = 262144
  
7. $a=""; echo $a; $a="..."; echo $b; $b=""; $b="1234567";
   
   memory_get_usage(false) = 51648  +/- 0
   memory_get_usage(true) = 262144
  
   
*/
?>
_______________________________
hatte früher experimentiert... wenn was falsch ist - tut mir leid, habe kein lust durchchecken.
was ich damals erfassen habe: bei erste Variablenbelegung, soll die variable nur die adresse von string enthalten. Selbst der string soll im memory einzigmal als ein Sharedobject für alle processe liegen. Und nur wenn man dies variable verändert, dann wird PHP neue object erzeugen mit neuen daten.
K313 ist offline   Mit Zitat antworten
Alt 02.01.2012, 09:57  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

ad Captcha: http://1ngo.de/web/captcha-spam.html

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 02.01.2012, 10:35  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von hausl Beitrag anzeigen

In Adition: http://www.shiftedwork.de/blog/2010/...-aber-richtig/
__________________
dsentker ist offline   Mit Zitat antworten
Alt 02.01.2012, 12:43  
Benutzer
 
Registriert seit: 30.07.2011
Beiträge: 45
PHP-Kenntnisse:
Anfänger
clemensplainer befindet sich auf einem aufstrebenden Ast
Standard

Wow, das war mal ein Input =)

Danke für alle Antworten, da war viel interessantes dabei. Captcha hab ich nur mal so auf "Reserver" programmiert, will ich nicht implementieren.

Aber die obengenannten Artikel waren wirklich sehr aufschlussreich! Merci!
clemensplainer ist offline   Mit Zitat antworten
Alt 02.01.2012, 15:54  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

(Sorry, das ist etwas am ursprünglichen Thema vorbei.)

Wobei man ganz realistisch sagen muss, dass ein Honeypot und eine Zeitfalle kein echter Schutz sind. Ich habe sowas auf meiner Homepage eingebaut und kriege bei 5 Besuchern pro Tag haufenweise Spam durchgesteuert.

Da kann man natürlich noch stark mit „Permutationen“ tricksen, also Feldnamen switchen oder das/die Honeypot-Feld/er verschieben. Dann muss ein Bot zufällig die richtige, nur für einen Request gültige Kombination treffen. Glaube, das werde ich demnächst mal versuchen. Eine allgemeine Lösung ist das aber auch nicht – erst recht dann nicht, wenn Bots CSS lernen oder individuell dafür programmiert werden.

Inhaltsfilter… Hm, ja. Keine Ahnung. Mag ich persönlich nicht so sehr, weil aufwändig, Gefahr für false positives, nur Bekämpfung von Symptomen usw. Ist aber sicherlich eine der wirkungsvolleren Möglichkeiten.

Vor Fragespielchen wie „Ist der Mond aus Käse?“ bin ich bisher ebenfalls zurückgeschreckt, weil ich die ziemlich albern finde. Zudem sind die vom Prinzip den Captchas nicht gerade fern. Wenn es ein Botprogrammierer mal drauf anlegt, sind die außerdem ebenfalls einfach zu übertölpeln. Das ist also wenn überhaupt nur eine Lösung für kleinere, individuell programmierte Seiten. Die könnten aber den Wert eines Captchas auch in dessen alt-Text setzen. („Tippen Sie die Zeichen a34q und dann bitte noch 37sf in das nachfolgende Feld.“) Das dürfte Bots, die nicht speziell darauf ausgelegt sind, auch erst mal vor Probleme stellen und wäre barrierefrei.

Je größer die Seite oder je allgemeiner die Software, desto weniger hilft sowas, weil es für Spammer interessant wird, spezielle Regeln zu programmieren.

Dasselbe gilt natürlich auch für Captcha-Bibliotheken.

Neulich habe ich noch den Ansatz gelesen, Fragen/Captchas für alle Besucher zu aktivieren, die kein JS aktiviert haben.

(Edit: Andererseits ergeben sich natürlich auch Synergie-Effekte aus verschiedenen Vorgehensweisen. Die eine filtert 95 %, die zweite 80 %, die dritte 60 %… Ich finde es bloß immer so unbefriedigend, Wahrscheinlichkeiten gegen Wahrscheinlichkeiten antreten zu lassen… Hach ja, Spam.)


Noch kurz zu den Benchmarks:

@clemensplainer: Das ist genau die Art von Mikrogedöns, die du nie niemals berücksichtigen solltest, weil sie die Lesbarkeit zerstört oder dazu verleitet, auf das Auslagern von Code in Funktionen zu verzichten oder ähnliches. Wenn du anfängst, auf sowas zu achten, stellst du irgendwann fest, dass du aus Performancegründen besser nicht auf OOP setzen oder auf Whitespaces im Quellcode verzichten solltest und solche Scherze. Damit disqualifizierst du dich als Programmierer ziemlich für den Austausch mit der Restwelt, weil die dich zu Recht für verrückt und eigenbrötlerisch hält, da du den Blick für Verhältnismäßigkeiten verloren hast. (Ich weiß, du wolltest es hier vermutlich einfach nur mal testen. Aber du ahnst nicht, wie oft Leute sich einen Film drauf fahren, möglichst „effizienten“ Code zu schreiben – für einen marginalen Gewinn – und dabei jedweden gesunden Menschenverstand über Bord werfen.)

@K313: Ich bin nicht sicher, was du da genau tust, aber schau dir vielleicht mal http://de.wikipedia.org/wiki/Copy-On-Write an. Das Prinzip nutzt PHP wann immer möglich.

PHP-Code:
<?php

echo '#1 'memory_get_usage(), "\n";   // genereller Grundverbrauch (=: x)

$a str_repeat('x'1000 1000);

echo 
'#2 'memory_get_usage(), "\n";   // (x +) 1 M

$b $a;
$c $b;

echo 
'#3 'memory_get_usage(), "\n";   // (x +) 1 M

$c .= 'x';                              // Copy-On-Write

echo '#4 'memory_get_usage(), "\n";   // (x +) 2 M



// Erst an Stelle #4 wird der String in $a physisch kopiert, da erst dann die
// Notwendigkeit dazu besteht, weil der Inhalt von $a und $c nicht mehr
// identisch ist.
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (02.01.2012 um 15:58 Uhr).
mermshaus ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Probleme beim Captcha erstellen maikell PHP Einsteiger 2 26.04.2011 14:23
Probleme mit Captcha Dennis85 PHP Einsteiger 10 08.02.2011 15:15
Scriptangebot Captcha md5() Scriptbörse 8 12.09.2010 23:21
Captcha problem Speedchecker94 Beitragsarchiv 1 30.10.2009 15:06
captcha stimmt nicht überein chrismh PHP Tipps 2009 5 22.06.2009 22:11
Gästebuch Captcha DjRay PHP Tipps 2008 9 10.10.2008 14:44
captcha problem in unterordnern Change PHP Tipps 2008 9 10.08.2008 22:43
Captcha in Website einbauen Dartgott PHP Tipps 2008 9 23.04.2008 15:53
Captcha in bestehendes GB einbauen ZeroQL PHP Tipps 2008 6 08.04.2008 15:32
Captcha Frage und vorstelung meiner seite oerny18 PHP Tipps 2008 10 31.03.2008 20:05
Captcha - Session Problem Toby PHP Tipps 2008 9 11.03.2008 19:38
[Erledigt] Probleme mit Einbindung Captcha PHP Tipps 2006 0 18.08.2006 19:42
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
captcha was ist neun 6

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum