Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR
PEAR Forum d'entraide sur le framework PHP : PEAR. Avant de poster -> cours PEAR.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2007, 13h28   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 42
Points : 10
Points : 10
Par défaut [Net_Traceroute] Object of class could not be converted to string

Hi all,

Afin d'éxécuter un Traceroute sur une page Web, je me suis jeter dans les outils PEAR, et bon, c'est sympa, mais dès que l'on creuse, on se perd vite (programmation Objet, Classe etc..)

Donc, tout baigne pour utiliser Net_Traceroute, mais je voudrais sauvegarder le résultat dans un simple fichier texte, et là misère:

Code :
1
2
 
PHP Catchable fatal error:  Object of class Net_Traceroute_Result could not be converted to string in /var/www/html/test.html on line 52 ...
et voila mon script

Code :
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
 
<head></head> 
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    Host: <input type="text" name="hostate">
    Hostgroup: <input type="text" name="hostgroup"> 
    <input type="submit" name="Traceroute"> 
</form> 
 
<?php 
//recup variable du form
 
$hostgroup = $_POST['hostgroup']; 
 
if ($_POST['hostate']) { 
    // include class 
    include("Net/Traceroute.php"); 
 
    // initialize object 
     $tr = Net_Traceroute::factory();
 
 
    // perform traceroute
 
$result = $tr->traceroute($_POST['hostate']); 
 
echo "Cible IP: " . $result->getTargetIp() . "\n";
?>
<br>
<?php
echo "Nombre de sauts: " . $result->getHops() . "\n";
?>
<br>
<?php
echo "TTL: " . $result->getTTL() . "\n";
?>
<br>
<?php
echo "Raw data: " . implode("\n", $result->getRawData()); 
 
/////////////////////////////////////////////////////////////
$jour = date("d/m/Y/G:i:s");
 
 
//inscription dans fic logs
 
$fptraceroute = fopen('/var/www/html/checkstate/cust/test.txt, 'w+');
fputs($fptraceroute,
"$jour  \n
$result   \n
} \n
\n"                              >>>>>>>>LIGNE 52
);
fclose($fptraceroute);
//////////////////////////////////////////////////////////////////
 
} 
?> 
 
</body> 
</html>
Donc, impossible, avec la programmation Orienté Objet je suis sous l'eau, donc help !!
Merci
Nicox
nicoxweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 15h10   #2
Membre habitué
 
Inscription : mars 2007
Messages : 210
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : mars 2007
Messages : 210
Points : 114
Points : 114
ta une erreur
$fptraceroute = fopen('/var/www/html/checkstate/cust/test.txt, 'w+');

il te manque une '
xclam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 21h32   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 42
Points : 10
Points : 10
Par défaut re..

Non, c'est moi qui l'avait mal copié, en fait elle est comme cela:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$jour = date("d/m/Y/G:i:s");
 
 
//inscription dans fic logs
 
$fptraceroute = fopen('/var/www/html/checkstate/cust/'.$hostgroup.'.state' , 'w+');
fputs($fptraceroute,
"$group \n
$jour  \n
$result   \n
} \n
\n"
);
Je l'avais un peu adapté dans mon premier post pour être plus clair, donc là je pense que tous les ' y sont .
Quelqu'un a une autre idée ?, thanks

Nicox
nicoxweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 22h03   #4
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 42
Points : 10
Points : 10
Par défaut re

J'ai trouvé sur le net que l'outil pour me permettre de visualiser un objet dans PHP5 est:

__toString()

C'est bien beau, mais j'fais comment ? des idées ?
nicoxweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 22h58   #5
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 42
Points : 10
Points : 10
Par défaut rererere

OK, j'ai rajouté ça:

Code :
1
2
3
4
5
6
 
//implementing  __toString() 
 
 public function __toString() {               >>>>>>line24
        return $result->getRawData;
    }
et là j'ai droit à un " PhP Parse error : syntax error Unexpected T_Public on line 24

Si quelqu'un a une idée.. sinon, ami Modérateur, que penses-tu de me renvoyer vers la rubrique PHP/SYNTAXE , les pros de le POO en PhP ont l'air d'y être, hein ?

Nicox
nicoxweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 23h19   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
1
2
3
4
5
6
7
8
$fptraceroute = fopen('/var/www/html/checkstate/cust/'.$hostgroup.'.state' , 'w+');
fputs($fptraceroute,
"$group \n
$jour  \n
" . implode("\n", $result->getRawData()) . "  \n
} \n
\n"
);
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2007, 13h21   #7
Candidat au titre de Membre du Club
 
Inscription : mai 2006
Messages : 42
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 42
Points : 10
Points : 10
Par défaut [RESOLU]

OK, thanks pour votre aide, ça marche nickel, merci beaucoup

A++
nicoxweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web