Newsgroup: it.comp.www.php
Titolo: problema con fsockopen ed array associativi

Ciao tutti, 
allora mi sono trovata in un punto cieco della programmazione, ho
bisogno dell'aiuto di qualche guru di php...
fsockopen($config['smtp'], 25, $errno, $errstr, 20);
mi ritorna un errore di connessione perchè probabilmente non risolve il
valore di $config['smtp'](array associativo che contiene dei dati
relativi alla connessione), e getta semplicemente la stringa
$config['smtp'] che non è il server smtp a quale voglio connettermi
ovviamente...
ho provato a fare un eval della variabile ma a quanto pare non va bene
lo stesso...
$sm=$config['smtp'];
eval("\$sm = \"$sm\";");
fsockopen($config['smtp'], 25, $errno, $errstr, 20);
cosa ne dite? che debbo fare?
SHE
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 fsockopen($config['smtp'], 25, $errno, $errstr, 20);
cosa contiene piů precisamente $config['smtp']?
-- 
2T STUDIO - Servizi di Grafica Pubblicitaria e Sviluppo Web
   [web]   
http://www.2t-studio.com
	- Sviluppo Siti e Applicativi Web Oriented Validati W3C
	- Servizi di grafica pubblicitaria ed editoriale
	- Consulenze SEO (Posizionamento motori di ricerca)
   [Email] info [at] 
2t-studio.com

 cosa contiene più precisamente $config['smtp']?
contiene l'indirizzo del smtp..
es: 
mail.freemail.com


 mi ritorna un errore di connessione 
Quale errore di connessione?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 Quale errore di connessione?
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name
or service not known in /var/www/localhost/htdocs/webmail/smtp.php on
line 92
Warning: fsockopen(): unable to connect to :25 in
/var/www/localhost/htdocs/webmail/smtp.php on line 92
, errore SMTP : 0 : Success
Come se si lasciasse vuota la parte del sockopen dedicata alla stringa
del server smtp...
help please..
grazie


 del server smtp...
print ("\$config['smtp'] = $config[smtp]");
fsockopen($config['smtp'], 25, $errno, $errstr, 20);
Che cosa restituisce?
-- 
I am what I am, I do what I can


 Che cosa restituisce?
$config['smtp'] = 
mail.freemail.com
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name
or service not known in /var/www/localhost/htdocs/webmail/smtp.php on
line 93
Warning: fsockopen(): unable to connect to :25 in
/var/www/localhost/htdocs/webmail/smtp.php on line 93
Vedi che prima di  :25 non c'e' niente? li dovrebbe esserci il mio smtp
(
mail.freemail.com
)...
cavolo non so dove andare a sbattere la testa ho provato di tutto
Grazie


 cavolo non so dove andare a sbattere la testa ho provato di tutto
C:\>telnet 
mail.freemail.com
 25
Connecting To mail.freemail.com...Could not open a connection to host
on port 25
 : Connect failed
IMHO non e' un problema di PHP.


 $config['smtp'] = 
mail.freemail.com
$config['smtp'] = "
mail.freemail.com
"
:)


 $config['smtp'] = "
mail.freemail.com
"
Prima di postare ti conviene leggere il post.
$config['smtp'] = 
mail.freemail.com
 non e' codice PHP ma il risultato
di un print.


 
cosa vuoi fare?
connetterti per eseguire operazioni a riguardo della posta?
probabilmente la porta che tenti di aprire e' sbagliata (guessing 110)..
-- 
www.iuz-lab.info

 IMHO non e' un problema di PHP.
mmhh.... ma il domain che ti ho passato non esiste... era un esempio :(


 probabilmente la porta che tenti di aprire e' sbagliata (guessing 110)..
allora... cercherň di essere ancora piů chiara...
IL PROBLEMA NON E' DELLA CONNESSIONE!!!!
Il problema e' che la variabile che passo a fsockopen non viene
interpretata per il suo contenuto ma viene presa come "$config['smtp']".
Ho provato a fargli fare un eval per passargli realmente il contenuto
della variabile ma niente... non capisco....
help


se io al posto della variabile metto la stringa direttamente funziona
tutto...
capito?
grazie 1000


 mmhh.... ma il domain che ti ho passato non esiste... era un esempio
Forse e' il caso che indichi il dominio che stai usando. Sei sicuro di
poter accedere a quel server? Non e' che c'e' un firewall? E' aperta la
porta 25?


 capito?
fsockopen(trim($config['smtp']), 25, $errno, $errstr, 20);


 porta 25?
Il server smtp che usiamo è il nostro.. la porta e' aperta... ma
funziona se scriviamo dentro a mano la stringa.. se invece gli passiamo
la variabile non va...
io penso che non la interpreta... e prende come stringa a cui
connettersi il nome della variabile.
Grazie 1000


 passiamo la variabile non va...
fsockopen(trim($config['smtp']), 25, $errno, $errstr, 20);
-- 


 fsockopen(trim($config['smtp']), 25, $errno, $errstr, 20);
Grande idea... già provato purtroppo... che pacco...
G1000


 Grande idea... già provato purtroppo... che pacco...
$config['smtp'] = 'mailserver';
fsockopen ($config['smtp'], 25, $errno, $errstr, 20);
Funziona (cosi' come e')?


 Funziona (cosi' come e')?
yes man.. 


 SHE
[..]
dove e come valorizzi la variabile interessata?
print_r($config);
echo "config['smtp'] = '{$config['smtp']}' ";
echo ($config['smtp'] == 'mailserver') ? '(valida)' : '(non valida)';
-- 
www.iuz-lab.info

 echo ($config['smtp'] == 'mailserver') ? '(valida)' : '(non valida)';
viene estratto da un db...
e se metto il tuo script mi torna valida :(


 fsockopen(trim($config['smtp']), 25, $errno, $errstr, 20);
non va neanche col trim :(
G1000


 cosa ne dite? che debbo fare?
adesso mi ammazzate :)
domanda: fai l'eval, e poi invece passi $config['smtp']
non dovresti invece fare
$sm=$config['smtp'];
eval("\$sm = \"$sm\";");
fsockopen($sm, 25, $errno, $errstr, 20);
o non ho capito una mazza? :(
Ciao

no tranquillo, il fatto è che l'ho fatto quello che dici solo che non
funziona lo stesso.. :(
G1000


 funziona lo stesso.. :(
hai provato un semplice data casting?
$indirizzo = (string)$config['smtp'] ?
fsockopen($indirizzo, 25, $errno, $errstr, 20);
io una volta sono uscito fuori da un gran casino in questo modo (molto 
banale) :)
Ciao

neanche col cast va già provato purtroppo....



forse dico una stupidaggine, hai provato con:
 fsockopen("$config['smtp']", 25, $errno, $errstr, 20);

  fsockopen("$config['smtp']", 25, $errno, $errstr, 20);
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or
`T_NUM_STRING'


 e se metto il tuo script mi torna valida :(
[..] 
prova un test piu' approfondito..
$str = 'mailserver';
echo "\n('$str')[", strlen($str), '] {';
for ($i = 0; print(ord($str{$i})) AND ($i < strlen($str) - 1); $i++) {
  echo ', ';
}
echo "}\n";
echo "\n('{$config['smtp']}')[", strlen($config['smtp']), '] {';
for ($i = 0; print(ord($config['smtp']{$i})) AND ($i <
strlen($config['smtp']) - 1); $i++) {
  echo ', ';
}
echo "}\n";
ed esamina l'output..
-- 
www.iuz-lab.info

 neanche col cast va già provato purtroppo....
E così hai provato?
$indirizzo = (string)$config['smtp'] ?
fsockopen("$indirizzo", 25, $errno, $errstr, 20);
Ciao

Yes ma non funziona lo stesso, temo che sia un baco di fsockopen :(
G1000
