Pastebin API

Aperto da Flavio93Zena, Martedì - 05 Gennaio 2016 - 16:19

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

emanuele

Ed allora dove c'è action prova con:
action="' . $scripturl . '?page=page4110"
naturalmente:
global $scripturl;
all'inizio della funzione.

Flavio93Zena

Ancora niente, weird.
function createForm()
{
global $scripturl;
echo '
<form action="' . $scripturl . '?page=page4110">
<textarea name="paste"></textarea>
<input type="button" value="salva">
</form>';
}

emanuele

Il type è submit, stavo pensando al tag button intanto che scrivevo.

Flavio93Zena

E puoi dare uno schiaffo morale anche a me per non averlo visto #_#

Ora qualcosa fa, ma se funziona non posso vederlo perchè appena clicco il pulsante rimanda ad http://virtualinteractivege.com/index.php?paste=testing (avevo messo "testing" come input).

emanuele

Che palle le form.
<form action="' . $scripturl . '?page=page4110" method="post" accept-charset="' . $context['character_set'] . '">
e $context in global.

Flavio93Zena

CitazioneFatal error: Call to undefined function createPast() in /home/flavio/public_html/Sources/Subs-Portal.php(1167) : eval()'d code on line 3
Appena posto.
Ho il Disable template evaluation già attivo!

function createForm()
{
global $scripturl, $context;
echo '
<form action="' . $scripturl . '?page=page4110" method="post" accept-charset="' . $context['character_set'] . '">
<textarea name="paste"></textarea>
<input type="submit" value="salva">
</form>';
}

emanuele

C'è un typo createPaste, con la e finale.

Flavio93Zena

Funge :D
L'unico problema è che non riesce a riconoscere il link che ritorna, perchè il link in sè funziona, ma non è in <a href> per cui si deve evidenziare a mano. Non capisco come si faccia perchè è un return curl_exec, come lo "wrappo" in un mini-<a href>?

emanuele

echo createPast($_POST['paste']);

$result = createPast($_POST['paste']);
echo '<a href="' . $result . '">' . $result . '</a>';

A seguire i trend, sarebbe meglio qualcosa tipo:
$result = createPast($_POST['paste']);
echo '<input type="text" value="' . $result . '" />';

e volendo fare i fini un "auto-seleziona-tutto-onfocus", ma questo te lo lascio come compito per le vacanze... ah, son finite? xD

Flavio93Zena

Prende forma :D

if (!empty($_POST['paste']))
{
$result = createPaste($_POST['paste']);
echo '<input ID="pastebinoutput" type="text" value="' . $result . '" onfocus="this.select();" onmouseup="return false;" />';
}
else
{
createForm();
}

function createPaste($text)
{
$api_dev_key = 'CENSORED';
$api_paste_code = $text; // your paste text
$api_paste_private = '0'; // 0=public 1=unlisted 2=private
$api_paste_name = 'Virtual Interactive Games Entertainment';
$api_paste_expire_date = '10M';
$api_paste_format = 'text';
$api_user_key = '';
$api_paste_name = urlencode($api_paste_name);
$api_paste_code = urlencode($api_paste_code);


$url = 'http://pastebin.com/api/api_post.php';
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);

return curl_exec($ch);
}
function createForm()
{
global $scripturl, $context;
echo '
<form action="' . $scripturl . '?page=pastebin" method="post" accept-charset="' . $context['character_set'] . '">
<textarea name="paste"></textarea>
<input type="submit" value="Send!">
</form>';
}

E sto anche cominciando a capirci qualcosa! Quanto sarebbe difficile farglielo fare senza nemmeno ricaricare la pagina e farlo passare credo per un qualche voodoo javascript? Mi risparmierebbe un tantino di fatica, anche se già così è figoso :D
Intanto grazie per l'aiuto :)

emanuele


Flavio93Zena

Credo di sì,già usato in diverse parti del forum per cui credo non serva nemmeno chiamare un file.

Discussioni simili (1)