• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular erstellung und einbau von pflichtfeldern und captcha..!Bitte um hilfe!

T-Flash

Neues Mitglied
Hallo liebe Gemeinde,
ich arbeite seit gestern an einem Formular um später diese auf meiner Community-Webseite einzusetzen um bewerbungen etc anzunehmen.
Also kurz und knapp ein Bewerbungsformular.


Nun habe ich jedoch eine Frage.
Wie setze ich es um das ich eine rechen Captcha einbaue und wie setze ich es so um das ich pflichtfelder einbaue, so dass, wenn nix drinne steht der Formular nicht abgeschickt wird und im Top der Seite eine Fehlermeldung eingeblendet wird wo bzw. was falsch ist.
Und am besten wäre es noch wenn der Browser von selbst das Feld oder die Fälder einfärbt oder bekenntlich macht damit man schneller sehen kann wo was falsch ist...



Würde mich um zahlreiche Hilfe freuen.

LG
T-Flash
 
Ein Captcha ist nicht so leicht zu realisieren. Mit PHP zwar möglich, aber kompliziert. Es gibt dafür einen guten Drittanbieter:
The Official CAPTCHA Site

In PHP kannst du so prüfen, ob ein Feld ausgefüllt wurde:
PHP:
<?php
if(empty($_POST['feldname'])){
    // Aktion, wenn Formularfeld leer gelassen wurde
    echo "Formularfeld ausfüllen!";
}else{
    // Aktion, wenn Formularfeld ausgefüllt wurde
}
?>

Für die Farben der Formularfelder kannst du ebenfalls PHP nutzen, bsp:
PHP:
<?php
echo "<input type=\"text\" name=\"formularfeld\" ";
if(empty($_POST['formularfeld'])){
    echo "style=\"background: red;\" ";
}
echo ">";
?>

Gruß
 
Danke erstmal für deine Top Hilfreiche Antwort.

Muss ich "Feldname"
und "Formularfeld" jeweils mit dem Namen des feldes austauschen oder so stehen lassen ??


LG

P.S: Werde mich äußern ob's geklappt hat sobald ich mit den Dateien weiterarbeiten kann.
 
Ja genau, 'formularfeld' bzw. 'feldname' ersetzt du mit den entsprechenden Werten, welche du mit name im HTML-Formular-Element hinterlegt hast.
 
Hallöchen,
erstmal's danke nochmal für deine Hilfe.

Nun aber zum nächsten Problem.
Unswar habe ich deinen Rat befolgt und über deinem Link einen Captcha erfolgreich auf meinen Formular mit eingebraucht.
Unswar wäre das der Recaptcha plugin.
Jedoch ist nun das problem das egal ob ich testweise auf absenden klicke der captcha keinen Sinn hat da keine Fehlermeldung kommt wenn ich da nix eingebe.


Mein Code für den Captcha sieht wie folgt aus:

Code:
  <script type="text/javascript"
    src="http://api.recaptcha.net/challenge?k=[COLOR=red]mein publickey[/COLOR]">
  </script>
  <noscript>
    <iframe src="http://api.recaptcha.net/noscript?k=[COLOR=red]mein publickey[/COLOR]"
        height="300" width="500" frameborder="0"></iframe><br>
  </noscript>
Your Public_key habe ich halt mit meinem Public Key welches ich beim Signup von Recaptcha bekommen habe.
Kommt auch alles auf der Seite hervor.
Nur das er das Feld vom Captcha nicht überprüft finde ich doof.
Gibt es da eine Lösung ?
Das Feld des Captchas hat ja auch keinen Namen was das Problem nur umso mehr verstäkrt.
Hier der Code vom Captcha in meinem Formular:

Code:
<p>Security-Captcha:</p>
<p>   <script type="text/javascript"
    src="http://api.recaptcha.net/challenge?k=    6LfF5LoSAAAAAI0FieeOUBWosTDbFpKxStb6ugoU ">
  </script>
  <noscript>
    <iframe src="http://api.recaptcha.net/noscript?k=    6LfF5LoSAAAAAI0FieeOUBWosTDbFpKxStb6ugoU "
        height="300" width="500" frameborder="0"></iframe><br>
    
  </noscript>
</p>


Danke !


P.S: Wo muss ich jetzt die 2 Code's von dir wegen den Pflichtfeldern einfügen ?
Ich habe gehört das man auch nen [FORM] tag erstellen müsse welcher das alles auslöst.
In deinem Code sehe ich aber nix von einem Form-Tag...Ist das ne andere variante oder nen Fehler mit drinne im Code ?
 
Hallo nochmal,
nun habe ich nen Zitat aus nem anderem Forum wo über den Form-Tag geredet wird.

Da schrieb man man sollte den Form Tag so beginnen:
Code:
<FORM NAME="Anfrage" onSubmit="return chkFormular()" ..>

Nur leider hat der Typ wohl nicht an Anfänger gedacht und das Ende mit ... abgekürtzt.
Mich würde aber der gesammte Code intressieren.
Wie müsste man den beenden ?
Hoffe da kann mir jemand helfen.

Und halt nen Code um die Überprüfung einzuleiten.

Code:
<script language="JavaScript">
<!--
function  chkFormular()
 {
  if(document.Anfrage.Name.value == "")
  {
    alert("Bitte geben Sie Ihren Namen ein!");
    document.Anfrage.Name.focus();
   return false;
  }
 }
//-->
</script>

Nun habe ich aber eine Frage:
Wie kann ich es so gestalten, wenn ich mehr als nur 1 Pflichtfeld habe ?
Im anderem Forum sagte man was von If-Befehlen dublizieren.
Meint man damit den folgenden Absatz mehrmals dublizieren und den Namen der Felder anpassen? :
Code:
 {
  if(document.Anfrage.Name.value == "")
  {
    alert("Bitte geben Sie Ihren Namen ein!");
    document.Anfrage.Name.focus();
   return false;
  }



Erstmal vielen dank.

LG
T-Flash
 
Dass ein Formular ein form-Tag benötigt, sehe ich als selbstverständlich an. Wie hast du sonst deines erstellt?
So gehts: SELFHTML: HTML/XHTML / Formulare / Formulare definieren
Die beiden von mir geposteten Schnipsel betreffen die Auswertung, nicht die Ersteung des Formulars.

Soweit ich mich mit reCaptcha auskenne, musst du die Auswertung des Captchas in PHP oder einer anderen serverseitigen Sprache durchführen. Sollte in der Documentation aber beschrieben sein.

Die von dir zuletzt erwähnten Codes sind JavaScripts und für die Überprüfung von Pflichfeldern nur dann sinnvoll, wenn die Überprüfung auch serverseitig abläuft. Haben Besucher JavaScript deaktiviert, könnten sie Pflichtfelder leer lassen...

Ich glaube, es wird dir bei deinem aktuellen Wissensstand nur sehr schwer möglich sein, ein solches Script zu schreiben. Deshalb empfehle ich dir, nach einem fertigen Script zu googlen. Die gibt es wie Muscheln am Strand und können automatisch generiert werden. Stichworte sind zB "php formmailer generator".

Gruß
 
soo erstmal's nochmal danke.
Hat mir sehr geholfen, hatte bislang noch keinen Form-Tag in meinem Script drinne.
Alles ohne Form tag gestaltet.
Werde es jetzt aber demnächst einfügen ^^...

Und dazu noch eine Frage.
wie sollte ich am besten die Entdatei, also die Datei wo die Daten vom Formular eingeschrieben werden erstellen ?
Als eine Perl datei, normale Text datei oder eher ne sql Datei ?

Würde mich auch freuen, wenn du mir kurz erläutern könntest, wie ich die Datei erstelle und wie sie benutzt wird.
Weiss ich vllt viel etwas keine ahnung aber ich bin in sachen php, html nicht so der erfahrenste leider :(...



Danke im vorraus.


LG
 
Zuletzt bearbeitet:
Wenn du auf deinem Server eine Datenbank zur Verfügung hast, bietet es sich an die Daten darin zu speichern.

Mit Perl kenne ich mich so nicht aus, bin mir aber sicher, dass sie für zum Speichern von Daten eher ungeignet sind.
Textdateien sind für andere auslesbar, also unpassend, wenns sich um vertrauliches handelt.
Eine SQL-Datei beinhaltet ein Datenbankschema, zum Öffnen derer bräuchtest du wiederum eine Datenbank.

Ich halte es für sinnvoll, wenn die Bewerbungen an dich per Mail versendet werden.
 
Hmmm ja tolle Idee das mit der Mail an mich sobald sich jemand bewirbt.
Nun ist aber das Problem, dass Bewerbungen nicht nur von mir eingesehen werden sollen (bin nicht der der alles alleine entscheidet) sondern auch von anderen Teammitgliedern.
Daher wäre in meinen Augen ein Eintrag in die Datenbank auf dem Server eher am sinnvollsten was ja laut deiner Aussage nicht von außen einfach so wie Textdateien auslesbar sei.

Nun aber die Frage wie stelle ich es so an, dass die Datei die Daten auf eine Datenbank auf den Server schreibt ?
Ich mein in sachen SQL und Datenbanken habe ich eher 0-1 % Erfahrung nicht mehr.
Und könnte dies nur anhand einer Erläuterung packen.

Würd mich also freuen, falls du dazu noch auch freundlicherweise ne Lösung für mich perrat hättest ;)...

Und könnte man die Absendung des Formular's nicht an mehrere als nur eine E-Mailadresse Senden ?
Dann wäre dies natürlich auch ne Lösung, denke mal jedoch das es nur an eine E-Mail abgeschickt werden kann. ODER ?

Danke

LG
T-Flash
 
Soo und nun habe ich alles fertig gebracht bis auf das problem mit der Datenbank immernoch.
Warte noch auf ne Antwort ;) Hoffe du kannst mir da weiterhelfen. (SIEHE 1 POST WEITER OBEN)...

Und dann habe ich noch das problem jetzt das ich nen einfachen rechen captcha in meinen Formular gemacht habe.
Nun ist das soo das alle Felder geprüft werden auch erfolgreich.
Aber nur ob was drinne steht oder nicht.
Und nicht ob der Inhalt auch richtig ist.
z.b habe ich da jetzt nen E-Mail-Adressen Feld.
Da würde ich gerne es so haben das die funktion es so überprüft z.b wenn ich "zjfsgjs" eingebe er sagen soll das ne gültige Email eingegeben werden soll.
Also er soll auf einen @ zeichen prüfen.

Und beim Captcha Feld sollte es so sein, dass was da als Aufgabe steht auch auf richtigkeit geprüft werden soll.
Bislang prüft die Datei nur auf Inhalt und nicht auf richtigkeit.
Würde es aber auch auf richtigkeit überprüfen lassen wollen.
Sonst isses ja auch kein richtiger Captcha-Code.



Ich schreib dir mal mein Captcha.php-Code, meinen Captcha Code in der index Datei und den Code von dem Feld wo die E-mail rein soll.



CODES:

Captcha.php:

Code:
<?php
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10);  //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -

if($operator == "1"){
   $operatorzeichen = " + ";
   $ergebnis = $zahl1 + $zahl2;
}else{
   $operatorzeichen = " - ";
   $ergebnis = $zahl1 - $zahl2;
}

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}

$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "joerh34624g3434z"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);
        
$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>


Captcha-Code in der Index.php:

Code:
<p>Security-Captcha:</p>
<p>
<tr>
<td><img src="captcha.php"></td>
<td><input type="text" name="captcha" size="5"></td>
</tr>
</p>

Feld der E-mailadresse:

Code:
<p>E-Mail-Address:</p>
<p>
  <input name="email" type="text" dir="ltr" size="20" maxlength="40">
</p>



Danke im voraus.

LG
T-Flash
 
Also eine Einführung in die Verwendung von MySQL mit PHP:
Quakenet/#php Tutorial - de - MySQL

Die Email lässt sich an mehrere Adressen senden, ja.

Das Ergebnis des Captchas wurde verschlüsselt in der Session $_SESSION['rechen_captcha_spam'] gespeichert.
Code um Ergebnis zu prüfen::
PHP:
function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);

for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}

return $result;
}

if(decrypt($_SESSION['rechen_captcha_spam']) == $_POST['captcha']){
    // soll passieren, wenn Captcha stimmt...
}else{
    // soll passieren, wenn falsch...
}

Die Prüfung der Email-Adresse ist möglich.
Google nach "email gültigkeit prüfen" und nimm den zeiten Post, von tutorials.de. Dort ganz unten steht ein Code zum Überprüfen der Gültigkeit.

Hoffe ich habe keine deiner Fragen ausgelassen.
 
Hallo vitus,

habe hier ne umfangreichere Webseite gefunden mit den Wörtern von dir.

yubb.de - Die Webmaster-Community // eMail-Adresse auf Gültigkeit prüfen


Nur verstehe ich immernoch nicht wie ich den folgenden Code in die Box wo die E-Mail adrese eingetragen wird bei mir implementieren soll:

Code:
[COLOR=#000000] [COLOR=#0000CC]<?php 
[/COLOR][COLOR=#006600]if(![/COLOR][COLOR=#0000CC]eregi[/COLOR][COLOR=#006600]([/COLOR][COLOR=#CC0000]"^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}"[/COLOR][COLOR=#006600], [/COLOR][COLOR=#CC0000]"[email protected]"[/COLOR][COLOR=#006600])) 
  echo([/COLOR][COLOR=#CC0000]"Keine gültige eMailadresse!"[/COLOR][COLOR=#006600]); 
else { 
  [/COLOR][COLOR=#FF9900]//möglicher Anweisungsblock 
[/COLOR][COLOR=#006600]} 
[/COLOR][COLOR=#0000CC]?>[/COLOR] [/COLOR]


Zusätzlich weiss ich auch nicht wie ich deinen Code:

Code:
[COLOR=#000000][COLOR=#007700]function [/COLOR][COLOR=#0000BB]decrypt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$string[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$key[/COLOR][COLOR=#007700]) {
[/COLOR][COLOR=#0000BB]$result [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]''[/COLOR][COLOR=#007700];
[/COLOR][COLOR=#0000BB]$string [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]base64_decode[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$string[/COLOR][COLOR=#007700]);

for([/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700]<[/COLOR][COLOR=#0000BB]strlen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$string[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700]++) {
[/COLOR][COLOR=#0000BB]$char [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]substr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$string[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]$i[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]$keychar [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]substr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$key[/COLOR][COLOR=#007700], ([/COLOR][COLOR=#0000BB]$i [/COLOR][COLOR=#007700]% [/COLOR][COLOR=#0000BB]strlen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$key[/COLOR][COLOR=#007700]))-[/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]);
[/COLOR][COLOR=#0000BB]$char [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]chr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ord[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$char[/COLOR][COLOR=#007700])-[/COLOR][COLOR=#0000BB]ord[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$keychar[/COLOR][COLOR=#007700]));
[/COLOR][COLOR=#0000BB]$result[/COLOR][COLOR=#007700].=[/COLOR][COLOR=#0000BB]$char[/COLOR][COLOR=#007700];
}

return [/COLOR][COLOR=#0000BB]$result[/COLOR][COLOR=#007700];
}

if([/COLOR][COLOR=#0000BB]decrypt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]$_SESSION[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'rechen_captcha_spam'[/COLOR][COLOR=#007700]]) == [/COLOR][COLOR=#0000BB]$_POST[/COLOR][COLOR=#007700][[/COLOR][COLOR=#DD0000]'captcha'[/COLOR][COLOR=#007700]]){
    [/COLOR][COLOR=#FF8000]// soll passieren, wenn Captcha stimmt...
[/COLOR][COLOR=#007700]}else{
    [/COLOR][COLOR=#FF8000]// soll passieren, wenn falsch...
[/COLOR][COLOR=#007700]}
[/COLOR][/COLOR]

implementieren soll und genau wohin.
Würde es dir helfen, wenn ich meinen gesammten Code vom Formular an dich senden würde ?


vllt könnteste dann die Code's einimplementieren und zurücksenden.
Wäre dann sofort geklärt und ich würde auch sehen wo sie stehen würden.


Würde mich über ne Zusage deiner Seit's freuen, wenn du dafür Zeit hättest ganz kurz.


LG
T-Flash
 
Zurück
Oben