ugrás a tartalomhoz

php form debug xampp-on

Jazoja · 2011. Júl. 16. (Szo), 16.37
Alapszitu:
WP-hez fejlesztettem plugint, amivel frontendről is lehet post-ot beküldeni.
A plugin tartalmazza a form-ot, amit postol egy szerveren található "frontpost.php" fájlnak, ami feldolgozza, majd átadja wp-nek az anyagot.

Képek beillesztéséhez a nicedit WYSIWYG szerkesztőt használom, ami feltölti a képet az ImageShack szerverére, majd beilleszti a kép linkjét a megfelelő html kóddal.

A dolog tökéletesen működik szöveggel. Ha képet is töltök fel akkor viszont felmegy az anyag, de utána nem irányítja vissza a főoldalra, hanem megáll a böngészőben a "frontpost.php" állományon.

Guglit már széttúrtam a "php debug" kulcsszavakkal, de mindenhol fejlesztőrendszerekkel, meg hasonlókkal jönnek.
Netbeans mondjuk van a gépen, de az meg külön webszervert indít magának. (ahogy én láttam)

Van valami egyszerű megoldás kéne, amivel meg tudom nézni, hogy mi is történik a (helyi) xampp serveren?
Ha meg mindenképpen kell valami komolyabb IDE, akkor azt hogy gyógyítsam egybe helyi wp-vel?
 
1

Netbeans mondjuk van a gépen,

phtamas · 2011. Júl. 16. (Szo), 18.45
Netbeans mondjuk van a gépen, de az meg külön webszervert indít magának. (ahogy én láttam)

A Netbeans (legalábbis a PHP verzió) nem tartalmaz saját beépített webszervert - hacsak nem telepítettél valami fullextrás 3rd-party plugint. Használhatsz vele bármilyen megoldást, ami telepítve van, csak az URL-t kell megadni a projekt konfigurációban.
Ezzel szemben van benne xdebug támogatás, ami jól jöhet.
A Wordpresst nem igazán ismerem, ezért több/használhatóbb infóval sajnos nem szolgálhatok.
2

linket tartalmazó post leállítja a progit

Jazoja · 2011. Júl. 16. (Szo), 19.55
Java-t fejlesztettem eredetileg.
Php plugint valahogy töltöttem hozzá, aztán utána meg kezdtem egy új projectet és ahhoz állította be rendszer.

De a lényeg, közben odáig eljutottam, hogy ha a post amit küldök tartalmaz egy létező képre mutató linket, akkor vmiért leáll a dolog. Ha olyan linket küldök neki, ami nem létező képre mutat, akkor gond nélkül továbblép a progi.

Mellékelem a (szerintem) lényeges sorokat:
  1. <?php  
  2. include 'wp-load.php';  
  3.   
  4. // Check if the form was submitted  
  5. if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ))  
  6. {  
  7.     // Do some minor form validation to make sure there is content  
  8.     if (isset ($_POST['main_title']))   
  9.         {   
  10.          $main_title =  $_POST['main_title'];   
  11.     }   
  12.         else   
  13.         {  
  14.         echo 'Please enter a main_title';  
  15.     }  
  16.   
  17.     if (isset ($_POST['post_content']))   
  18.         {  
  19.         $post_content = $_POST['post_content'];  
  20.     }   
  21.         else   
  22.         {   
  23.         echo 'Please enter the content';  
  24.     }  
  25.   
  26.     $tags = $_POST['post_tags'];  
  27.   
  28.     // Add the content of the form to $post as an array  
  29.     $post = array(  
  30.         'post_title'    => $main_title,  
  31.         'post_content'  => $post_content,  
  32.         'post_category' => $_POST['cat'],  // Usable for custom taxonomies too  
  33.         'tags_input'    => $tags,  
  34.         'post_status'   => 'publish',            // Choose: publish, preview, future, etc.  
  35.         'post_type'     => $_POST['post_type']  // Use a custom post type if you want to  
  36.     );  
  37.     wp_insert_post($post);  // Pass  the value of $post to WordPress the insert function  
  38.                             // http://codex.wordpress.org/Function_Reference/wp_insert_post  
  39.     wp_redirect( home_url() ); // redirect to home page after submit  
  40.   
  41. } // end IF  
  42. // Do the wp_insert_post action to insert it  
  43. do_action('wp_insert_post''wp_insert_post');  
  44. ?>  
Elvileg a
  1. wp_insert_post($post);  
sor adja tovább a kapott adatokat.
Ha ebben létező képre mutató link van, pl.
  1. <img src="http://wpshout.wpcdn.com/media/2010/08/form.jpg">  
akkor nem lép a következő sorra.
  1. wp_redirect( home_url() );  
Ha a kép linkjét "elrontom", mondjuk egy betű törlésével, akkor már rendben továbblép az említett sorra.
Egyébként a post anyagot rendben továbbítja és meg is jelenik utána wordpressben, csak nem értem, hogy mér áll meg annál a lépésnél.
4

nem definiált függvény

tiku I tikaszvince · 2011. Júl. 17. (V), 09.54
Ahogy leírtad, nagyon gyanús, hogy a webszerver hibanaplóban megjelenik egy function not defined hibaüzeneted.

A wp-load.php behúzása után érdemes lenne bekapcsolni a hibaüzenetek megjelenítését
ini_set('display_errors,1);.

Egyébként arra tippelek, hogy a wp-load.php behúzásával nem húzod be azok a wp-admin kvtban található dolgokat, amik a tényleges post insert-et végzik.
6

tényleges post insert

Jazoja · 2011. Júl. 17. (V), 21.37
Akkor hogy lehet, hogy a tényleges post insert hibátlanul megtörténik?
7

hibanapló

tiku I tikaszvince · 2011. Júl. 18. (H), 07.59
Nem tudom mennyire ismered a WP belső lelki világát, de azt tudni kell, hogy szinte minden "rendszer szintű", hívás előtt és után futtat jó pár egyéb függvényt. Csak arra tudok gondolni, hogy a post_insert után (de még a wp_insert_post belsejében) még szeretne valamit meghívni, de valamilyen fatal error miatt megakad a futás.

Mindenképp érdemes lenne kikapcsolni az összes plugin-t, kipróbálni, hogy akkor is megáll-e. Ha pluginek nélkül is megáll, akkor biztos, hogy valami hiányzik, valamit nem include-oltál, valami adatot nem adsz oda. De ha jó, akkor valamelyik beépülő a ludas. Egyenként visszakapcsolgatva és újra próbálva kiderítheted, hogy melyik okozza gubancot.

De mondjuk első lépésben mindenképp a webszerver hibanaplóját kellene megnézni, mert ott rögzítésre kerülnek a php hibák is, már ha nincs kikapcsolva a naplózás.
8

plugin hiba

Jazoja · 2011. Júl. 18. (H), 13.19
Köszönöm, meg is lett a hiba.
Az "Add Linked Images To Gallery" nevű plugin - amire egyébként majd szükség lesz - kikapcsolása után megszűnt a probléma.
Konzultálok a plugin fejlesztőjével ez ügyben.
3

szegény ember PHP debugere?

tiku I tikaszvince · 2011. Júl. 17. (V), 09.44
A szegény ember php debugerére még nem gondoltál?
  1. var_dump($adat);exit;// FÚÚJ! Kakis!  
Nagyon csúnya és elítélendő módszer, és a böngészőben kell nyomkodni a refresh gombot hozzá, meg a "töréspontot" utána kézzel odébb rakni a kódban, de mondjuk WP fejlesztésnél kb ez a leghatékonyabb megoldás.

Ha sokszor kell, akkor érdemes lehet egy pimpelt változatot megírni egy függvényben és ezt hívogatni
  1. function poormans_debug() {  
  2.   echo '<pre>';  
  3.   foreach( func_get_args() as $data ) {  
  4.     var_dump($data);  
  5.   }  
  6.   exit;  
  7. }  
  8.   
  9. poormans_debug('egyik','masik','sokadik'); // dumppol minden paramétert aztán megáll  
5

szegény ember php debuggere

Jazoja · 2011. Júl. 17. (V), 21.35
megnéztem, de én úgy látom minden rendben van vele
azt adja át és úgy ahogy kell