Eventr PlugIn / sanitizeInput bei Form-Feld

  • Hello!

    Habe ein Problem mit dem ich leider nicht zurecht komme. Ich hab mir das Eventr-PlugIn a d Wp-PlugIn-DB geholt um 3 Veranstaltungen mit 3 seperaten Anmeldungen zu ermöglichen. So weit so gut. Leider musste ich einige Anpassungen bei den Form-Feldern machen. Sprich: "Url" komplett raus und statt einer "description/Bio" einen "nachnamen" rein. Leider habe ich als Ergebnis folgendes Problem

    Code
    [COLOR=Orange]Fatal error:  Call to undefined function:  sanitizeinput() in /nfs/c02/h04/*****/html/wp-content/plugins/eventr/show_registeration_form.php on line 30[/COLOR]

    der Auszug aus der "show_registeration_form.php" ab Zeile 30 sieht wie folgt aus:

    Nach einigem Lesen ist mir so ungefähr klar geworden, was die Fehlermeldung bedeuten soll. "sanitizeInput" ist eine Art Validierung für die Eingabe, damit eben nicht "§$&$&/()" ermöglicht wird, sondern eher "Müller" oder so dort eingegeben wird.

    Meine Frage: Wie suche, bzw. Was suche ich in den anderen Dateien um mir die Art der ermöglichten Eingabe anzusehen? Habe nämlich das zu erstellende DB-Feld von "description" auf "nachname" und das DB-Feld "Typ" von "mediumtext" auf "varchar" mit Max-Länge 50 Zeichen (i d Datei eventr.php, die die DB erstellt) geändert. I d MySql-DB stimmt das soweit. Nur die Validierung dürfte hier noch nicht passen, da ich sogar für "Mueller" die Ausgabe bekomme... oder vermutet jemand einen anderen Fehler?

    Danke für Eure Hilfe im Voraus!

    Firebug laden! Foreregeln bitte lesen. FAQ. Bitte keine Anfragen per PN.

    Einmal editiert, zuletzt von kaiser (9. Februar 2009 um 00:01)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Nimm mal statt sanitizeInput() mysql_real_escape_string(), das sollte an der Stelle auch genügen.
    PHP: mysql_real_escape_string - Manual

    Zu sanitizeInput() hab ich hier was gefunden:
    PHP Include Injection and Google Referral Hijack
    Dort wirft das einfach alles raus, was kein Buchstabe ist - für "Müller" also auch schon ungeeignet, da "ü" kein Buchstabe für den Regex ist ;-)

  • leider ist das problem hier wohl doch etwas komplexer. so weit ich das richtig sehe ist mysql_real_escape_string die bessere alternative zu den addslashes(). was auch immer das ist... der autor des plugins verwendet durchgehend addslashes. und vermutlich wird das sanitizeInput wohl in zusammenhang stehen, da der fehler jetzt eine leere query ist:

    Code
    WordPress database error: [Query was empty]

    so beim nachdenken und nachlesen komm ich drauf, dass der hund aber eigentlich ganz woanders begraben liegen muss. eigentlich habe ich ja nichts anderes gemacht, als in allen dateien.php und im script.js die url raus zu werfen und "description" durch "nachname" (&dabei mediumtext durch varchar) zu ersetzen. die frage ist glaub ich eher was da alles dran hängen kann und danach zu suchen...? Eine weitere möglichkeit wäre ja auch noch den file-upload raus zu werfen und zu schauen was er dann an sonstigen errors noch so auswirft ;)

    Firebug laden! Foreregeln bitte lesen. FAQ. Bitte keine Anfragen per PN.

    Einmal editiert, zuletzt von kaiser (11. Dezember 2008 um 19:36)

  • leider ist das problem hier wohl doch etwas komplexer. so weit ich das richtig sehe ist mysql_real_escape_string die bessere alternative zu den addslashes().


    Korrekt. Vergiss am besten, das es sowas wie addslashes() gibt. ;-)

    Zitat

    der autor des plugins verwendet durchgehend addslashes. und vermutlich wird das sanitizeInput wohl in zusammenhang stehen, da der fehler jetzt eine leere query ist


    Mmh, schade. Wenn das mal nicht das ganze Plugin unbrauchbar macht...


    Zitat

    so beim nachdenken und nachlesen komm ich drauf, dass der hund aber eigentlich ganz woanders begraben liegen muss. eigentlich habe ich ja nichts anderes gemacht, als in allen dateien.php und im script.js die url raus zu werfen und "description" durch "nachname" (&dabei mediumtext durch varchar) zu ersetzen. die frage ist glaub ich eher was da alles dran hängen kann und danach zu suchen...? Eine weitere möglichkeit wäre ja auch noch den file-upload raus zu werfen und zu schauen was er dann an sonstigen errors noch so auswirft ;)


    Probiers aus, viel Erfolg dabei!

  • Man glaubt es kaum, aber es funktioniert schon in Anfängen... :mrgreen:

    Jetzt hab ich derzeit folgendes Problem: Da das Coda-Theme einen horizontalen Js-Slider verwendet (Posts horiz. nebeneinander; overflow:hidden od so), und 3 Formulare für 3 Veranstaltungsorte nebeneinander habe, tragt mir das PlugIn den anzumeldenden User zwar zum richtigen Standort ein... aber 3x! :-?

    Das Problem liegt vermutlich beim Input-Button, der scheinbar 3x aufgerufen wird.

    Code
    if($attendee_id) {
            // First, check to see if this guy has already registered.
            if($wpdb->get_row($wpdb->prepare("SELECT added_on FROM {$wpdb->prefix}eventr_event_attendee WHERE event_ID=%d AND attendee_ID=%d", $_POST['event_id'], $attendee_id))) {
                print "Sie wurden bereits für {$event->name} angemeldet.";
                
            } else {
                // Now, add the guy and show a success message.
                [COLOR=Red]$wpdb->query($wpdb->prepare("INSERT INTO {$wpdb->prefix}eventr_event_attendee(event_ID, attendee_ID, added_on) VALUES(%d, %d, NOW())", $_POST['event_id'], $attendee_id));[/COLOR]
                print "'$_POST[attendee_name] $_POST[description]' wurde erfolgreich f&uuml;r {$event->name} angemeldet.<br /> Wir w&uuml;nschen Ihnen viel Erfolg.";
            }


    Da das PlugIn zwar eindeutig die Veranstaltungen auseinanderhalten kann, nicht aber den Button und die Erfolgsmeldung, suche ich für den roten Text eine Möglichkeit eine eindeutige Identifikation des "Events" zu finden.

    Firebug laden! Foreregeln bitte lesen. FAQ. Bitte keine Anfragen per PN.

    Einmal editiert, zuletzt von kaiser (15. Dezember 2008 um 14:40)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!