Please help me to fix my article submitter script
I`we created a php page: article.php?article=xxx and this page returns the necessary information about the article (e.g.: title, description, article image, article category)
Then using java I`we made a script that sends the article to various article directories, it creates cookies for sites that require registration with my username: I`we found the cookies in the following way: I log in to the article directory website from Firefox and I check what cookies where set by the website and using an HttpUrlConnection I recreate the cookies and send it.
My script works well with sites like tutorialkit.com and toxiclab.org but I can`t make it to work with tutorialized.com
Here is part of my script:
import java.io.*;
import java.net.*;
public class submit {
String submit_url = null;
String cookie = null;
Boolean is_cookie = false;
Boolean is_image = true;
String image_field = null;
String[] fields = new String[20];
String[] fields_values = new String[20];
int fields_nr;
String image_mime;
Boolean get_cookie = false;
public void submit(String site){
tutorial tutorial = new tutorial();
tutorial.get_tutorial(site);
switch(tutorial.image_type){
case ".jpg":
image_mime = "image/jpeg";
break;
case ".png":
image_mime = "image/png";
break;
case ".gif":
image_mime = "image/gif";
break;
}
switch(site){
case "toxiclab":
submit_url = "http://toxiclab.org/submit-tutorial.asp";
cookie = "toxiclab=login=inf11652om";
is_cookie = true;
image_field = "myFile";
fields[1] = "Name";
fields_values[1] = tutorial.title;
fields[2] = "Url";
fields_values[2] = tutorial.url;
fields[3] = "cat";
fields_values[3] = tutorial.category;
fields[4] = "Desc";
fields_values[4] = tutorial.description;
fields[5] = "categoryIds";
fields_values[5] = "8";
fields_nr = 5;
break;
case "tutorialkit":
submit_url = "http://tutorialkit.com/submit.html";
cookie = "login=csabi; passwd=xxxxxxx";
is_cookie = true;
image_field = "file";
fields[1] = "title";
fields_values[1] = tutorial.title;
fields[2] = "url";
fields_values[2] = tutorial.url;
fields[3] = "act";
fields_values[3] = "submit";
fields[4] = "description";
fields_values[4] = tutorial.description;
fields_nr = 4;
break;
}
System.out.print(site + ": ");
if(tutorial.id > 0){
try {
URL url = new URL(submit_url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
String line_end = "rn";
String two_hyphens = "--";
String boundary = "--*****";
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1*1024*1024;
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
if(is_cookie){
connection.setRequestProperty("Cookie", cookie);
}
connection.setRequestProperty("USER-AGENT", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Accept-Charset","iso-8859-1,*,utf-8");
DataOutputStream httpStreamWriter = new DataOutputStream(connection.getOutputStream ());
for(int i=1;i<=fields_nr;i++){
httpStreamWriter.writeBytes(two_hyphens + boundary + line_end);
httpStreamWriter.writeBytes("Content-Disposition: form-data; name="" + fields[i] + """ + line_end);
httpStreamWriter.writeBytes("Content-Type: text/plain; charset=iso-8859-1" + line_end);
httpStreamWriter.writeBytes(line_end);
httpStreamWriter.writeBytes(fields_values[i]);
httpStreamWriter.writeBytes(line_end);
}
if(is_image){
httpStreamWriter.writeBytes(two_hyphens + boundary + line_end);
httpStreamWriter.writeBytes("Content-Disposition: form-data; name="" + image_field + ""; filename="D:/Work/Thumbnails/" + tutorial.id + tutorial.image_type + """ + line_end);
httpStreamWriter.writeBytes("Content-Type: " + image_mime + line_end + line_end);
FileInputStream fileInputStream = new FileInputStream(new File("D:/Work/Thumbnails/" + tutorial.id + tutorial.image_type));
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while(bytesRead > 0) {
httpStreamWriter.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
}
httpStreamWriter.writeBytes(line_end);
httpStreamWriter.writeBytes(two_hyphens + boundary + two_hyphens + line_end);
httpStreamWriter.flush ();
httpStreamWriter.close ();
connection.connect();
BufferedReader bufferr = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = bufferr.readLine()) != null) {
System.out.println(line);
}
System.out.println();
System.out.println();
for(int i = 0;i<50;i++){
System.out.println(connection.getHeaderFieldKey(i) + " = " + connection.getHeaderField(i));
}
URL url2 = new URL("http://www.tutorialswindow.com/admin/outside_submitter_action_submit.php?site=" + site + "&tutorial=" + tutorial.id);
URLConnection connection2 = url2.openConnection();
connection2.connect();
BufferedReader bufferr2 = new BufferedReader(new InputStreamReader(connection2.getInputStream()));
String line2;
while ((line2 = bufferr2.readLine()) != null) {
System.out.println(line2);
}
System.out.println();
System.out.println();
}
catch(Exception e){
e.printStackTrace();
}
}
else if(tutorial.id == 0){
System.out.println("No more tutorials to submit");
}
else if(tutorial.id == -1){
System.out.println("Fast submission");
}
}
} x and y act like a simple text input, but in the website source code I can`t find any fields with this name....
Thanks!