php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-09-2007, 11:48
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard fsockopen und arrays

Hallo,

wir kann ich denn, oder geht das überhaupt, Arrays mit fsockopen übertragen. Habe das bereits mit serialize($data); und unserialize($_POST); probiert aber es kommt da nix an... das array ist leer. Geht das überhaupt mit fsockopen?
Mit Zitat antworten
  #2 (permalink)  
Alt 26-09-2007, 11:56
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

sender.php
PHP-Code:
<?php echo serialize(array('foo' => 'bar')); ?>
receiver.php
PHP-Code:
<?php
if ($fp fsockopen('localhost'80)) {
    
fputs($fp"GET /path/to/sender.php HTTP/1.0\r\n\r\n");
    
$buffer '';
    while (!
feof($fp)) $buffer .= fgets($fp128);
    
fclose($fp);
    
$a unserialize($buffer);
}
?>
Natürlich könnte receiver.php auch einfach so aussehen:
PHP-Code:
<?php
$a 
unserialize(
        
file_get_contents('http://localhost/path/to/sender.php')
     ); 
?>
Mit Zitat antworten
  #3 (permalink)  
Alt 26-09-2007, 13:27
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, habe ich vergessen zu erwähnen... es muss genau umgekehrt erfolgen... mit fsockopen und der funktion PostToHost (siehe hier: http://forum.de.selfhtml.org/archiv/2004/12/t96441/) sende ich die Daten zu dem Server 2 der diese dann wieder verarbeiten muss. Hier kommt nichts an. Mit deinem Script würde ich ja die Variablen vom Server 1 auslesen. Die Daten werden aber an den Server 2 gesendet.
Mit Zitat antworten
  #4 (permalink)  
Alt 26-09-2007, 13:32
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Was ergibt var_dump( $_POST ); auf dem 2ten Server?? (Die Ausgabe in eine Datei schreiben!)
Mit Zitat antworten
  #5 (permalink)  
Alt 26-09-2007, 15:50
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was ausgegeben wird, habe ich in eine .txt Datei schreiben lassen und angehängt. Wenn ich jetzt jedoch unserialize auf POST anwende bekomme ich folgende Meldung:

PHP-Code:
Warningunserialize() expects parameter 1 to be string, array given in... 
Na ja, damit kann ich nicht wirklich was anfangen... meine Variable die den Inhalbt aus unserialize beinhalten soll ist auf jedenfall leer.

Warum funktioniert unserialize hier nicht?

PHP-Code:
$data unserialize($_POST); // Server 2 
Mit Zitat antworten
  #6 (permalink)  
Alt 26-09-2007, 15:51
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Meine Datei habe ich vergessen...
Angehängte Dateien
Dateityp: txt var_dump.txt (216 Bytes, 408x aufgerufen)
Mit Zitat antworten
  #7 (permalink)  
Alt 26-09-2007, 16:15
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich bin nun nochmal ein schritt weiter...

PHP-Code:
$data unserialize(stripslashes($_POST)); 
stripslashes() entfernt die escape-zeichen. somit kommt keine fehlermeldung mehr, aber $data ist immer noch leer...
Mit Zitat antworten
  #8 (permalink)  
Alt 26-09-2007, 19:14
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$_POST ist natürlich ein Array ... du musst schon auf ein konkretes Feld zugreifen.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #9 (permalink)  
Alt 26-09-2007, 19:19
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Wie schreibst du die Daten denn rüber?? PHP legt nämlich den Schlüssel s:42:\"betreiber an und den Rest der Daten als Wert zu diesem Schlüssel. Du musst das schon in der Form
Code:
data=SERIALIZED_VALUE
an deinen 2ten Server schicken!
Mit Zitat antworten
  #10 (permalink)  
Alt 26-09-2007, 23:02
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich bin wirklich am verzweifeln, mit meinem wert hat wirklich was nicht gestimmt. jetzt ist es aber richtig, allerdings kommt einfach nix auf server 2 an. ich bin total am ende, weiß nicht mehr woran es liegt, deshalb habe ich euch anbei mal die drei scripte angehängt, mit der bitte das dies mal jemand in augenschein nimmt. ich bin wirklich mit meinem latein am ende...

in script drei habe ich mit print_r($_POST); alle empfangen daten versucht auszugeben. aber es kommt nix an, warum? keine ahnung...

mit der hoffnung auf hilfe... vielen dank!
Angehängte Dateien
Dateityp: txt scripte.txt (2,5 KB, 413x aufgerufen)
Mit Zitat antworten
  #11 (permalink)  
Alt 27-09-2007, 01:01
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Ich habe da in meiner Wühlkiste noch sowas. Allerdings muß ich von der Verwendung abraten, es sei den, du verschlüsselst (z.B. SSL) die seriellen Daten. Es gibt oder gab Sicherheitslücken in unserialize!!!

Alternativ könntest du die wddx oder json Funktionen zum serialisieren benutzen. Oder noch besser: SOAP

Jetzt zum Code:
Werf die beiden Dateien zum testen erstmal in einen beliebigen Order.

Zum Beweis, dass es auch funktioniert, wird ucfirst() auf alle Arrayelemente angewendet.

Um andere Server anzusprechen ändere in client.php die $server Variable.

PHP-Code:
 <?php
// Dises ist die client.php
error_reporting(E_ALL);
ini_set('display_errors'TRUE);
 
$server  'http://';
$server .=  $_SERVER["HTTP_HOST"];
$server .=  dirname($_SERVER["SCRIPT_NAME"]);
$server .= '/server.php';

$testarray[] = 'bli';
$testarray[] = 'bla';
$testarray[] = 'blub';

$post_data 'test='.serialize($testarray);

$ch curl_init();
curl_setopt($chCURLOPT_URL$server);
curl_setopt($chCURLOPT_POST);
curl_setopt($chCURLOPT_POSTFIELDS$post_data);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
$postResult curl_exec($ch);
if (
curl_errno($ch)) print curl_error($ch);
curl_close($ch);

var_export(unserialize($postResult));
phpinfo();
?>
PHP-Code:
 <?php
// Dises ist die server.php
error_reporting(E_ALL);
ini_set('display_errors'TRUE);

if(empty(
$_POST['test']))
  die(
'Sorry, bitte nicht direkt aufrufen');

$test $_POST['test'];

if(
function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
  
$test stripslashes($test);

$testarray array_map('ucfirst',unserialize($test));
print 
serialize($testarray);
?>
__________________
Wir werden alle sterben
Mit Zitat antworten
  #12 (permalink)  
Alt 27-09-2007, 10:26
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$var2 serialize($_POST);
print_r($var2);

$request PostToHost($var2"eintragen.php""""");

// ...
print_r($_POST);
$data unserialize(stripslashes($_POST));
print_r($data); 
Was bekommst du da jeweils für ausgaben?
Musst du $var2 nicht in der Form "value=".serialize($_POST); aufbauen und in der Empfangsdatei nur $_POST['value'] entserialisieren??
Mit Zitat antworten
  #13 (permalink)  
Alt 28-09-2007, 18:50
bweichel
 Registrierter Benutzer
Links : Onlinestatus : bweichel ist offline
Registriert seit: Aug 2004
Beiträge: 452
bweichel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jaaaaaaa, da funzt jetzt endlich... @PHP-Desaster... DANKE!

Mmh, nun habe ich noch Probleme mit urlencode und -decode... einige geben in die Felder "A & B" ein oder ähnliches. Aus diesem Grund wollte ich den kompletten String kodieren und auf der andern Seite wieder dekodieren... geht aber nicht, es kommt mal wieder nix an...

PHP-Code:
$var2 'q='.serialize($_POST);
$var2 urlencode($var2);

// auf server2
$var urldecode($_POST['q']);
$data unserialize($var); 
Mit Zitat antworten
  #14 (permalink)  
Alt 29-09-2007, 14:27
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
geht aber nicht, es kommt mal wieder nix an...
Jetzt aber erstmal ein paar Testausgaben posten und erklären, was denn nicht klappt!!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:02 Uhr.