# [RISOLTO] Html + Php .. variabile $_POST non valorizzata

## xavierLoS

Buon giorno a tutti, 

ho aggiornato il sistema con il profilo hardened il mio server web e da quel momento i miei vari siti che si basavano lo scambio dei dati tra le pagine tramite post non funzionano più..

se uso il metodo get nelle form tutto va bene.. se uso il metodo post vedo una pagina bianca , sembra quasi che il mio server non accetti più la variabile globale $_POST.

ho controllato il file php.ini apache disabilitando moduli che potevano esserne la causa ma nulla. . la variabile $_POST continua a non vunzionare . qualcuno di voi sa per caso la soluzione a questo enigma.. 

dalla lettura dei log di apache non vedo nulla di anomalo

i pacchetti installati sono 

apache 2.2.16

php 5.3.3-r1

spero in un vostro aiuto perchè non so proprio dove sbattere la testa..

grazie mille a tutti

alessandroLast edited by xavierLoS on Sun Dec 05, 2010 1:19 pm; edited 1 time in total

----------

## pierino_89

Beh, in base a che parametri hai deciso che $_POST non funziona?

Hai provato a fare un var_dump() di $_POST e $_REQUEST?

----------

## cloc3

anche a me, con il 5.3.3, è capitato qualcosa di analogo.

ma, siccome uso php per cose estremente semplici, non so dirti nulla sulla variabile _POST.

per esempio, mi sono accorto che i marcatori php devono riportare esplicitamente il nome del linguaggio, dopo il punto di domanda.

taggare con un semplice <?.... non basta più, ma è necessario scrivere: <?php ....

in pratica, bisogna fare molta attenzione ai gettagli della sintassi, perchè non sono accettate cose che, in precedenza, eravamo abituati a trascurare.

----------

## pierino_89

Le short tags sono deprecate da secoli, perché se scrivi un documento xml la prima riga è sempre tipo:

<?xml version="1.0" encoding="UTF-8"?>

e poi l'interprete va in errore se non si fa attenzione a metterla sempre come stringa.

----------

## xavierLoS

Il $_POST mi da errore in quanto se lo uso mi compare una pagina bianca oppure tramite iexplorer o altro browser mi da proprio pagina non trovata.

Se invece ricarico la pagina me la carica ma mi da errore variabile non trovata.

E per fare il test ho creato una form stupidissima che mi invia i dati di un input text tramite metodo post ad un'altra pagine e provo a stampare il valore dell'input tramite

echo $_POST["prova"] ;

oppure 

$prova = $_POST["prova"];

echo $prova;

ed in più o provato ad usare anche altri programmi php che facciano uso del $_POST e mi da lo stesso errore.

Non vorrei fosse un problema di criteri di sicurezza impostati tramite il profilo hardened o tramite il mod_security attivo, ma non ho toccato nulla e precedentemente tutto funzionava..

forse non è neanche la variabile $_POST a dare problemi ma il metodo utilizzato nella form. 

Avete idee di cosa può essere.

grazie per la disponibilità 

alessandro

----------

## pierino_89

usa var_dump. Almeno capiamo se popola la variabile o se ci sono problemi di configurazione.

----------

## xavierLoS

Niente da fare.. sembra proprio che non venga popolato nulla.. sembra quasi che non riceva nulla.

Eseguendo la form, viene eseguito l'action ossia mi porta sulla pagina che esegue poi l'output, ma questa non mostra nulla se non pagina bianca, questo con altri browser non avviene ma avviene un errore di pagina non trovata.

Se invece eseguo la pagina di output senza passare dalla form, viene mostrato array(0) { } 

io ho settato var_dump( $_POST );

----------

## pierino_89

 *Quote:*   

> Eseguendo la form, viene eseguito l'action ossia mi porta sulla pagina che esegue poi l'output, ma questa non mostra nulla se non pagina bianca, questo con altri browser non avviene ma avviene un errore di pagina non trovata. 
> 
> 

 

Puzza di errore di apache. O di errore nella form.

 *Quote:*   

> 
> 
> Se invece eseguo la pagina di output senza passare dalla form, viene mostrato array(0) { } 
> 
> 

 

Questo direi che è normale... Hai provato a tirargli qualcosa via post tipo con la hackbar di firefox?

----------

## xavierLoS

Questa è il codice della pgaina_0.html

```

<html>

   <body>

      <form action="prova_1.php" method="post" name="form" >

         <input type="input" name="nick" >

         <input type="submit" value="send" name="send" >

      </form>

   </body>

</html>

```

Questo il codice della pagina prova_1.php

```

<?php

print $_POST["nick"];

?>

```

Ora provo la hack bar di firefox e poi ti faccio sapere ma credo che ci sia qualche cosa in apache che blocca la risposta alla richiesta fatta dalla form.. ma non ho idea di dove .. 

il php.ini mi sembra ok, httpd.conf anche ..

e il kernel hardened non lo ho toccato .. proprio non capisco cosa sia successo.. i log non spiegano nulla..

----------

## cloc3

qui da me il tuo codice funziona.

----------

## xavierLoS

Lo so che il mio codice funziona.. il problema mio è capire cosa può essere successo..

ossia è:

1. un problema di php

2. un problema di apache

3. un problema del mio sistema

o che altro ..

----------

## pierino_89

Nell'access.log di apache quando fai il submit la pagina viene richiesta correttamente? Non so, magari hai mod_rewrite o quelle robe lì che fanno casino...

----------

## xavierLoS

Buon giorno, questa notte con l'aiuto di elbryan abbiamo trovato una soluzione, il problema era del sistema compilato utilizzando una versione di gcc mascherata.

Ci siamo accorti di questo problema andando a leggere i log dopo aver installato la versione ultima di apache in /var/log/apache/error_log

il messaggio era:

```
 child pid 18798 exit signal Segmentation fault (11) 
```

la risoluzione è stata eseguita seguendo questi passaggi:

1. Rimozione versione mascherata di gcc e ricompilazione della versione stable di gcc

2. Rimozione dal sistema di apache e diphp, togliendo anche la voce APACHE_MODULES dal make.conf

3. emerge --depclean && revdep-rebuild

4. Installazione a nuovo di apache e php

5. Start del servizio web /etc/init.d/apache start

Grazie comunque a tutti quanti.

Alessandro

----------

