Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[gelöst] PHP Fatal error: Call to undefined function custom_form_validate()

Eingetragen von Ionit (1802)
am 25.04.2016 - 01:25 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Hallo Freunde,

ich möchte für eine Node-Form eine eigene Validation schreiben.

Dazu habe ich anhand dieses Tutorials http://befused.com/drupal/form-validation ein Minimodul angelegt mit folgendem Code.

<?php
function MEIN_MODUL_form_alter(&$form, $form_state, $form_id) {

if (
$form_id == 'sedcard_node_form') {

  function
custom_form_validate($form, &$form_state) {
 
dpm($form_state);
  }

 
$form['#validate'][] = 'custom_form_validate';
 
#dpm($form);
  #dpm($form['#validate']);
 
}
}
?>

Wenn ich den Node jetzt speichern will - bekomme ich nur einen WSOD und im error.log folgende Meldung

Zitat:

PHP Fatal error: Call to undefined function custom_form_validate() in /var/www/dom7/includes/form.inc on line 1519, referer: http://www.domain.com/node/100037146/edit

Ich werde nicht schlau daraus denn function custom_form_validate ist doch definiert!

Kann mir jemand sagen was ich falsch mache?

Danke und Gruß
Matthias

‹ was hat sich alles geändert? [gelöst] PHP Fatal error: Call to undefined function custom_form_validate() ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Mathias, wo ist denn

Eingetragen von Hyp1 (1463)
am 25.04.2016 - 07:12 Uhr

Hallo Mathias,

wo ist denn die Validate Funktion in Deinem Modul?

Zitat:

$form['#validate'][] = 'custom_form_validate';

Da fehlt ungefähr so etwas:

    function custom_validate($form, &$form_state) {
    dpm($form);
     //Hier die Werte der Form prüfen und bei Fehler form_set_error Funktion benutzen.
    }

Grüsse

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Robert,was meinst Du

Eingetragen von Ionit (1802)
am 25.04.2016 - 19:39 Uhr

Hallo Robert,

was meinst Du damit? Die Custom Validate Function ist doch oben im Code angegeben!

<?php
function custom_form_validate($form, &$form_state) {
 
dpm($form_state);
  }
?>

Im Tutorial http://befused.com/drupal/form-validation steht:

Zitat:

Create the validation function

Now you need to add a function called custom_form_validate().

Danach:

Zitat:

When the form is submitted, the form values will be held in $form_state. To see what is included in form_state(), add dpm($form_state); to the validation function.

Den $form_state wollte ich nun über dpm (Devel) ausgeben!

Allerdings bekomme ich, nachdem ich auf speichern geklickt habe, den WSOD und die Fehlermeldung im error.log (obwohl die custom_form_validate doch im Code angegeben wurde).

Der Validate-Handler ist in der Edit-Form auch über Devel abrufbar (siehe Anhang).

Was mache ich falsch?

AnhangGröße
validate_callback.jpg 14.77 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe einen dummen Fehler

Eingetragen von Ionit (1802)
am 26.04.2016 - 01:14 Uhr

Ich habe einen dummen Fehler gemacht.

Die Validation-Function befand sich innerhalb von hook_form_alter.

Die Validation-Funktion muss aber außerhalb liegen (da wurde die Klammer zu spät zugemacht).

Jetzt funktioniert es und ich konnte den "Province-Bug" beim Location-Modul endlich fixen (wenn Province auf Require gestellt ist und das Land auf "Force-Default", funktioniert die Location-eigene-Validierung für die "Province" nicht sodass "Province" leer sein kann und trotzdem kann der Node gespeichert werden.)

Das ist jetzt erledigt und gefixt!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe einen dummen Fehler

Eingetragen von Ionit (1802)
am 26.04.2016 - 01:18 Uhr

Doppelpost (gelöscht)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,du hast Du Funbktion

Eingetragen von Hyp1 (1463)
am 26.04.2016 - 10:35 Uhr

Hallo,

du hast Du Funbktion in einer Anderen Funktion.
Statt:

<?php
function MEIN_MODUL_form_alter(&$form, $form_state, $form_id) {

if (
$form_id == 'sedcard_node_form') {

  function
custom_form_validate($form, &$form_state) {
 
dpm($form_state);
  }

 
$form['#validate'][] = 'custom_form_validate';
 
#dpm($form);
  #dpm($form['#validate']);
 
}
}
?>

mach dies:

<?php
function MEIN_MODUL_form_alter(&$form, $form_state, $form_id) {

if (
$form_id == 'sedcard_node_form') {
 
$form['#validate'][] = 'custom_form_validate'; //Name der Valide Funktion!
  #dpm($form);
  #dpm($form['#validate']);
 
}
}

//Hier die Validate Funktion
 
function custom_form_validate($form, &$form_state) {
 
dpm($form_state);
  }
?>

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • The Best Way to Kill a Thrilling Evening at Crash Casino Games
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Was für einen Server benutzt
    vor 5 Tagen 22 Stunden
  • Wenn die Subdomain auf
    vor 1 Woche 20 Stunden
  • ordnerstruktur
    vor 1 Woche 1 Tag
  • Die Subdomain muß auf den
    vor 1 Woche 3 Tagen
  • Verwende doch das Tag dafür,
    vor 4 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 4 Wochen 5 Tagen
  • Ich habe ja keine Angst vor
    vor 6 Wochen 12 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 6 Wochen 2 Tagen
  • Vielen Dank erst einmal, aber
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250290
Registrierte User: 20515

Neue User:

  • VegazoneSpel
  • Wolf Dab
  • Scottteday

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 27 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association