php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-06-2007, 16:56
delme
 Guest
delme
Beiträge: n/a
Standard formularabfage für grafischen code

hallo,
ich habe eine formularabfrage in javascript für folgende zeile:


....

<input name="Code" type="hidden" value="<?php echo $Code; ?>">
<input maxlength="6" name="EingegebenerCode" size="6" type="text">
<img border="0" height="50" width="200"
src="grafischer-code.php?Code=<?php echo$AngezeigterCode; ?>">

......

if(document.formular.EingegebenerCode.value == "")
{
Fehlermeldung += "Dein Code fehlt!\n";
}
if(document.formular.EingegebenerCode.value !== "Code")
{
Fehlermeldung += "Der Code ist falsch!\n";
}


während die abfrage ob etwas eingegeben wurde immer richtig funktioniert, sagt die abfrage nach dem richtigen code immer: der code ist falsch...auch wenn er richtig ist....ich habe schon den code als php echo$AngezeigterCode eingegeben...alles nix...
was läuft hier falsch?

lg - zeffmother
Mit Zitat antworten
  #2 (permalink)  
Alt 12-06-2007, 16:59
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: formularabfage für grafischen code

Zitat:
Original geschrieben von zeffmother
sagt die abfrage nach dem richtigen code immer: der code ist falsch...auch wenn er richtig ist....
Du hast also das Wort Code ins Eingabefeld eingegeben, um das zu prüfen?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 12-06-2007, 17:02
delme
 Guest
delme
Beiträge: n/a
Standard

ja, ich hatte , weil ich dachte es liegt an name="Code", auch schon ella und willi für "EingegebenerCode" geschrieben...war aber das gleiche
Mit Zitat antworten
  #4 (permalink)  
Alt 12-06-2007, 17:06
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Frage(n): Soll das eine Captcha Lösung sein ? Falls ja wieso mit JS und nicht serverseitig mit PHP ? Warum überträgst du den Code mit dem Form ? Kennst du $_SESSION ? Wenn du die Werte schon übertragen musst, warum nicht wenigstens mittels md5() gehashed ?
Du siehst Fragen über Fragen.

Gruss

tobi
Mit Zitat antworten
  #5 (permalink)  
Alt 12-06-2007, 17:10
delme
 Guest
delme
Beiträge: n/a
Standard

ja, das stimmt...aber nun hatten wir heute in einer gruppe darüber gesprochen und wollten ein vorhandenes script, was schon alle abfragen in js hatte, ergänzen und es funktionierte überhaupt nicht...jetzt habe ich mich noch einmal rangesetzt und probiert...aber ich finde den fehler nicht...

als php-script läuft es- aber ich wollte gern eine lösung in js
Mit Zitat antworten
  #6 (permalink)  
Alt 12-06-2007, 17:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von zeffmother
ja, ich hatte , weil ich dachte es liegt an name="Code", auch schon ella und willi für "EingegebenerCode" geschrieben...war aber das gleiche
Das ist nicht die Antwort auf meine Frage.

Wenn du beim geposteten Code in das Eingabefeld mit dem Namen "EingegebenerCode" das Wort "Code" eintippst, sollte dein Code "funktionieren".
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 12-06-2007, 20:04
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@zeffmother
Ich glaube du hast nicht ganz verstanden worauf wahsaga hinauswollte...
Hast du wirklich den String Code ins Eingabefeld geschrieben und es hat nicht gefunzt ? Oder hast du den generierten Code eingegeben und dich gewundert warum es nicht funzt ?

Beim ersten Fall wäre wohl dein JS futsch von daher eher unwahrscheinlich
Beim zweiten Fall brauchst du dich nicht wundern, denn du vergleichst die Usereingabe mit dem String Code. Und wenn dein Captchascript nicht immer Code ins Captcha schreibt...

Zitat:
als php-script läuft es- aber ich wollte gern eine lösung in js
Entschuldige aber das ist Dung von einem Vierbeiner Captchas werden eingesetzt um einigermassen zuverlässig zwischen einem Menschen und einer Maschine zu unterscheiden. Es muss eine Leistung erbracht werden, die nur von einem Menschen erfolgreich absolviert werden können sollte.
Jetzt stell dir mal die JS Lösung vor: JS läuft auf dem Client. Der Client will das Bild mit dem Code --> PHP generiert es und liefert es aus. Jetzt muss JS irgendwie an die Info kommen wie denn der korrekte Code lautet. Wenn du jetzt nicht eine wirklich bahnbrechende OCR Umsetzung in JS gescdhrieben hast , dann kannst du diesen Code wohl nur im Quellcode unterbringen. Und dort findet ihn echt jeder nur halbwegs intelligent programmierte Bot v.a. da ihr ihn so nett in ein hidden Field gepackt habt.
Ein weiteres Problem der JS Lösung ist es, dass du es so oder so nochmal serverseitig prüfen musst !!!! Probier mal wie einfach du einen JS Login überlisten kannst (Tipp JS einfach abschalten)

Es kommt für so eine Aufgabe nur eine serverseitige Lösung in Frage und da bieten sich Sessions in PHP gerade perfekt an. Wenn das Bild aufgerufen wird speicherst du den Code in einer Session Var. Wenn der User das Form abschickt vergleichst du den Code aus dem Form mit dem in der Session Var gespeicherten Wert.
Et voilà die Information des Codes verlässt den Server nie (zumindest nicht in einer für Maschinen einfach lesbaren Form).

Gruss

tobi
Mit Zitat antworten
  #8 (permalink)  
Alt 12-06-2007, 20:35
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Über's letzte Weekend habe ich mal an meinem alten Captcha gefrickelt und umgeschrieben. Funzt soweit wunderbar. Als zip die nötigten Bild-und Schriftdateien.
Du kannst es mit dem Captcha soweit treiben, dass nicht einmal mehr irgendwer den Code noch lesen kann Dazu kannst du die Farbwerte anpassen indem du einerseits bei computeAvgRGB() bei der Rückgabe die Werte nach Gutdünken anpasst. Wenn du die Werte direkt zurückgibst dann entsprechen die RGB Werte dem Durchschnitt aller Pixel des Bildes. Wenn du dann noch in createCaptcha() die Farwerte der Schrift auf diesen durchschnittlichen Wert anpasst, dann ist garantiert kein Bot mehr auf der Seite (allerdings auch kein User mehr )

Hoffe ihr oder sonst jemand kanns gebrauchen

Gruss

tobi

PHP-Code:
<?php
session_start
();
//captcha.php
function randomString($len) {
    
$possible array_merge(range('a','h'),range('A','H'),range('j','z'),
range('J','Z'),range(2,9));
    
shuffle($possible);
    
$str implode('',array_slice($possible,0,$len));
    
$_SESSION['captcha_spam'] = $str;
}
    
function 
createCaptcha($text){
    
$im_bg imagecreatefromgif($_SERVER['DOCUMENT_ROOT'].
'/captcha/bilder/captcha-background.gif');
    
$color computeAvgRGB();
    
$red_up min(round(1.5*$color[0]),255);
    
$red_down max(round(0.2*$color[0]),1);
    
$green_up min(round(1.15*$color[1]),255);
    
$green_down max(round(0.15*$color[1]),1);
    
$blue_up min(round(1.4*$color[2]),255);
    
$blue_down max(round(0.2*$color[2]),1);
    
$txt_ttf $_SERVER['DOCUMENT_ROOT'].
'/captcha/ttf/captcha3.ttf';
    
$t_x 30;
    
$t_y 55;
    for(
$i=0;$i<strlen($text);$i++){
      
$font_size rand(25,40);
      
$angle rand(-15,+15);
      
$red rand($red_down,$red_up);
      
$green rand($green_down,$green_up);
      
$blue rand($blue_down,$blue_up);
      
$versatz rand(-15,15);
      
imagecolorset($im_bg,90+$i,$red,$green,$blue);
      
$bbox imageftbbox($font_size,$angle,$_SERVER['DOCUMENT_ROOT'].
'/captcha/ttf/captcha3.ttf',$text{$i});
      
imagettftext($im_bg$font_size$angle$t_x$t_y+$versatz90+$i
$txt_ttf,$text{$i});
      
$width abs($bbox[0]) + abs($bbox[2]);
      
$t_x += $width += 3;
    }
    return 
$im_bg;
}

function 
computeAvgRGB(){
  
$res imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].
'/captcha/bilder/captcha-background.jpg');
  
$width imagesx($res);
  
$height imagesy($res);
  
$r 0;
  
$g 0;
  
$b 0;
  for(
$y=1;$y<$height;$y++){
    for(
$w=1;$w<$width;$w++){
      
$rgb imagecolorat($res$w$y);
      
$r += ($rgb >> 16) & 0xFF;
      
$g += ($rgb >> 8) & 0xFF;
      
$b += $rgb 0xFF;
    }
  }
  
$r round($r/($width*$height));
  
$g round($g/($width*$height));
  
$b round($b/($width*$height));
  return array(
$r-30,$g-50,$b-20);
}

$text randomString(5);
header('Content-type: image/gif');
$res createCaptcha($_SESSION['captcha_spam']);
imagegif($res);
imagedestroy($res);
exit; 
?>


//index.php
<?php
session_start
();
?>
<html>
<head>
<title>
Captcha Check
</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'].'?'.strip_tags(SID);?>" method="post">
<img src="/captcha/captcha.php?<?php echo strip_tags(SID);?>" /><br />
<input type="text" name="code" /><br />
<input type="submit" name="senden" />
</form>
</body>
</html>
EDIT:

Ein paar Umbrüche dazu

Angehängte Dateien
Dateityp: zip captcha.zip (44,4 KB, 136x aufgerufen)

Geändert von jahlives (12-06-2007 um 20:41 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 12-06-2007, 21:00
delme
 Guest
delme
Beiträge: n/a
Standard

danke!

ja, ich hatte das versucht:
var codename ="<?php echo$AngezeigterCode; ?>";

und dann die abfrage:
if(document.formular.EingegebenerCode.value !== "codename")
{
Fehlermeldung += "Dein Code ist falsch!\n";
}

d.h. irgendwie die serverabfrage über php "einzuschleusen...und jetzt war ich soweit, dass man letztendlich den ganzen quellcode mit einbauen müsste....es geht nicht.

nun schauen wir uns in 7 tagen mal in ruhe dein script an - der eine oder andere wird dir dankbar sein - da bin ich mir sicher.

herzliche grüße
zeffmother
Mit Zitat antworten
  #10 (permalink)  
Alt 12-06-2007, 21:12
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von zeffmother
ja, ich hatte das versucht: [...]
....es geht nicht.
Weil du immer noch nicht mit dem Wert der Variable, sondern dem String "codename" vergleichst.

Vielleicht machst du dir langsam mal den Unterschied zwischen Variablen und Strings klar ...?
Zitat:
d.h. irgendwie die serverabfrage über php "einzuschleusen...
Der Ansatz ist darüber hinaus natürlich genauso blödsinnig - auch da kann ein Bot den Wert ganz einfach auslesen.

Und der Bot interpretiert sowieso kein Javascript - das heisst, der schickt dein Formular in jedem Fall ab (bzw. er wird in den allermeisten Fällen nicht mal sowas wie ein "Formular" kennen, sondern dir einfach einen POST-Request schicken).
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 12-06-2007, 21:14
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@zeffmother
Du serverseitige Prüfung des Codes steht hier nirgends, die müsstet ihr noch umsetzen (sind aber nur wenige Zeilen)

Gruss

tobi
Mit Zitat antworten
  #12 (permalink)  
Alt 12-06-2007, 21:15
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von jahlives
Du serverseitige Prüfung des Codes steht hier nirgends, die müsstet ihr noch umsetzen (sind aber nur wenige Zeilen)
OffTopic:
Na dann bleibt ihm ja wenigstens noch was, woran er verständnismäßig erneut scheitern kann.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 12-06-2007, 23:28
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
if(isset($_POST['code'],$_POST['senden']) && $_POST['code'] == $_SESSION['captcha_spam']){
  
//alles okay
}else{
  
//Formular wieder ausgeben

OffTopic:

Damit er nicht erneut scheitern muss

Mit Zitat antworten
  #14 (permalink)  
Alt 13-06-2007, 15:04
delme
 Guest
delme
Beiträge: n/a
Standard

@wahsaga:
was quatschst du die erklärung von jahlives nach...halte dich einfach raus, wenn ein netter mensch einem anderen hilft. wir hatten da schon unsere differenzen.....ich mag dich nicht und du darfst mich auch ignorieren!

@jahlives: danke
Mit Zitat antworten
  #15 (permalink)  
Alt 13-06-2007, 15:07
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von zeffmother
was quatschst du die erklärung von jahlives nach...
Ich quatsche nicht nach.

Ich habe schon in der ersten Antwort versucht, dich darauf hinzuweisen, wo dein problem liegt - dir fehlt(e) nur leider das Wissen, dass auch zu begreifen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:48 Uhr.