Ergebnis 1 bis 12 von 12

Thema: [PHP]Guestbook - Code abfrage; Textfeld nur Zahlen?; Wenn Text "xyz" kein post?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    das mit dem zahlencode habt ihr anscheinend nicht ganz verstanden:

    ich möchte wenn jemand NICHT die Zahlen 1234 in das textfeld schreibt (das bedeutet irgendwelche anderen Zahlen ODER auch gar nichts) dass dann die Fehlermeldung angezeigt wird.

    wie stell ich es also an dass wenn das textfeld nicht gleich ist wie die gewünschte zahl die ich in einer variabek zugewiesen bzw. leer ist, eine Fehlermeldung angezeigt wird?

    Danke,
    A2k


    EDIT:

    Ich hab jetzt selber mal ein bisschen gebastelt und dabei das hier rausbekommen:
    PHP-Code:
    <?php

    $name 
    stripslashes($_POST['input_name']);
    $email $_POST['input_email'];
    $homepage $_POST['input_website'];
    $kommentar stripslashes(nl2br(trim(htmlentities(htmlspecialchars($_POST['input_comment'])))));
    $gmtime gmdate("H:i"time()+(7200)); 
    $gmdate gmdate("d.m.Y"time()+(7200));
    $code $_POST['input_code'];
    $combination 2306;

    //Abfrage, ob Textarea Name leer ist und Ausgabe einer Warnung
    if (empty ($name)) {  
        die (
    "<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Bitte geben Sie Ihren Namen ein.<br /><br /><a href=\"javascript:history.go(-1);\">&laquo;&laquo; zurück</A>");}

    //Abfrage, ob Textarea Komentar leer ist und Ausgabe einer Warnung
    if (empty ($kommentar)) {  
        die (
    "<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Bitte geben Sie einen Kommentar ein.<br /><br /><a href=\"javascript:history.go(-1);\">&laquo; zurück</A>");}

    //Abfrage, ob Textarea Code leer ist und Ausgabe einer Warnung
    if($code==$combination) {return true;} else {
        die (
    "<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Das Feld mit dem Zahlencode ist leer, bzw. der Code ist falsch. <br />Bitte geben Sie den richtigen Zahlencode ein.<br /><br /><a href=\"javascript:history.go(-1);\">&laquo; zurück</a>");}
        
    $txt "index_guestbook.txt";

    if(
    $homepage != "http://")
    {
    $homepage1 "<a href=\"$homepage\" target=\"_blank\">[Homepage]</a>";}

    if(
    $email != "")
    {
    $email1 "<a href=\"mailto:$email\">[E-Mail]</a>";}

    $lesen fopen("$txt""r");
    $inhalt fread($lesenfilesize($txt));
    fclose ($lesen);

    //Schreiben in die TXT-Datei
    $schreiben fopen("$txt""w");
    if(
    $schreiben){
    flock($schreiben,2);
    fputs ($schreiben"
    <b>Written by 
    $name</b>
    <b>
    $homepage1</b>
    <b>
    $email1</b> <b>on $gmdate at $gmtime</b><hr />
    $kommentar<hr />
    <br /><br />
    $inhalt");
    flock($schreiben,3);
    fclose ($schreiben);}
    echo 
    "<script>self.location=\"http://www.meineseite.at\";</script>";
    ?>
    wie ihr seht hab ich folgende 2 Veränderungen vorgenommen:
    1. es wurden html variablen usw. aus der eingabe entfernt
    PHP-Code:
    $kommentar stripslashes(nl2br(trim(htmlentities(htmlspecialchars($_POST['input_comment']))))); 
    2. für den fall dass die code eingabe leer bzw. falsch ist:
    PHP-Code:
    if($code==$combination) {return true;} else {
        die (
    "<b><font face=\"Arial, Verdena, sans-serif\" size=\"2\" color=black>Das Feld mit dem Zahlencode ist leer, bzw. der Code ist falsch. <br />Bitte geben Sie den richtigen Zahlencode ein.<br /><br /><a href=\"javascript:history.go(-1);\">&laquo; zurück</a>");} 
    das funktioniert auch ganz gut, abgesehen davon dass ich sobald ich das formular abgeschickt habe (mit dem richtigen code) ich bei meinem parser hängen bleibe!! das script arbeitet einfach nicht mehr weiter und ich weiss nicht wirklich warum... ideen?

    thx

    Geändert von Armitage2k (20.05.2007 um 00:02 Uhr) Grund: massive information

  2. #2
    Zitat Zitat von Armitage2k Beitrag anzeigen
    wie stell ich es also an dass wenn das textfeld nicht gleich ist wie die gewünschte zahl die ich in einer variabek zugewiesen bzw. leer ist, eine Fehlermeldung angezeigt wird?
    Javascript?:
    HTML-Code:
    <textarea rows="5" cols="40" name="input_code" id="input_code" 
    onchange="if(this.value!=code) alert('Achtung: Codes stimmen nicht ueberein');">
    </textarea>
    So etwas in dem Stil. Ich habs geprüft, sollte gehen, ich habe 'code' einfach durch eine Zahl ersetzt, das Problem ist jetzt, wie du 'code' in das Javascript bekommst. Ginge vielleicht mit einem verstecktem Element.

    Geändert von Drakes (20.05.2007 um 10:30 Uhr)

  3. #3
    Zitat Zitat von Drakes Beitrag anzeigen
    Javascript?:
    HTML-Code:
    <textarea rows="5" cols="40" name="input_code" id="input_code" 
    onchange="if(this.value!=code) alert('Achtung: Codes stimmen nicht ueberein');">
    </textarea>
    So etwas in dem Stil. Ich habs geprüft, sollte gehen, ich habe 'code' einfach durch eine Zahl ersetzt, das Problem ist jetzt, wie du 'code' in das Javascript bekommst. Ginge vielleicht mit einem verstecktem Element.
    die idee ist ja an und für sich ganz nett, allerdings hab ich da ein kleines problem: sobald ich das textfeld für den code anklicke, dort einen falschen code eingeibe und dann auf senden klicke, erscheint ein popup mit der warnung. wenn ich da auf ok klicke und dann auf speichern, wird der eintrag trotzdem geschrieben.


    da ich ausserdem mit JS nicht viel zu tun habe, würd ich trotzdem lieber bei meiner PHP variante bleiben. kann mir jemand sagen warum sich mein script mitten untern ausführen aufhängt?

    thx,
    A2k

  4. #4
    Ok, ich glaube das hat sich gerade erledigt.
    Irgendwie hat sich ein "return" zuviel im code eingeschlichen, sobald das entfernt wurde, ging alles tadellos.

    THX,
    A2k

  5. #5
    Du prüfst aber dann schon noch mit PHP, ob die eingegebene Zahl gleich der festgelegten ist?


    Edit @ cox: Damit stehst du nicht alleine. ^^

    Geändert von NPC Fighter (20.05.2007 um 13:04 Uhr)

  6. #6
    Ich versteh nich warum das alles so Kompliziert gemacht werden muss.

  7. #7
    Noch eine kleine Anmerkung: Wenn du das mit Javascript machst, kannst du dir die Sache mit dem Captcha auch direkt sparen - Wenn du dem Client (und damit auch den Bots) den Code schickst, kann dieser die Abfrage natürlich leicht umgehen - oder man schaltet einfach Javascript aus und schon kann man wieder wunderbar rumspammen. Zumal Bots überhaupt kein Javascript ausführen können...

  8. #8
    Zitat Zitat von Manni Beitrag anzeigen
    Noch eine kleine Anmerkung: Wenn du das mit Javascript machst, kannst du dir die Sache mit dem Captcha auch direkt sparen - Wenn du dem Client (und damit auch den Bots) den Code schickst, kann dieser die Abfrage natürlich leicht umgehen - oder man schaltet einfach Javascript aus und schon kann man wieder wunderbar rumspammen. Zumal Bots überhaupt kein Javascript ausführen können...
    Ok, da haste recht. Hab ich nicht bedacht. Wäre Schwachsinn. I'm Sorry >_< .

Berechtigungen

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