Worldpress
Nemrég el kezdtem foglalkozni worldpres-szel, és olyan akadályba ütköztem, ami egyelőre leküzdhetetlen. Azaz ha üres véleményt akarok felvinni akkor nem hibaüzenetet generál hanem rossz fejlécet és meghal az oldal. A Chrome azt mondj 303-as IE 404-es, Mozilla kódolási , opera meg 500-as hibát dob ki. Már túl vagyok a beállítási, plugin ki-bekapcsolási mizériákon, újratelepítettem vagy 3-szor szüzen is bármilyen más megjelenéssel is ezt a helyzetet nem képes kezelni.
El kezdtem nézni a kódot és oda jutottam el hogy a wp_die() fügvény hivatott megállítani a futtatást és egy hibaoldalt generálni ha nincs adat a comment mezőben vagy nincsenek adatok az e-mail illetve név mezőkben.
azaz:a wp_die-nak meg 3 ága van:Én az utolsó else-re kerülök azaz a _default_wp_die_handle() függvény hajtódik végre
Ami hivatott egy panaszoldalt legyártani egy vissza gombbal azt hiszem.
De ekkor 500-as azzaz internal server error fejlécet gyárt hozzá az első 2 sorában:$r=wp_parse_args egy array merge alkalmaz a default is args között de mivel args nincs ( apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' ); - nincs args paramétere) csak a default lesz benne , ami ugye 500-as.
pár sorral lejebb az $r["response"]-ból fejlécet gyártde mivel az $r-ben az array_merge során nem volt más csak a $default aminek a "response" értéke 500 ekkor meghal.
A did_action( 'admin_head' )-t nem lehet elkerülni megpróbáltam újraindított böngészővel kiürített gyorsítótárral nem bejelentkezve adminként. Ugyanerre az ágra jön!
Kézenfekvő lenne ugye hogy a $default["response"]=200 legyen és probléma megoldva.
Működik is így!
De a kérdésem az volna főleg azok felé akik fejlesztőként ismerik a programot valamit elnézek, és valami beállítás vagy szerver probléma, vagy ez tényleg egy program hiba.
Mert nekem úgy tűnik, ha nincsenek kitöltve a hozzászólás mezők csak ez lehet a kimenet, ami oldalhibához vezet...
Előre is köszönöm, és elnézést a hosszú üzenet miatt!
■ El kezdtem nézni a kódot és oda jutottam el hogy a wp_die() fügvény hivatott megállítani a futtatást és egy hibaoldalt generálni ha nincs adat a comment mezőben vagy nincsenek adatok az e-mail illetve név mezőkben.
azaz:
if ( get_option('require_name_email') && !$user->exists() ) {
if ( 6 > strlen($comment_author_email) || '' == $comment_author )
wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') );
elseif ( !is_email($comment_author_email))
wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') );
}
if ( '' == $comment_content )
wp_die( __('<strong>ERROR</strong>: please type a comment.') );
function wp_die( $message = '', $title = '', $args = array() ) {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
$function = apply_filters( 'wp_die_ajax_handler', '_ajax_wp_die_handler' );
elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
$function = apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' );
else
$function = apply_filters( 'wp_die_handler', '_default_wp_die_handler' );
call_user_func( $function, $message, $title, $args );
}
Ami hivatott egy panaszoldalt legyártani egy vissza gombbal azt hiszem.
De ekkor 500-as azzaz internal server error fejlécet gyárt hozzá az első 2 sorában:
function _default_wp_die_handler( $message, $title = '', $args = array() ) {
$defaults = array( 'response' => 500 );
$r = wp_parse_args($args, $defaults);
pár sorral lejebb az $r["response"]-ból fejlécet gyárt
if ( ! did_action( 'admin_head' ) ) :
if ( !headers_sent() ) {
status_header( $r['response'] );
nocache_headers();
A did_action( 'admin_head' )-t nem lehet elkerülni megpróbáltam újraindított böngészővel kiürített gyorsítótárral nem bejelentkezve adminként. Ugyanerre az ágra jön!
Kézenfekvő lenne ugye hogy a $default["response"]=200 legyen és probléma megoldva.
Működik is így!
De a kérdésem az volna főleg azok felé akik fejlesztőként ismerik a programot valamit elnézek, és valami beállítás vagy szerver probléma, vagy ez tényleg egy program hiba.
Mert nekem úgy tűnik, ha nincsenek kitöltve a hozzászólás mezők csak ez lehet a kimenet, ami oldalhibához vezet...
Előre is köszönöm, és elnézést a hosszú üzenet miatt!
Nem trollkodni akarok.
Jó neked hogy ennyit tudtál
Biztosan értetted is miről van szó :D