Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #21754 > unrolled thread

verificare attivazione dell'error_prepend_string

Started byalex <1j9448a02@lnx159sneakemail.com.invalid>
First post2017-11-15 09:27 +0100
Last post2017-11-18 19:49 +0100
Articles 20 on this page of 26 — 2 participants

Back to article view | Back to it.comp.www.php


Contents

  verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-15 09:27 +0100
    Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-15 09:43 +0100
      Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-15 10:15 +0100
        Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-15 21:01 +0100
          Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-15 21:43 +0100
            Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-16 16:54 +0100
              Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-16 19:57 +0100
                Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-17 01:08 +0100
                  Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-17 10:59 +0100
                    Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-17 14:44 +0100
                    Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-18 00:00 +0100
                      Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-18 10:27 +0100
                        Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-18 14:07 +0100
                          Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-18 19:46 +0100
                            Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-18 20:45 +0100
                              Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-20 12:04 +0100
                                Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-20 19:07 +0100
                                  Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-20 21:43 +0100
                                    Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-20 23:34 +0100
                                      Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-21 09:49 +0100
                                        Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-21 15:29 +0100
                                          Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-21 18:15 +0100
                      Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-18 10:36 +0100
                        Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-18 10:40 +0100
                          Re: verificare attivazione dell'error_prepend_string Leonardo Serni <lserni@gmail.com> - 2017-11-18 14:08 +0100
                            Re: verificare attivazione dell'error_prepend_string alex <1j9448a02@lnx159sneakemail.com.invalid> - 2017-11-18 19:49 +0100

Page 1 of 2  [1] 2  Next page →


#21754 — verificare attivazione dell'error_prepend_string

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-15 09:27 +0100
Subjectverificare attivazione dell'error_prepend_string
Message-ID<ougtop$1fa7$1@gioia.aioe.org>
$url = 'http://qualcosa';

$contents = file_get_contents($url);
if (false === $contents) exit(1);

$error_prepend_string = 'test_666';

if (false !== strpos($contents, $error_prepend_string)) throw new 
\Exception(
     "La pagina '$url' contiene l'error-prepend-string 
'$error_prepend_string'."
);


Naturalmente affinchè tutto funzioni *correttamente* bisogna aprire il 
file */php.ini e controllare che ci sia la riga

error_prepend_string = "test_666"

e che sia *decommentata*.

Infatti spesso succede che in seguito ad aggiornamenti di apache, php, 
ecc., tale impostazione venga riportata allo stato iniziale, e se nella 
pagina 'http://qualcosa' c'è qualche errore, non viene lanciata 
l'apposita exception: tu pensi che tutto stia funzionando invece quando 
tra una settimana/mese/anno te ne accorgi devi aprire il pronto soccorso :)

Come si può fare per verificare che, nell'apposito php.ini, 
l'error_prepend_string sia impostata correttamente?

[toc] | [next] | [standalone]


#21755

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-15 09:43 +0100
Message-ID<ougumk$1gp8$1@gioia.aioe.org>
In reply to#21754
Il 15/11/2017 09:27, alex ha scritto:
> $url = 'http://qualcosa';
> 
> $contents = file_get_contents($url);
> if (false === $contents) exit(1);
> 
> $error_prepend_string = 'test_666';
> 
> if (false !== strpos($contents, $error_prepend_string)) throw new 
> \Exception(
>      "La pagina '$url' contiene l'error-prepend-string 
> '$error_prepend_string'."
> );
> 
> 
> Naturalmente affinchè tutto funzioni *correttamente* bisogna aprire il 
> file */php.ini e controllare che ci sia la riga
> 
> error_prepend_string = "test_666"
> 
> e che sia *decommentata*.
> 
> Infatti spesso succede che in seguito ad aggiornamenti di apache, php, 
> ecc., tale impostazione venga riportata allo stato iniziale, e se nella 
> pagina 'http://qualcosa' c'è qualche errore, non viene lanciata 
> l'apposita exception: tu pensi che tutto stia funzionando invece quando 
> tra una settimana/mese/anno te ne accorgi devi aprire il pronto soccorso :)
> 
> Come si può fare per verificare che, nell'apposito php.ini, 
> l'error_prepend_string sia impostata correttamente?

Naturalmente vorrei evitare istruzioni come questa

if 
(parse_ini_file('/etc/php/7.0/apache2/php.ini')['error_prepend_string'] 
!= 'test_666') throw new Exception('valore inaspettato');

anche perchè non è detto che il percorso di php.ini sia proprio 
*/etc/php/7.0/apache2/php.ini*

Non esiste proprio una funzione tipo 
*apache_get_ini('error_prepend_string')* ?

[toc] | [prev] | [next] | [standalone]


#21756

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-15 10:15 +0100
Message-ID<c61o0dhtnlrk2rpqatnanm83hkd7i0fbtr@L.Serni>
In reply to#21755
On Wed, 15 Nov 2017 09:43:00 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>> Naturalmente affinchè tutto funzioni *correttamente* bisogna aprire il 
>> file */php.ini e controllare che ci sia la riga

>> error_prepend_string = "test_666"

>Non esiste proprio una funzione tipo 
>*apache_get_ini('error_prepend_string')* ?

Se parli di questa variabile del PHP...

http://php.net/manual/it/errorfunc.configuration.php#ini.error-prepend-string

...la funzione per leggerne il valore c'è:

http://php.net/manual/en/function.ini-get.php

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21757

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-15 21:01 +0100
Message-ID<oui6dv$1nda$1@gioia.aioe.org>
In reply to#21756
Il 15/11/2017 10:15, Leonardo Serni ha scritto:
> On Wed, 15 Nov 2017 09:43:00 +0100, alex
> <1j9448a02@lnx159sneakemail.com.invalid> wrote:
> 
>>> Naturalmente affinchè tutto funzioni *correttamente* bisogna aprire il
>>> file */php.ini e controllare che ci sia la riga
> 
>>> error_prepend_string = "test_666"
> 
>> Non esiste proprio una funzione tipo
>> *apache_get_ini('error_prepend_string')* ?
> 
> Se parli di questa variabile del PHP...
> 
> http://php.net/manual/it/errorfunc.configuration.php#ini.error-prepend-string
> 
> ...la funzione per leggerne il valore c'è:
> 
> http://php.net/manual/en/function.ini-get.php
> 
> Leonardo
> 

Lo script che ho illustrato viene eseguito da console, e normalmente in 
cli-mode quel *prefisso* non viene usato.
Per accedere al valore che voglio lo devo lanciare dal browser, ma 
siccome è uno script di test deve essere usato da cli (come come da 
consuetudine e per agilità d'uso), anche se viene testata una web page.

Quindi da cli è possibile accede alla *versione web* di 
error_prepend_string?

[toc] | [prev] | [next] | [standalone]


#21758

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-15 21:43 +0100
Message-ID<m39p0dp1n5objs7rt8uqpg1m8m8cg05lk2@L.Serni>
In reply to#21757
On Wed, 15 Nov 2017 21:01:05 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Lo script che ho illustrato viene eseguito da console, e normalmente in 
>cli-mode quel *prefisso* non viene usato.
>Per accedere al valore che voglio lo devo lanciare dal browser, ma 
>siccome è uno script di test deve essere usato da cli (come come da 
>consuetudine e per agilità d'uso), anche se viene testata una web page.

Uno script per testare una web page, che _usa_ informazioni tipiche della
configurazione web, deve accedere "da web", o non è uno "script di test";
è uno script che testa qualcos'altro (come difatti ti sei già accorto).

Secondo me, la via più semplice è usare curl (direttamente o via wrapper,
come ad es. Codeception). YMWV.

>Quindi da cli è possibile accede alla *versione web* di 
>error_prepend_string?

Non in maniera pulita e portabile, che sappia io. Fra i vari modi sporchi
proverei fra i primi "php -c" per caricare il file di php.ini per il web.

Ma, per quella strada, il framework di test diventa un accrocco tenuto su
da spago e chewing-gum (been there, done that), e devi cominciare a farti
qualche test sul framework di test.

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21759

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-16 16:54 +0100
Message-ID<oukcbs$l64$1@gioia.aioe.org>
In reply to#21758
Il 15/11/2017 21:43, Leonardo Serni ha scritto:
> Leonardo
> 

grazie per le opinioni :)

[toc] | [prev] | [next] | [standalone]


#21760

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-16 19:57 +0100
Message-ID<oukn6m$18mi$1@gioia.aioe.org>
In reply to#21759
Il 16/11/2017 16:54, alex ha scritto:
> Il 15/11/2017 21:43, Leonardo Serni ha scritto:
>> Leonardo
>>
>
> grazie per le opinioni :)

Però se lo script va eseguito nel browser come faccio a lanciarlo 
automaticamente?
Tale script  naturalmente fa parte di una global-test-suite 
(global-test-suite.sh) che lancia a sua volta altri test-script tra cui 
quello di cui stiamo parlando.

[toc] | [prev] | [next] | [standalone]


#21761

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-17 01:08 +0100
Message-ID<91as0ddqc75ga5qfe5h86n151fuis2k4i6@L.Serni>
In reply to#21760
On Thu, 16 Nov 2017 19:57:17 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Però se lo script va eseguito nel browser come faccio a lanciarlo 
>automaticamente?

Lo script va eseguito nel server, e per farlo da linea di comando

<cite>
Secondo me, la via più semplice è usare curl (direttamente o via wrapper,
come ad es. Codeception). YMWV.
</cite>

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21762

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-17 10:59 +0100
Message-ID<oumbu5$1kdc$1@gioia.aioe.org>
In reply to#21761
Il 17/11/2017 01:08, Leonardo Serni ha scritto:
> On Thu, 16 Nov 2017 19:57:17 +0100, alex
> <1j9448a02@lnx159sneakemail.com.invalid> wrote:
> 
>> Però se lo script va eseguito nel browser come faccio a lanciarlo
>> automaticamente?
> 
> Lo script va eseguito nel server, e per farlo da linea di comando
> 
> <cite>
> Secondo me, la via più semplice è usare curl (direttamente o via wrapper,
> come ad es. Codeception). YMWV.
> </cite>

$ cat /tmp/test.php
<?php

$error_prepend_string = ini_get('error_prepend_string');

if (strlen($error_prepend_string) <= 0) throw new \Exception(
     "Error prepend string non valido."
);

$url = $_GET['resource_to_test'];

$contents = file_get_contents($url);
if (false === $contents) exit(1);

if (false !== strpos($contents, $error_prepend_string)) throw new 
\Exception(
     "La pagina '$url' contiene l'error-prepend-string 
'$error_prepend_string'."
);

Proviamo

$ curl http://tmp.local/test.php?resource_to_test=http://example.com && 
echo ok
ok

Può andar bene?

[toc] | [prev] | [next] | [standalone]


#21763

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-17 14:44 +0100
Message-ID<oump3b$dpn$1@gioia.aioe.org>
In reply to#21762
Il 17/11/2017 10:59, alex ha scritto:
> 
> Può andar bene?

Pensavo potesse andar bene invece

$ curl http://tmp.local/test.php?resource_to_test=http://ivalid && echo 
"TUTTO OK"
test_643597<br />
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' 
border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span 
style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( 
! )</span> Warning: file_get_contents(): php_network_getaddresses: 
getaddrinfo failed: Name or service not known in /tmp/test.php on line ...
TUTTO OK

Dice che è tutto ok, invece... :(

[toc] | [prev] | [next] | [standalone]


#21764

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-18 00:00 +0100
Message-ID<dbpu0dpdaovnvadc20qh35hbkf932gloha@L.Serni>
In reply to#21762
On Fri, 17 Nov 2017 10:59:33 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

><?php
>
>$error_prepend_string = ini_get('error_prepend_string');
>
>if (strlen($error_prepend_string) <= 0) throw new \Exception(
>     "Error prepend string non valido."
>);

Ti capita spesso che strlen ritorni valori negativi?

>$url = $_GET['resource_to_test'];
>$contents = file_get_contents($url);

Allora, tu quello che vuoi controllare è che la risorsa non dia errore.

Gli errori possono essere di tre tipi:

	- viene ritornato un codice diverso da 200.
	- viene ritornato un output che contiene ERROR_STRING.
	- viene ritornato un output diverso da quello atteso.

Tutto questo lo fai già tranquillamente appunto con Codeception. Però se ti
senti di reinventare la ruota, si può.

Per controllare il prepend_string, io userei una paginetta fuori mano messa
lì a quello scopo. E anzi, magari le farei stampare il phpinfo() in modo da
controllare tutte le stringhe che mi venissero in mente.

Una volta che quella pagina ha dato l'OK, posso usare l'hack del prepend in
modo da accorgermi se si è verificato un errore.

    #!/bin/bash

    curl --silent --dump-header - "$1" > tmp.txt 2>&1

    if (! grep "^HTTP/1.1 200 OK$" tmp.txt > /dev/null ); then
	echo "La risorsa $1 è in errore."
	exit 2
    fi

    if (grep $ERROR_PREPEND tmp.txt > /dev/null ); then
        echo "La risorsa $1 ha sollevato una eccezione"
	exit 3
    fi

    echo "OK"


Lo script sopra lo puoi lanciare con ./testresource.sh "http://example.com"

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21765

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-18 10:27 +0100
Message-ID<ououdo$1j5b$1@gioia.aioe.org>
In reply to#21764
Il 18/11/2017 00:00, Leonardo Serni ha scritto:
> On Fri, 17 Nov 2017 10:59:33 +0100, alex
> <1j9448a02@lnx159sneakemail.com.invalid> wrote:
> 
>> <?php
>>
>> $error_prepend_string = ini_get('error_prepend_string');
>>
>> if (strlen($error_prepend_string) <= 0) throw new \Exception(
>>      "Error prepend string non valido."
>> );
> 
> Ti capita spesso che strlen ritorni valori negativi?
> 

Hai ragione :)

>> $url = $_GET['resource_to_test'];
>> $contents = file_get_contents($url);
> 
> Allora, tu quello che vuoi controllare è che la risorsa non dia errore.
> 
> Gli errori possono essere di tre tipi:
> 
> 	- viene ritornato un codice diverso da 200.
> 	- viene ritornato un output che contiene ERROR_STRING.
> 	- viene ritornato un output diverso da quello atteso.
> 
> Tutto questo lo fai già tranquillamente appunto con Codeception. Però se ti
> senti di reinventare la ruota, si può.
> 
> Per controllare il prepend_string, io userei una paginetta fuori mano messa
> lì a quello scopo. E anzi, magari le farei stampare il phpinfo() in modo da
> controllare tutte le stringhe che mi venissero in mente.
> 

L'esempio che ti ho fatto vedere (/tmp/test.php) può andar bene (non mi 
hai ancora risposto)?

> Una volta che quella pagina ha dato l'OK, posso usare l'hack del prepend in
> modo da accorgermi se si è verificato un errore.
> 

Cioè?

>      #!/bin/bash
> 
>      curl --silent --dump-header - "$1" > tmp.txt 2>&1
> 

1. Perchè non fare ouput=$(curl --silent --dump-header - "$1") ?
2. Perchè reindizzare 2>&1 ?

>      if (! grep "^HTTP/1.1 200 OK$" tmp.txt > /dev/null ); then
> 	echo "La risorsa $1 è in errore."
> 	exit 2
>      fi
> 
>      if (grep $ERROR_PREPEND tmp.txt > /dev/null ); then
>          echo "La risorsa $1 ha sollevato una eccezione"
> 	exit 3
>      fi

$ERROR_PREPEND da dove lo ricavo?

[toc] | [prev] | [next] | [standalone]


#21768

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-18 14:07 +0100
Message-ID<8hb01ddrlr50gr9efp7n1q7rf6cvh49jbn@L.Serni>
In reply to#21765
On Sat, 18 Nov 2017 10:27:21 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>> Per controllare il prepend_string, io userei una paginetta fuori mano messa
>> lì a quello scopo. E anzi, magari le farei stampare il phpinfo() in modo da
>> controllare tutte le stringhe che mi venissero in mente.

>L'esempio che ti ho fatto vedere (/tmp/test.php) può andar bene (non mi 
>hai ancora risposto)?

E neanche lo farò (perché? Anche a questo non risponderò. Oi. Dove l'ho mai
detto, di essere una persona simpatica e disponibile? Anzi: ho spesso detto
orgogliosamente il contrario).

>> Una volta che quella pagina ha dato l'OK, posso usare l'hack del prepend in
>> modo da accorgermi se si è verificato un errore.

>Cioè?

Quello che fai di solito. Ma dividi le operazioni... prima verifichi che ci
sia il prepend_string nelle impostazioni. Poi chiami tutte le risorse, e ti
accerti che la stringa NON sia presente. Sapendo che in caso di errore c'è,
il fatto che non ci sia esclude [quel tipo di] errori.

Fare ogni volta i due test insieme complica le cose, e potrebbe darsi che -
per errore - il test di prepend_string sia fatto sulla macchina dove girano
i test (quella che chiama curl o include), mentre la macchina sotto esame è
configurata diversamente. Non solo: perché ti funzioni una roba come

	 file_get_contents($url);

sei costretto ad attivare il remote file include nella macchina bersaglio -
mentre è raccomandato di tenerlo disattivato per sicurezza; il che ti vuole
dire anche, il giorno che installi ogni cosa su un provider dove l'.INI non
è (del tutto) sotto il tuo controllo, che tutto il framework di test dovrai
riscrivertelo.

La mia ponderata opinione è che sia un mettere il culo nelle pedate :-)

>>      #!/bin/bash

>>      curl --silent --dump-header - "$1" > tmp.txt 2>&1

>1. Perchè non fare ouput=$(curl --silent --dump-header - "$1") ?
>2. Perchè reindizzare 2>&1 ?

2. Perché voglio sapere tutto, anche gli errori di curl. Questo è un
   test: deve andare TUTTO BENE, o sennò voglio sapere perché.

1. Perché poi mi tocca fare echo "$OUTPUT" | grep e magari tot altre
   cose, che con stdin lavorano male. E' un gusto, però. Se ti trovi
   meglio con le variabili, usale senz'altro.

>>      if (! grep "^HTTP/1.1 200 OK$" tmp.txt > /dev/null ); then
>> 	echo "La risorsa $1 è in errore."
>> 	exit 2
>>      fi
>> 
>>      if (grep $ERROR_PREPEND tmp.txt > /dev/null ); then
>>          echo "La risorsa $1 ha sollevato una eccezione"
>> 	exit 3
>>      fi

>$ERROR_PREPEND da dove lo ricavo?

E' la stringa che usi come prepend-string; ci metti quel che ti pare
- basta sia la stessa che c'è in php.ini.

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21770

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-18 19:46 +0100
Message-ID<oupv6e$168e$1@gioia.aioe.org>
In reply to#21768
Il 18/11/2017 14:07, Leonardo Serni ha scritto:
>>> Una volta che quella pagina ha dato l'OK, posso usare l'hack del prepend in
>>> modo da accorgermi se si è verificato un errore.
> 
>> Cioè?
> 
> Quello che fai di solito. Ma dividi le operazioni... prima verifichi che ci
> sia il prepend_string nelle impostazioni. Poi chiami tutte le risorse, e ti

È quello che ho fatto

> accerti che la stringa NON sia presente. Sapendo che in caso di errore c'è,
> il fatto che non ci sia esclude [quel tipo di] errori.
> 

È quello che ho fatto.
E che non ho capito bene cosa volevi dire, mi sembrava chissà cosa :)
Hack, crack, fish and crock :D

>>>       #!/bin/bash
> 
>>>       curl --silent --dump-header - "$1" > tmp.txt 2>&1
> 
>> 1. Perchè non fare ouput=$(curl --silent --dump-header - "$1") ?
>> 2. Perchè reindizzare 2>&1 ?
> 
> 2. Perché voglio sapere tutto, anche gli errori di curl. Questo è un
>     test: deve andare TUTTO BENE, o sennò voglio sapere perché.
> 

$ curl 192.168.1.31 > /tmp/abccccccc 2>&1

Non sembra avere effetto, a meno che

$ curl 192.168.1.31 2>&1
curl: (7) Failed to connect to 192.168.1.31 port 80: Nessun 
instradamento per l'host

Allora si!!!
Ma perche indirizzare strerr su strout?
Forse non ho capito bene quali sarebbero gli errori di curl, ma non ti 
arrabbiare di nuovo :)

>>>       if (! grep "^HTTP/1.1 200 OK$" tmp.txt > /dev/null ); then
>>> 	echo "La risorsa $1 è in errore."
>>> 	exit 2
>>>       fi
>>>
>>>       if (grep $ERROR_PREPEND tmp.txt > /dev/null ); then
>>>           echo "La risorsa $1 ha sollevato una eccezione"
>>> 	exit 3
>>>       fi
> 
>> $ERROR_PREPEND da dove lo ricavo?
> 
> E' la stringa che usi come prepend-string; ci metti quel che ti pare
> - basta sia la stessa che c'è in php.ini.

Certamente... troppo lavoro mi sta stancando :)

[toc] | [prev] | [next] | [standalone]


#21772

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-18 20:45 +0100
Message-ID<89311d1qbtn39mf8lkpjvjs76nam1vkbb5@L.Serni>
In reply to#21770
On Sat, 18 Nov 2017 19:46:40 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Il 18/11/2017 14:07, Leonardo Serni ha scritto:
>>> Cioè?

>> Quello che fai di solito. Ma dividi le operazioni... prima verifichi che ci
>> sia il prepend_string nelle impostazioni. Poi chiami tutte le risorse, e ti

>È quello che ho fatto

Mi sono espresso male.

Intendo: UN test che verifica che ci sia il prepend_string, andando a chiamare
una risorsa che legge solo quel valore da php.ini e nient'altro e ritorna "OK"
oppure "KO".

Poi tutti gli altri test alle altre risorse dove error_prepend non lo usi più.

>Ma perche indirizzare strerr su strout?

Così leggi solo stdout. Ma se vuoi, ridirigi su due file diversi. Sono gusti.

>Forse non ho capito bene quali sarebbero gli errori di curl, ma non ti 
>arrabbiare di nuovo :)

Tranquillo. Arrabbiato, seddiovuole, m'hanno visto in pochi.

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21773

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-20 12:04 +0100
Message-ID<ouucsa$1hug$1@gioia.aioe.org>
In reply to#21772
Il 18/11/2017 20:45, Leonardo Serni ha scritto:
> On Sat, 18 Nov 2017 19:46:40 +0100, alex
> <1j9448a02@lnx159sneakemail.com.invalid> wrote:
> 
>> Il 18/11/2017 14:07, Leonardo Serni ha scritto:
>>>> Cioè?
> 
>>> Quello che fai di solito. Ma dividi le operazioni... prima verifichi che ci
>>> sia il prepend_string nelle impostazioni. Poi chiami tutte le risorse, e ti
> 
>> È quello che ho fatto
> 
> Mi sono espresso male.
> 
> Intendo: UN test che verifica che ci sia il prepend_string, andando a chiamare
> una risorsa che legge solo quel valore da php.ini e nient'altro e ritorna "OK"
> oppure "KO".
> 
> Poi tutti gli altri test alle altre risorse dove error_prepend non lo usi più.
> 

Preferisco uno script centrale standard per testare qualunque risorsa

http://test/test.php?risorsa_da_tesare=http://a/b/c

Naturalmente all'inizio della pagina (test.php) ci metto il controllo 
che tu hai citato.

Poi per comodità apro l'url sopra citato con curl

>> Ma perche indirizzare strerr su strout?
> 
> Così leggi solo stdout. Ma se vuoi, ridirigi su due file diversi. Sono gusti.
> 

Perchè fare pasticci?
Gli errori su stderr, il resto su stdout.

[toc] | [prev] | [next] | [standalone]


#21778

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-20 19:07 +0100
Message-ID<md661d9jns1uskp081k2t9a3n1om17i6ed@L.Serni>
In reply to#21773
On Mon, 20 Nov 2017 12:04:43 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>>>> Quello che fai di solito. Ma dividi le operazioni... prima verifichi che ci
>>>> sia il prepend_string nelle impostazioni. Poi chiami tutte le risorse, e ti

>> Intendo: UN test che verifica che ci sia il prepend_string, andando a chiamare
>> una risorsa che legge solo quel valore da php.ini e nient'altro e ritorna "OK"
>> oppure "KO".

>> Poi tutti gli altri test alle altre risorse dove error_prepend non lo usi più.

>Preferisco uno script centrale standard per testare qualunque risorsa
>
>http://test/test.php?risorsa_da_tesare=http://a/b/c

Uhm. Ma perché specifichi "http://a", però?

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21780

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-20 21:43 +0100
Message-ID<ouvesp$1i3k$1@gioia.aioe.org>
In reply to#21778
Il 20/11/2017 19:07, Leonardo Serni ha scritto:
>> Preferisco uno script centrale standard per testare qualunque risorsa
>>
>> http://test/test.php?risorsa_da_tesare=http://a/b/c
> Uhm. Ma perché specifichi "http://a", però?

????
Chiedo scusa ma non ho capito la domanda...

[toc] | [prev] | [next] | [standalone]


#21781

FromLeonardo Serni <lserni@gmail.com>
Date2017-11-20 23:34 +0100
Message-ID<3ql61dle2hsmiglnfobmdtfkfcqa8pjqpb@L.Serni>
In reply to#21780
On Mon, 20 Nov 2017 21:43:15 +0100, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Il 20/11/2017 19:07, Leonardo Serni ha scritto:
>>> Preferisco uno script centrale standard per testare qualunque risorsa

>>> http://test/test.php?risorsa_da_tesare=http://a/b/c
>> Uhm. Ma perché specifichi "http://a", però?

>????
>Chiedo scusa ma non ho capito la domanda...

Perché ripeti http://? Non è sufficiente il path della risorsa?

	http://test/test.php/risorsa_da_testare=/path/file.php

Piuttosto, mi pare che così tu possa testare soltanto risorse di tipo
idempotente, che non hanno bisogno di parametri. Se per esempio serve
testare un modulo che riceve i campi di un form di contatto, come gli
passi i valori dei campi?

Leonardo

-- 

Ya se escucha sonar la metralla, ya el clarín toca fuego graneado:
ahora o nunca, muchachos arriba a acabar a estos hijos del diablo.

[toc] | [prev] | [next] | [standalone]


#21782

Fromalex <1j9448a02@lnx159sneakemail.com.invalid>
Date2017-11-21 09:49 +0100
Message-ID<ov0pbg$1qtp$1@gioia.aioe.org>
In reply to#21781
Il 20/11/2017 23:34, Leonardo Serni ha scritto:
> Perché ripetihttp://? Non è sufficiente il path della risorsa?
> 
> 	http://test/test.php/risorsa_da_testare=/path/file.php
> 

Perchè il protocollo potrebbe anche essere un altro (https, ecc.), anche 
se attualmente file_get_contents() supporta solo http (se non sbaglio) 
in futuro chissà...

> Piuttosto, mi pare che così tu possa testare soltanto risorse di tipo
> idempotente, che non hanno bisogno di parametri. Se per esempio serve
> testare un modulo che riceve i campi di un form di contatto, come gli
> passi i valori dei campi?

In tal caso come potrei fare?
Richiamare la pagina col metodo POST (rinunciando naturalmente alla 
comodità di file_get_contents() che usa GET) per inviare tutti i dati 
neccessari?

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | it.comp.www.php


csiph-web