medoto HTTP_POST

Salve, io ho un problema con questo codice.

Non funzionano HTTP_POST.

In poche parole non fà quando do invio per inserire la notizia.

forse devo avere il register_globals su off.

Il pacchetto che uso è questo http://pampa.phpsoft.it/

Mi dite senza andare ad modificare il file php.ini come risolvere questo problema?.

grazie

ecco il codice:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">



<link href="style.css" rel="stylesheet" type="text/css">

</head>



<body>

<br>

<br>

<form action="insert.php" method="post">

  <div align="center">Titolo:<br>

    <input type=text size="40" name="post_titolo">

    <br>


Categoria:<br>

<input type=text size="40" name="post_cat">

<br>




Data:<br>

<input type=text size="40" name="post_data" >

<br>



Autore:<br>

<input type=text size="40" name="post_autore" >

<br>


E-mail:<br>

<input type=text size="40" name="post_email" >

<br>

<textarea cols="40" rows="10" name="post_desc" id="post_desc"></textarea>

Testo:<br>

<textarea cols="40" rows="10" name="post_corpo" id="post_corpo"></textarea>

<br>

<br>

<input type="submit" name="azione" value="Aggiungi">

  </div>

</form>

<?php



if (!isset($azione))

    {

    $azione="";

    }

if ($azione=="Aggiungi")

    {


$db = mysql_connect("localhost","root", "root");

if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

mysql_select_db("lab82", $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");





    $post_titolo = $_HTTP_POST["post_titolo"];

    $post_desc  = $_HTTP_POST["post_desc"];

    $post_corpo   = $_HTTP_POST["post_corpo"];

    $post_autore = $_HTTP_POST["post_autore"];
    $post_email = $_HTTP_POST["post_email"];

    $post_data =   $_HTTP_POST["post_data"];
    $post_cat = $_HTTP_POST["post_cat"];

    


       if($post_titolo!=""){
             echo "Non ai inserito il titolo";
       if($post_cat!=""){
             echo "Non ai inserito la categoria";
             }
           if($post_desc!=""){
             echo "Non ai inserito la descrizione";
         }

          if($post_corpo!=""){            
             echo "Non ai inserito il corpo";
        }

        if($post_autore!=""){
     echo "Non ai inserito l'autore";
       }


    if($post_email!=""){
    echo "Non ai inserito la email";

       }
    

    if($post_cat!=""){
    echo "Non ai inserito la categoria";

       }
        

$query = "INSERT INTO 'news' ('n_titolo', 'n_autore', 'n_desc',
'n_corpo', 'n_view', 'n_cat', 'n_email', 'n_data') VALUES ('$post_titolo', '$post_autore',
'$post_desc', '$post_corpo', '0', '$post_cat',
'$post_email', '$post_data');";



            $result = mysql_query($query);



mysql_close($db);
}
}
?>
inviato 9 anni fa
lab82
X 0 X

prova a sostuire $_HTTP_POST con $_POST

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

prova a sostuire $_HTTP_POST con $_POST

 :bye:

ok.

tanto ho risolto con i tuoi  esempi nella lezione php/mysql.

ecco il codice.

<?php
if($_POST) {

   // richiamo il file di configurazione
   require 'config.php';

   // richiamo lo script responsabile della connessione a MySQL
   require 'connect.php';

   // recupero i campi di tipo "stringa"
   $post_titolo = trim($_POST["post_titolo"]);
   $post_autore = trim($_POST["post_autore"]);
   $post_desc = trim($_POST["post_desc"]);
   $post_corpo = trim($_POST["post_corpo"]);
   $post_cat = trim($_POST["post_cat"]);
   $post_email = trim($_POST["post_email"]);
   $post_data = trim($_POST["post_data"]);

   // verifico la presenza dei campi obbligatori
   if(!$post_titolo)
   {
      $messaggio = urlencode("Non hai inserito il nome");
      header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
      exit;
   }

   // preparo la query
   $query = "INSERT INTO news (n_titolo,
   n_autore,
   n_desc,
   n_corpo,
   n_view,
   n_cat,
   n_email,
   n_data) VALUES ('$post_titolo',
   '$post_autore','$post_desc',
   '$post_corpo','0','$post_cat',
   '$post_email','$post_data')";
   //echo $query;
   //exit;
   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   // recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
   $id_inserito = mysql_insert_id();

   // chiudo la connessione a MySQL
   mysql_close();

   $messaggio = urlencode("Inserimento effettuato con successo (ID=$id_inserito)");
   header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
else {
   // mostro un eventuale messaggio
   if(isset($_GET['msg']))
      echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
   ?>
   <form name="form_registrazione" method="post" action="">
<div align="center">Titolo:<br>

    <input type=text size="40" name="post_titolo">

    <br>


Categoria:<br>

<input type=text size="40" name="post_cat">

<br>




Data:<br>

<input type=text size="40" name="post_data" >

<br>



Autore:<br>

<input type=text size="40" name="post_autore" >

<br>


E-mail:<br>

<input type=text size="40" name="post_email" >

<br>

<textarea cols="40" rows="10" name="post_desc" id="post_desc"></textarea>

Testo:<br>

<textarea cols="40" rows="10" name="post_corpo" id="post_corpo"></textarea>

<br>

<br>

<input type="submit" name="azione" value="Aggiungi">

  </div>
   </form>
<?php
}
?>
risposto 9 anni fa
lab82
modificato 9 anni fa
X 0 X

si , ma come faccio con PHP 5. che ha register_globals su off .

risposto 9 anni fa
lab82
X 0 X

Se usi l'array $_POST non ti devi preoccupare di nulla

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
si , ma come faccio con PHP 5. che ha register_globals su off .

Come dice Gianni, non usi $HTTP_ che è semplicemente obsoleto, register_globals è su off per questioni di sicurezza è stato lasciaot solo per ... ma vallo a sapere!

Credo che sia uno dei grossi problemi che il php si porta dietro, ovvero l'obsolescienza degli sviluppatori di alcuni :D non solerti ad abbandonare vecchi metodi, anche quando sono legati a problemi di sicurezza degli script.

Molti pensano che il problema della sicurezza degli script sia legato allo script e basta, mentre è l'intero server a subirne le conseguenze.

La retrocompatibilità è un problema serio purtroppo.

risposto 9 anni fa
Marco Grazia
X 0 X

Se usi l'array $_POST non ti devi preoccupare di nulla

 :bye:

grazie.

ho trovato in rete questo script che simula il register globals ad on quando lui è settato ad off.

<?php

if (!ini_get('register_globals')) {

  $superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);

  if (isset($_SESSION)) {

      array_unshift($superglobals, $_SESSION);

   }

   foreach ($superglobals as $superglobal) {

      extract($superglobal, EXTR_SKIP);

   }

}

?>
risposto 9 anni fa
lab82
X 0 X

Ma perché dovresti usare una roba del genere?  :idiot:

risposto 9 anni fa
Marco Grazia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda