wp-comments-post.php probléma

Sziasztok,











Mitől lehet az, hogy amikor kommentet akarok írni egy post-hoz, akkor a wp-comments-post.php meghívása után leáll a script, és fehér képernyő fogad a böngészőben?





Megnéztem és nincs semmi helytelen nem utf-8 karakter a “<?php” előtt.





Előre is köszönöm a segítséget.

Pedig csak nem jó benne valami! Másold be ide.


Patai László wrote:

Pedig csak nem jó benne valami! Másold be ide.








<?php


/**


* Handles Comment Post to WordPress and prevents duplicate comment posting.


*


* @package WordPress


*/





if ( 'POST' != $_SERVER ) {


header('Allow: POST');


header('HTTP/1.1 405 Method Not Allowed');


header('Content-Type: text/plain');


exit;


}





/** Sets up the WordPress Environment. */


require( dirname(__FILE__) . '/wp-load.php' );





nocache_headers();





$comment_post_ID = (int) $_POST;





$status = $wpdb->get_row( $wpdb->prepare("SELECT post_status, comment_status FROM $wpdb->posts WHERE ID = %d", $comment_post_ID) );





if ( empty($status->comment_status) ) {


do_action('comment_id_not_found', $comment_post_ID);


exit;


} elseif ( !comments_open($comment_post_ID) ) {


do_action('comment_closed', $comment_post_ID);


wp_die( __('Sorry, comments are closed for this item.') );


} elseif ( in_array($status->post_status, array('draft', 'pending') ) ) {


do_action('comment_on_draft', $comment_post_ID);


exit;


}





$comment_author = ( isset($_POST) ) ? trim(strip_tags($_POST)) : null;


$comment_author_email = ( isset($_POST) ) ? trim($_POST) : null;


$comment_author_url = ( isset($_POST) ) ? trim($_POST) : null;


$comment_content = ( isset($_POST) ) ? trim($_POST) : null;





// If the user is logged in


$user = wp_get_current_user();


if ( $user->ID ) {


if ( empty( $user->display_name ) )


$user->display_name=$user->user_login;


$comment_author = $wpdb->escape($user->display_name);


$comment_author_email = $wpdb->escape($user->user_email);


$comment_author_url = $wpdb->escape($user->user_url);


if ( current_user_can('unfiltered_html') ) {


if ( wp_create_nonce('unfiltered-html-comment_' . $comment_post_ID) != $_POST ) {


kses_remove_filters(); // start with a clean slate


kses_init_filters(); // set up the filters


}


}


} else {


if ( get_option('comment_registration') )


wp_die( __('Sorry, you must be logged in to post a comment.') );


}





$comment_type = '';





if ( get_option('require_name_email') && !$user->ID ) {


if ( 6 > strlen($comment_author_email) || '' == $comment_author )


wp_die( __('Error: please fill the required fields (name, email).') );


elseif ( !is_email($comment_author_email))


wp_die( __('Error: please enter a valid email address.') );


}





if ( '' == $comment_content )


wp_die( __('Error: please type a comment.') );





$comment_parent = isset($_POST) ? absint($_POST) : 0;





$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');





$comment_id = wp_new_comment( $commentdata );





$comment = get_comment($comment_id);


if ( !$user->ID ) {


setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);


setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);


setcookie('comment_author_url_' . COOKIEHASH, clean_url($comment->comment_author_url), time() + 30000000, COOKIEPATH, COOKIE_DOMAIN);


}





$location = empty($_POST) ? get_comment_link($comment_id) : $_POST . '#comment-' . $comment_id;


$location = apply_filters('comment_post_redirect', $location, $comment);





wp_redirect($location);





?>

Ahh… félre értettelek. Gyanús is volt, hogy nem egyről beszélünk :slight_smile: Azt hittem valami speckós sablon. A sablonod comment.php-ját másold be. (wp-s core fájlokkal nem lehet baj, ill. lehet de arról már tudnánk)

Ami azt illeti speckó a sablon, egy magazin template. Először rosszul jelenítette meg a post-okhoz írt commenteket, aztán töröltem az összes commentet, gondoltam az adatbázisban akadt össze valamelyik rekord. A törlés óta van a jelenlegi helyzet. Azóta már próbáltam visszarakni a template-hez tartozó eredeti comments.php-t is, de nem segített.





Itt a comment.php tartalma:











<?php





/**




  • @package WordPress




  • @subpackage Default_Theme





    */











    // Do not delete these lines





    if (!empty($_SERVER) && ‘comments.php’ == basename($_SERVER))





    die (‘Please do not load this page directly. Thanks!’);











    if ( post_password_required() ) { ?>




This post is password protected. Enter the password to view comments.


<?php


return;


}


?>


















































    [/list]





    comment_status) : ?>








    1. It‘s quite in here! Why not leave a response?








      [/list]











      A komment nem lehetséges

































































comment_status) : ?>





<div id="respond" style="margin-top:10px; padding:15px;">











Mondj valamit








































You must be <a href="/wp-login.php?redirect_to=">logged in to post a comment.








<form action="/wp-comments-post.php" method="post" id="commentform">











Logged in as <a href="/wp-admin/profile.php">. <a href="" title="Log out of this account">Log out »











<input type="text" name="author" id="author" value="" size="32" tabindex="1" class="input" />


Név





<input type="text" name="email" id="email" value="" size="32" tabindex="2" class="input" />


E-mail (nem publikáljuk)





<input type="text" name="url" id="url" value="" size="32" tabindex="3" class="input" />


Honlap


























ID); ?>












































Nem tudom mennyire volt érkezésed foglalkozni a dologgal, de kiszaszeroltam, hogy a comments.php valamiért 0-át ad át a post_id-ben a wp-comments-post.php-nak. A hozzászólás bekerül a wp-comments táblába, de utána elhasal. Van valami tipp a javításra? Köszi.

A héten játszottam ilyenekkel a CrossPost nevű plugin kapcsán.











Attól lesz 0 a post_id, hogy ha a komment formból hiányzik ez a rejtett mező. Nézd meg a generált oldal forrását, hogy abban van-e olyan hidden input, aminek a neve “comment_post_ID”, ha nincs, és végképp nem tudod mitól van, akkor a sablonba a



Code:



ID); ?>








rész után írd bele ezt:





Code:



<input type="hidden" name="comment_post_ID" value="ID; ?>" />








Ha itt is üres a value, akkor viszont valami nagy szar van...


Valószínűleg, akkor valamelyik plugined felül csapja a globális $post változót.

köszi az ötletet!











megnéztem, és ott van a hidden input, az értéke 0 sajnos.





Kikapcsoltam minden bővítményt, de így is fennáll a probléma.





Olyan nem lehet, hogy egy kikapcsolt plugin is bezavar a képbe?





Aki találkozott már ilyennel kérem reflektáljon.





Köszi előre is.

Ha gondolod,





írj nekem belső üzenetet, a blog elérhetőségével, egy admin juzert, és megnézem, mert érdekel.

Nos, belemásztam a cuccba, és úgy tűnik sablon hiba van, egészen erősen, mivel a default sablonból tudtam kommentálni…











Node, van rá megoldás még pedig:



Code:









Sor elé írd be ezt:


Code:



<?php

global $id;

$id = $post->ID;

?>








(Mivel a sablonok nem voltak írhatóak, így nem tudtam kipróbálni, hogy valóban megoldja-e a problémát, de számomra ez megoldásnak tűnik.)

Óriási vagy, a komment írás már működik, de sajnos valamiért nem jó post id-hez csatolja a kommentet. Ha mondjuk a 114-es id-jű posthoz kommentelek akkor is a 112-eshez csatolja. Vajon ez miért lehet?

Ez sablon természetű dolog lesz.











Ha írhatóvá teszed a fájlokat, akkor kipróbálnék pár dolgot, hátha okosabbal leszünk.

Így van, sablonos gond volt. Hiába kerestem a hibát a comments.php, vagy az index.php környékén nem találtam. A végén már kiírattam php-val a létező összes változót ami átadódik. Aztán banális módon észrevettem, hogy a single.php-ban van egy elírás…

Hasonlo gond nalam is jelentkezett. Firefox alatt megnyitotta a wp-comments-post.php-t a hozzaszolas elkuldese utan, mintha el akarnam menteni a file-t, Chromium alatt nem talalta. Egy plugin (openid) volt a ludas, ami a weboldalas input mezot befolyasolhatja a hozzaszolasnal. Csak 2.7-ig kompatibilis, nalam 2.8-as a wp. Leszedtem svn-bol a plugint, a bibi megszunt, helyette lett mas gubanc, de az elviselheto smile.gif











Tudom nincs kerdes, de hatha mas is belefut ebbe, gondoltam leirom.

nagyon nem találtam kérdésemhez megfelelő topicot ezért ide írom… az lenne gondom hogy hivatkozás nem működnek az oldalon… ha postra kattintok nem jön be az oldal simán a fő oldalra dob vissza… és ugyan ez van ha lap fülecskére kattintok… de vezérlőpultra vagy profilra kattintok akkor az működik… word press újra rakása elkerülésével megoldható a dolog?

Permalink probléma lesz. Lehet, hogy a tárhelyen nincs htaccess használat engedélyezve. Én ezzel szívtam egyszer így.

Azelőtt működött rendesen… csak 1szer újra raktam a wpt és hiába akartak commentet írni nem tudtak mert nem hozza a be az oldalt… mindig csak a kezdő oldalra dob vissza

Töröld ki FTP-vel a .htacces fájlt. majd lépj be az adminra, Beállítások —> Közvetlen linkek Hozdd létre a kívánt struktúrát, mentés, aztán fog az menni.

Szerintem igaza van Győzőnek!

fúú hát nem tudom hogy én vagyok vak vagy csak rosszul keresem a .htacces fájt de nem találom irritated.gif …gondoltam h lehet h már eleve ki volt törölve ezért megpróbálkoztam a saját struktúrát megcsinálni… de Error 404 - Not Found …szóval vagy nem találom a fájlt vagy ami valószínűnek tartok hogy nem értek az ilyesmihez