4images Forum & Community
Welcome, Guest. Please login or register.
Did you miss your activation email?
August 19, 2018, 09:38:39 PM

Login with username, password and session length
Search:     Advanced search
Togle to toolbar
Translate this page with =>
Translate this page >
* Home Help Search Login Register
 
+  4images Forum & Community
|-+  General / Allgemeines
| |-+  Programming
| | |-+  Übergabe von Containerlinks (Name)
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
This topic has not yet been rated!
Author Topic: Übergabe von Containerlinks (Name)  (Read 6524 times)
.Infecto
Newbie
*
Offline Offline

Posts: 48

Thank You
-Given: 10
-Receive: 0


View Profile
« on: November 06, 2014, 08:49:24 PM »

Hallo zusammen,

da ich komplette Bilderpakete angebe, habe ich versucht mittels der Bildereinstellung direkt die Container anzugeben und den Bildername direkt mit dem Name des Containers zu überschreiben.

Ich habe folgendes getan.

Ich habe in der admin/images.php eingetragen unter:
1
2
3
4
5
6
7
8
9
10
11
12
                    if (!empty($additional_image_fields)) {
                        
$table_fields $site_db->get_table_fields(IMAGES_TABLE);
                        foreach (
$additional_image_fields as $key => $val) {
                            
                            if (isset(
$HTTP_POST_VARS[$key.'_'.$i]) && isset($table_fields[$key])) {
                                
$additional_field_sql .= ", $key";
                                
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
                            }

                        }

                    }

Das hier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
                    // Sharelinkz START
                    
$sharelinksdl str_replace('http://share-links.biz/_'''$image_download_url);
                    
$re1='.*?';
	
# Non-greedy match on filler
                    
$re2='('.$sharelinksdl.')';
	
# Alphanum 1
	
	
	
	
	
if (
preg_match_all ("/".$re1.$re2."/is"$image_download_url)) {
                    
$ch curl_init();
                    
curl_setopt($chCURLOPT_URL"http://share-links.biz/api/status");
                    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
                    
curl_setopt($chCURLOPT_POST1);
                    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                    
$data = array(    
	
	
	
	
	
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    
'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    
);
                    
curl_setopt($chCURLOPT_POSTFIELDS$data);
                    
$rueckgabe explode(';'curl_exec($ch));
                    
curl_close($ch);
                    
$sl_name $rueckgabe[1];
	
	
	
	
    } else {
	
	
	
	
	
	
$sl_name $image_name;
	
	
	
	
	
}
	
	
	
	
	
// Sharelinkz ENDE

Und $image_name mit $sl_name ausgetauscht:
1
2
3
4
                    $sql "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments"
.$additional_field_sql.")
                VALUES
                (
$cat_id$user_id, '$sl_name', '$image_description', '$image_keywords', $current_time$image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments".$additional_value_sql.")";

Das klappt auch wunderbar. Da ich aber verschiedene Container-Dienste nutze, habe ich noch folgendes hinzugefügt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
                    $ncdl str_replace('http://ncrypt.in/folder-'''$image_download_url);
                    
$re1x='.*?';
	
# Non-greedy match on filler
                    
$re2x='('.$ncdl.')';
	
# Alphanum 1
	
	
	
	
	
if (
preg_match_all ("/".$re1x.$re2x."/is"$image_download_url)) {
	
	
	
	

curl_setopt($chCURLOPT_URL"http://ncrypt.in/api_status.php");
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
curl_setopt($chCURLOPT_POST1); 
curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
$data = array(
    
'link' => 'http://ncrypt.in/folder-'.$ncdl,
);
curl_setopt($chCURLOPT_POSTFIELDS$data); 
$rueckgabe explode(';'curl_exec($ch));
curl_close($ch); 
 
                    
$sl_name $rueckgabe[4];
	
	
	
	
    } else {
	
	
	
	
	
	
$sl_name $image_name;
	
	
	
	
	
}

Jetzt übergibt er den Name nicht mehr. Ich muss mich entscheiden ob ich NCrypt oder Share-Linkz nutze.
Ich möchte erreichen, dass das System automatisch erkennt ob es sich um share-linkz oder ncrypt handelt.
Der Dontainerlink wird als
1
$image_download_url trim($HTTP_POST_VARS['image_download_url_'.$i]);
Genutzt.

Kann mir jemand helfen?
Logged
Rembrandt
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4187

Thank You
-Given: 116
-Receive: 899

Vienna


View Profile WWW
« Reply #1 on: November 07, 2014, 07:52:06 AM »

Hi!

Soviel ich jetzt verstanden habe möchtest du, eine Download URL (im Upload Formular) als Bildnamen verwenden (den jeweiligen *zip Namen)?

Du könntest auch mit preg_match zuerst herausfinden ob in der Var "$image_download_url" das Wort "NCrypt" oder "Share-Linkz" enthalten ist und dann erst  zu einen deiner beiden Script
weiterleiten.

mfg Andi
Logged

Meine 4Images Modifikationen  Now over 100 Modification Online!    Meine 4images Demo Seite


Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
.Infecto
Newbie
*
Offline Offline

Posts: 48

Thank You
-Given: 10
-Receive: 0


View Profile
« Reply #2 on: November 07, 2014, 12:56:05 PM »

Das tuhe ich doch bereits oder?
Nur irgendwie beist sich die if-abfrage.

Wenn ich nur ein Script laufen lasse, dann übernimmt er die Daten, lasse sich beide ablaufen, spruckt er mir preg_mach fehler aus.
Als if-Abfrage, nutze ich das
1
if (preg_match_all ("/".$re1x.$re2x."/is"$image_download_url)) {
Logged
Rembrandt
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4187

Thank You
-Given: 116
-Receive: 899

Vienna


View Profile WWW
« Reply #3 on: November 07, 2014, 01:17:04 PM »

Also noch mal meine Frage, eine Download URL (im Upload Formular) als Bildnamen verwenden (den jeweiligen *zip Namen)?
Logged

Meine 4Images Modifikationen  Now over 100 Modification Online!    Meine 4images Demo Seite


Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
.Infecto
Newbie
*
Offline Offline

Posts: 48

Thank You
-Given: 10
-Receive: 0


View Profile
« Reply #4 on: November 07, 2014, 01:40:32 PM »

So ähnlich.

Es geht um den Ordnername: http://share-links.biz/_qu55men1z4bm
Anhand der API (Siehe Script)
API


Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
                    // Sharelinkz START
                    
$sharelinksdl str_replace('http://share-links.biz/_'''$image_download_url);
                    
$re1='.*?';
	
# Non-greedy match on filler
                    
$re2='('.$sharelinksdl.')';
	
# Alphanum 1
	
	
	
	
	
if (
$image_download_url == 'http://share-links.biz/_'.$sharelinksdl.')') {
                    
$ch curl_init();
                    
curl_setopt($chCURLOPT_URL"http://share-links.biz/api/status");
                    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
                    
curl_setopt($chCURLOPT_POST1);
                    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                    
$data = array(    
	
	
	
	
	
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    
'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    
);
                    
curl_setopt($chCURLOPT_POSTFIELDS$data);
                    
$rueckgabe explode(';'curl_exec($ch));
                    
curl_close($ch);
                    
$sl_name $rueckgabe[1];
	
	
	
	
    } else {
	
	
	
	
	
	
$sl_name $image_name;
	
	
	
	
    }
	
	
	
	
	
// Sharelinkz ENDE

NCrypt ist ähnlich augebaut. Nur 4images soll das erkennen ob es sich um ncrypt oder share-linkz handelt und entsprechend das richtige Script nutzen.

EDIT:
Mit dieser Variante scheint es bisher zu funktionieren. Aber ist das Codetechnisch ok?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
                    // Sharelinkz START
                    
$sharelinksdl str_replace('http://share-links.biz/_'''$image_download_url);
	
	
	
	
	
if (
$image_download_url == 'http://share-links.biz/_'.$sharelinksdl.'') {
                    
$ch curl_init();
                    
curl_setopt($chCURLOPT_URL"http://share-links.biz/api/status");
                    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
                    
curl_setopt($chCURLOPT_POST1);
                    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
                    
$data = array(    
	
	
	
	
	
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    
'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    
);
                    
curl_setopt($chCURLOPT_POSTFIELDS$data);
                    
$rueckgabe explode(';'curl_exec($ch));
                    
curl_close($ch);
                    
$sl_name $rueckgabe[1];
	
	
	
	
	
echo 
"Kuchen";
	
	
	
	
    }
	
	
	
	
	
// Sharelinkz ENDE
	
	
	
	
	

                    
$ncdl str_replace('http://ncrypt.in/folder-'''$image_download_url);
	
	
	
	
	
if (
$image_download_url == 'http://ncrypt.in/folder-'.$ncdl.'') {
	
	
	
	
	
	
$chx curl_init();
	
	
	

curl_setopt($chxCURLOPT_URL"http://ncrypt.in/api_status.php");
curl_setopt($chxCURLOPT_RETURNTRANSFER1); 
curl_setopt($chxCURLOPT_POST1); 
curl_setopt($chxCURLOPT_FOLLOWLOCATION1); 
$datax = array(
    
'link' => 'http://ncrypt.in/folder-'.$ncdl,
);
curl_setopt($chxCURLOPT_POSTFIELDS$datax); 
$rueckgabex explode(';'curl_exec($chx));
curl_close($chx); 
 
                    
$sl_name $rueckgabex[4];
	
	
	
	
	
echo 
"Torte";
	
	
	
	
    }
« Last Edit: November 07, 2014, 02:04:28 PM by .Infecto » Logged
Rembrandt
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4187

Thank You
-Given: 116
-Receive: 899

Vienna


View Profile WWW
« Reply #5 on: November 10, 2014, 07:16:19 PM »

Hi!

So ich habe einmal was zusammen gestellt, vorweg es gibt natürlich mehrere Möglichkeiten um ans Ziel zu kommen.
Der Code sieht im ersten Moment aufwendiger aus, hat aber den Vorteil wenn du einen weiteren Anbieter nutzen möchtest kannst du in der "function shareLink"  ganz einfach ein weiteres "case" anlegen.

1.) die beiden functionen in die Datei "includes/functions.php" vor "?>" hinein kopieren.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function curlSharelink($shareLinkUrl$shareLinkArray$shareLinkReturn){
  
$cInit curl_init();
  
curl_setopt($cInitCURLOPT_URL$shareLinkUrl);
  
curl_setopt($cInitCURLOPT_RETURNTRANSFER1); 
  
curl_setopt($cInitCURLOPT_POST1); 
  
curl_setopt($cInitCURLOPT_FOLLOWLOCATION1); 
  
curl_setopt($cInitCURLOPT_POSTFIELDS$shareLinkArray); 
  
$downloadName explode(';'curl_exec($cInit));
  
curl_close($cInit); 
  return 
$downloadName[$shareLinkReturn];
}

function 
shareLink($shareLinkUrl$image_name=''){
  if(
$shareLinkUrl){
    
$shareLink parse_url($shareLinkUrlPHP_URL_HOST);

    switch (
$shareLink) {
      case (
$shareLink == "share-links.biz") :
        
$folderCodes str_replace('http://share-links.biz/_'''$shareLinkUrl);   
        
$shareLinkArray = array(    
          
'apikey' => '2ed183155346a56a',
          
'folderCodes' => $folderCodes
        
);
        
$shareLinkReturn 1;
      return 
curlSharelink($shareLinkUrl$shareLinkArray$shareLinkReturn);
      break;
      
      case (
$shareLink == "ncrypt.in") :
        
$shareLinkArray = array(
          
'link' => $shareLinkUrl
        
);
        
$shareLinkReturn 4;
      return 
curlSharelink($shareLinkUrl$shareLinkArray$shareLinkReturn);
      break;
      
      default:
      return 
$image_name;
      break; 
    }
  }
  else{
    return 
$image_name;
  }
}

2.)  suche in der member.php in der section "($action == "uploadimage")":
1
$upload_cat = ($direct_upload) ? $cat_id 0;
und füge darunter ein:
1
$image_name shareLink($remote_media_file,$image_name);

Testen konnte ich es nicht, da ich auf diesen Seiten keinen Zugang habe.
Aber ich nehme mal an das wenn du dir den Code der beiden "functionen" ansiehst wirst du ihn verstehen und gegeben falls korrigieren können.

mfg Andi
« Last Edit: November 20, 2014, 07:56:22 AM by Rembrandt » Logged

Meine 4Images Modifikationen  Now over 100 Modification Online!    Meine 4images Demo Seite


Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
.Infecto
Newbie
*
Offline Offline

Posts: 48

Thank You
-Given: 10
-Receive: 0


View Profile
« Reply #6 on: November 11, 2014, 03:43:34 PM »

Vielen vielen Dank.
Das werde ich die Tage testen und melde mich mit einem Feedback zurück!
Logged
Rembrandt
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4187

Thank You
-Given: 116
-Receive: 899

Vienna


View Profile WWW
« Reply #7 on: November 11, 2014, 05:02:43 PM »

Na da bin ich schon gespannt ob es funktioniert .  Smile
Logged

Meine 4Images Modifikationen  Now over 100 Modification Online!    Meine 4images Demo Seite


Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
.Infecto
Newbie
*
Offline Offline

Posts: 48

Thank You
-Given: 10
-Receive: 0


View Profile
« Reply #8 on: November 12, 2014, 01:17:32 AM »

Das denke ich mir.
Bisher habe ich das so gelöst, einwandfrei.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
                $sldl str_replace(SHARELINKZBIZ_FOLDERKEY''$image_download_url);
                
                if (
$image_download_url == SHARELINKZBIZ_FOLDERKEY $sldl '') {
                    
$sl_curl curl_init();
                    
curl_setopt($sl_curlCURLOPT_URLSHARELINKZBIZ);
                    
curl_setopt($sl_curlCURLOPT_RETURNTRANSFER1);
                    
curl_setopt($sl_curlCURLOPT_POST1);
                    
curl_setopt($sl_curlCURLOPT_FOLLOWLOCATION1);
                    
$array = array(
                        
'apikey' => 'xxx',
                        
'folderCode' => $sldl
                    
);
                    
curl_setopt($sl_curlCURLOPT_POSTFIELDS$array);
                    
$sl_echo explode(';'curl_exec($sl_curl));
                    
curl_close($sl_curl);
                    if (
$config['container_name'] == 0) {
                        
$image_filesize byte_umrechner($sl_echo[2]);
                        
$image_provider $sl_echo[3];
                    } else {
                        
$sls_curl curl_init();
                        
curl_setopt($sls_curlCURLOPT_URLSHARELINKZBIZ_STATS);
                        
curl_setopt($sls_curlCURLOPT_RETURNTRANSFER1);
                        
curl_setopt($sls_curlCURLOPT_POST1);
                        
curl_setopt($sls_curlCURLOPT_FOLLOWLOCATION1);
                        
$arrays = array(
                            
'apikey' => 'xxx',
                            
'folderCodes' => $sldl
                        
);
                        
curl_setopt($sls_curlCURLOPT_POSTFIELDS$arrays);
                        
$sls_echo explode(';'curl_exec($sls_curl));
                        
curl_close($sls_curl);
                        
$image_name     $sls_echo[1];
                        
$image_filesize byte_umrechner($sl_echo[2]);
                        
$image_provider $sl_echo[3];
                    }
                }
                
                
$ncdl str_replace(NCRYPTIN_FOLDERKEY''$image_download_url);
                
                if (
$image_download_url == NCRYPTIN_FOLDERKEY $ncdl '') {
                    
$nc_curl curl_init();
                    
curl_setopt($nc_curlCURLOPT_URLNCRYPTIN);
                    
curl_setopt($nc_curlCURLOPT_RETURNTRANSFER1);
                    
curl_setopt($nc_curlCURLOPT_POST1);
                    
curl_setopt($nc_curlCURLOPT_FOLLOWLOCATION1);
                    
$array = array(
                        
'link' => NCRYPTIN_FOLDERKEY $ncdl
                    
);
                    
curl_setopt($nc_curlCURLOPT_POSTFIELDS$array);
                    
$nc_echo explode(';'curl_exec($nc_curl));
                    
curl_close($nc_curl);
                    if (
$config['container_name'] == 0) {
                        
$image_filesize byte_umrechner($nc_echo[2]);
                        
$image_provider $nc_echo[1];
                    } else {
                        
$image_filesize byte_umrechner($nc_echo[2]);
                        
$image_provider $nc_echo[1];
                        
$image_name     $nc_echo[4];
                    }
                }
                
                
$lcdl str_replace(LINKCRYPTWS_FOLDERKEY''$image_download_url);
                
                if (
$image_download_url == LINKCRYPTWS_FOLDERKEY $lcdl '') {
                    
$returnData file_get_contents(LINKCRYPTWS $lcdl);
                    
                    if (!
$returnData or !$returnData = @simplexml_load_string($returnData)) {
                        echo 
"Keine Daten empfangen!";
                    } else {
                        
$image_filesize $returnData->folderSize ' MB';
                        
$image_provider $returnData->folderHoster;
                        if (
$config['container_name'] == 1) {
                        }
                        
$image_name $image_name;
                    }
                }

Aber wie gesagt, deine Variante werde ich mir in jedem Fall anschauen.
Um selber dein Script zu testen, brauchst du im Grunde keine Zugangsdaten.
Bis auf Share-Linkz, ist die Abfrage der Daten ohne APIKey möglich.
Für Share-Linkz kann ich dir einen zum testen geben.
Für die anderen, reicht lediglich ein Ordnerlink.
Logged
Rembrandt
4images Moderator
4images Guru
*****
Offline Offline

Posts: 4187

Thank You
-Given: 116
-Receive: 899

Vienna


View Profile WWW
« Reply #9 on: November 12, 2014, 05:12:48 AM »

...
Für Share-Linkz kann ich dir einen zum testen geben.
Für die anderen, reicht lediglich ein Ordnerlink.
Ah ok, kannst du mir die beiden Links per PM zukommen lassen?

mfg Andi
Logged

Meine 4Images Modifikationen  Now over 100 Modification Online!    Meine 4images Demo Seite


Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.051 seconds with 19 queries.
Post your comments here