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:

<?php
include 'wp-load.php';

// Check if the form was submitted
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ))
{
	// Do some minor form validation to make sure there is content
	if (isset ($_POST['main_title'])) 
        { 
	     $main_title =  $_POST['main_title']; 
	} 
        else 
        {
		echo 'Please enter a main_title';
	}

	if (isset ($_POST['post_content'])) 
        {
		$post_content = $_POST['post_content'];
	} 
        else 
        { 
		echo 'Please enter the content';
	}

	$tags = $_POST['post_tags'];

	// Add the content of the form to $post as an array
	$post = array(
		'post_title'	=> $main_title,
		'post_content'	=> $post_content,
		'post_category'	=> $_POST['cat'],  // Usable for custom taxonomies too
		'tags_input'	=> $tags,
		'post_status'	=> 'publish',			// Choose: publish, preview, future, etc.
		'post_type'		=> $_POST['post_type']  // Use a custom post type if you want to
	);
	wp_insert_post($post);  // Pass  the value of $post to WordPress the insert function
							// http://codex.wordpress.org/Function_Reference/wp_insert_post
	wp_redirect( home_url() ); // redirect to home page after submit

} // end IF
// Do the wp_insert_post action to insert it
do_action('wp_insert_post', 'wp_insert_post');
?>
Elvileg a
wp_insert_post($post);
sor adja tovább a kapott adatokat.
Ha ebben létező képre mutató link van, pl.
<img src="http://wpshout.wpcdn.com/media/2010/08/form.jpg">
akkor nem lép a következő sorra.
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?
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

function poormans_debug() {
  echo '<pre>';
  foreach( func_get_args() as $data ) {
    var_dump($data);
  }
  exit;
}

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