Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1

    [PHP]Pannello inserimento articoli

    Sto creando un pannello spartano per l'inserimento degli articoli...

    Ho creato una pagina config.inc.php con all'interno le istruzioni per connettersi al database...


    Codice PHP:
    Codice PHP:
    <?php 
    $db_host 
    "localhost"
    $db_user "root"
    $db_password "mia_password"
    $db_name "test"
    $password "ciao"
    ?>

    Poi tramite la pagina insert.htm invio i valori:


    Codice HTML:
    codice HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Documento senza titolo</title>
    </head>
    
    <body>
    <form method=post action=save.php>
    
    
    Materia:
    
    <select name=materia>
    <option value=1>Fisica
    <option value=2>Chimica
    <option value=3>Biologia
    <option value=4>Matematica
    <option value=5>Astronomia
    <option value=6>Scienze della terra
    <option value=7>Medicina
    </option></select>
    
    
    Titolo:
    
    <input type=text size=40 name=titolo>
    
    
    Descrizione:
    
    <textarea cols=80 rows=5 name=descrizione></textarea>
    
    
    Articolo:
    
    <textarea cols=80 rows=20 name=articolo></textarea>
    
    
    Autore:
    
    <input type=text size=40 name=autore>
    
    
    Mail:
    
    <input type=text size=40 name=mail>
    
    
    Password:
    
    <input type=password size=20 name=pass>
    
    
    <input type=submit value=Invia>
    
    </form>
    </body>
    </html>

    Adesso la pagina save.php che riceve i valori...


    Codice PHP:
    Codice PHP:
    <?php 
    include("config.inc.php"); 
    if(
    $pass != $password): 
    echo 
    "Password errata"
    elseif(
    trim($titolo) == "" OR trim($descrizione) == "" OR trim($articolo) == "" OR trim($autore) == "" OR trim($mail) == ""): 
    echo 
    "Alcuni campi non sono stati compilati!!!"
    else: 
    $titolo addslashes(stripslashes($titolo)); 
    $descrizione addslashes(stripslashes($descrizione)); 
    $articolo addslashes(stripslashes($articolo)); 
    $autore addslashes(stripslashes($autore)); 
    $mail addslashes(stripslashes($mail)); 
    $titolo str_replace("<""&lt;"$titolo); 
    $titolo str_replace(">""&gt;"$titolo); 
    $descrizione str_replace("<""&lt;"$descrizione); 
    $descrizione str_replace(">""&gt;"$descrizione); 
    $articolo str_replace("<""&lt;"$articolo); 
    $articolo str_replace(">""&gt;"$articolo); 
    $articolo nl2br($articolo); 
    $autore str_replace("<""&lt;"$autore); 
    $autore str_replace(">""&gt;"$autore); 
    $db mysql_connect($db_host$db_user$db_password); 
    if(
    $db == FALSE
    die(
    "Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name$db
    or die(
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    $query "INSERT INTO articoli (materia, titolo, descrizione, articolo, autore, mail) VALUES ('$materia', '$titolo', '$descrizione', '$articolo', '$autore', '$mail')"
    if(
    mysql_query($query$db)) 
    echo 
    "L'articolo è stato inserito correttamente"
    else 
    echo
    "Errore durante l'inserimento"
    mysql_close($d); endif; 
    ?>

    Il problema è che quando vado ad inserire l'articolo mi dà sempre che la password è errata... perchè???

    Grazie

  2. #2
    Prova ad utilizzare l'array globale $_POST.

    Invece di fare if($pass != $password) fai if($_POST['pass'] != $_POST['password']) e sostituisci anche tutti gli altri nomi di variabili. Ciao!

  3. #3
    Adesso provo e ti faccio sapere...

    Grazie

  4. #4
    Grazie 1000, problema risolto...

    Adesso ti faccio un'altra domanda, visto che il file concettualmente era esatto, perchè non funzionava???

    Enjoy

  5. #5
    Problema persiste in un altra forma...

    Non è finita...

    Codice PHP:
    <?php
    include("config.inc.php");
    if(
    $_POST['pass'] != $password):
    echo 
    "Password errata";
    elseif(
    trim($_POST['titolo']) == "" OR trim($_POST['descrizione']) == "" OR trim($_POST['articolo']) == "" OR trim($_POST['autore']) == "" OR trim($_POST['mail']) == ""):
    echo 
    "Alcuni campi non sono stati compilati!!!";
    else:
    $_POST['titolo'] = addslashes(stripslashes($_POST['titolo']));
    $_POST['descrizione'] = addslashes(stripslashes($_POST['descrizione']));
    $_POST['articolo'] = addslashes(stripslashes($_POST['articolo']));
    $_POST['autore'] = addslashes(stripslashes($_POST['autore']));
    $_POST['mail'] = addslashes(stripslashes($_POST['mail']));
    $_POST['titolo'] = str_replace("<""&lt;"$_POST['titolo']);
    $_POST['titolo'] = str_replace(">""&gt;"$_POST['titolo']);
    $_POST['descrizione'] = str_replace("<""&lt;"$_POST['descrizione']);
    $_POST['descrizione'] = str_replace(">""&gt;"$_POST['descrizione']);
    $_POST['articolo'] = str_replace("<""&lt;"$_POST['articolo']);
    $_POST['articolo'] = str_replace(">""&gt;"$_POST['articolo']);
    $_POST['articolo'] = nl2br($_POST['articolo']);
    $_POST['autore'] = str_replace("<""&lt;"$_POST['autore']);
    $_POST['autore'] = str_replace(">""&gt;"$_POST['autore']);
    $db mysql_connect($db_host$db_user$db_password);
    if(
    $db == FALSE)
    die(
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die(
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query "INSERT INTO articoli (materia, titolo, descrizione, articolo, autore, mail) VALUES ('$_POST['materia']', '$_POST['titolo']', '$_POST['descrizione']', '$_POST['articolo']', '$_POST['autore']', '$_POST['mail']')";
    if(
    mysql_query($query$db))
    echo 
    "L'articolo è stato inserito correttamente";
    else
    echo 
    "Errore durante l'inserimento";
    mysql_close($d);
    ?>
    Ho risolte le variabili... ma adesso da un errore di sintassi...

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Programmi\Apache Group\Apache2\public_html\save.php on line 27

    Esattamente questa riga:

    Codice PHP:
    $query "INSERT INTO articoli (materia, titolo, descrizione, articolo, autore, mail) VALUES ('$_POST['materia']', '$_POST['titolo']', '$_POST['descrizione']', '$_POST['articolo']', '$_POST['autore']', '$_POST['mail']')"
    Help me...

    Grazie

  6. #6
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    nn avendo register globals hai a disposizione solo gli array nn i singoli elementi...

    per l'altro problema usa questa sintassi nella query:

    codice:
    $query=".....'".$_POST['variabile']."'.....";
    per tutte le variabili...

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  7. #7
    Originariamente inviato da luke83
    nn avendo register globals hai a disposizione solo gli array nn i singoli elementi...

    per l'altro problema usa questa sintassi nella query:

    codice:
    $query=".....'".$_POST['variabile']."'.....";
    per tutte le variabili...

    Grazie, ma adesso con il seguante sorgente mi dice che alcuni campi non sono stati compilati...

    Codice PHP:
    <?php
    $_POST
    ['materia'] = $materia;
    $_POST['titolo'] = $titolo;
    $_POST['descrizione'] = $descrizione;
    $_POST['articolo'] = $articolo;
    $_POST['autore'] = $autore;
    $_POST['mail'] = $mail;
    include(
    "config.inc.php");
    if(
    $_POST['pass'] != $password):
    echo 
    "Password errata";
    elseif(
    trim($_POST['titolo']) == "" OR trim($_POST['descrizione']) == "" OR trim($_POST['articolo']) == "" OR trim($_POST['autore']) == "" OR trim($_POST['mail']) == ""):
    echo 
    "Alcuni campi non sono stati compilati!!!";
    else:
    $_POST['titolo'] = addslashes(stripslashes($_POST['titolo']));
    $_POST['descrizione'] = addslashes(stripslashes($_POST['descrizione']));
    $_POST['articolo'] = addslashes(stripslashes($_POST['articolo']));
    $_POST['autore'] = addslashes(stripslashes($_POST['autore']));
    $_POST['mail'] = addslashes(stripslashes($_POST['mail']));
    $_POST['titolo'] = str_replace("<""&lt;"$_POST['titolo']);
    $_POST['titolo'] = str_replace(">""&gt;"$_POST['titolo']);
    $_POST['descrizione'] = str_replace("<""&lt;"$_POST['descrizione']);
    $_POST['descrizione'] = str_replace(">""&gt;"$_POST['descrizione']);
    $_POST['articolo'] = str_replace("<""&lt;"$_POST['articolo']);
    $_POST['articolo'] = str_replace(">""&gt;"$_POST['articolo']);
    $_POST['articolo'] = nl2br($_POST['articolo']);
    $_POST['autore'] = str_replace("<""&lt;"$_POST['autore']);
    $_POST['autore'] = str_replace(">""&gt;"$_POST['autore']);
    $db mysql_connect($db_host$db_user$db_password);
    if(
    $db == FALSE)
    die(
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die(
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query "INSERT INTO articoli (materia, titolo, descrizione, articolo, autore, mail) VALUES ('".$_POST['materia']."', '".$_POST['titolo']."', '".$_POST['descrizione']."', ''".$_POST['articolo']."', '".$_POST['autore']."', '".$_POST['mail']."')";
    if(
    mysql_query($query$db))
    echo 
    "L'articolo è stato inserito correttamente";
    else
    echo 
    "Errore durante l'inserimento";
    mysql_close($db); 
    endif;
    ?>
    Io non ci capisco + nulla...

  8. #8
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    ma che cacchio combini...è normale che nn va...

    $materia=$_POST['materia'] e così via...

    ma esiste extract che te lo fa in automatico..

    leggiti la documentazione

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  9. #9
    Grazie... ma sono troppo deficiente per capire...

    Qual è l'errore adesso???

    Codice PHP:
    <?php
    $materia 
    $_POST['materia'];
    $titolo $_POST['titolo'];
    $descrizione $_POST['descrizione'];
    $articolo $_POST['articolo'];
    $autore $_POST['autore'];
    $mail $_POST['mail'];
    $pass $_POST['pass'];
    include(
    "config.inc.php");
    if(
    $_POST['pass'] != $password):
    echo 
    "Password errata";
    elseif(
    trim($_POST['titolo']) == "" OR trim($_POST['descrizione']) == "" OR trim($_POST['articolo']) == "" OR trim($_POST['autore']) == "" OR trim($_POST['mail']) == ""):
    echo 
    "Alcuni campi non sono stati compilati!!!";
    else:
    $_POST['titolo'] = addslashes(stripslashes($_POST['titolo']));
    $_POST['descrizione'] = addslashes(stripslashes($_POST['descrizione']));
    $_POST['articolo'] = addslashes(stripslashes($_POST['articolo']));
    $_POST['autore'] = addslashes(stripslashes($_POST['autore']));
    $_POST['mail'] = addslashes(stripslashes($_POST['mail']));
    $_POST['titolo'] = str_replace("<""&lt;"$_POST['titolo']);
    $_POST['titolo'] = str_replace(">""&gt;"$_POST['titolo']);
    $_POST['descrizione'] = str_replace("<""&lt;"$_POST['descrizione']);
    $_POST['descrizione'] = str_replace(">""&gt;"$_POST['descrizione']);
    $_POST['articolo'] = str_replace("<""&lt;"$_POST['articolo']);
    $_POST['articolo'] = str_replace(">""&gt;"$_POST['articolo']);
    $_POST['articolo'] = nl2br($_POST['articolo']);
    $_POST['autore'] = str_replace("<""&lt;"$_POST['autore']);
    $_POST['autore'] = str_replace(">""&gt;"$_POST['autore']);
    $db mysql_connect($db_host$db_user$db_password);
    if(
    $db == FALSE)
    die(
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name$db)
    or die(
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query "INSERT INTO articoli (materia, titolo, descrizione, articolo, autore, mail) VALUES ('".$_POST['materia']."','".$_POST['titolo']."', '".$_POST['descrizione']."', '".$_POST['articolo']."', '".$_POST['autore']."', '".$_POST['mail']."')";
    if(
    mysql_query($query$db))
    echo 
    "L'articolo è stato inserito correttamente";
    else
    echo 
    "Errore durante l'inserimento";
    mysql_close($db); 
    endif;
    ?>
    Ovviamente errore durante l'inserimento...

    Ciao

  10. #10
    Allora, ti spiego come funziona il tutto.

    Per prima cosa devi sapere che php prima aveva per default le register_globals ad on. Ciò significava che tutte le variabili inviate con post o get, le variabili di sessione ed altri tipi di variabili erano recuperabili anche senza fare riferimento all'array globale ($_POST, $_GET, ecc). Ora le register_globals sono settate ad off e quindi tali tipi di variabili sono recuperabili SOLO UTILIZZANDO L'ARRAY GLOBALE RELATIVO a meno che non si cambi tale impostazione. Per sicurezza è meglio lasciarlo così com'è.

    Detto questo è inutile fare una cosa del genere

    $var = $_POST['var']

    e poi utilizzare cmq nel form la variabile $_POST['var'] ed è sbagliato fare una cosa del genere

    $_POST['var'] = $var.

    In definitiva devi usare solo gli array globali (ora ti conviene visto che cmq hai cambiato già tutto il codice).

    Per l'altro errore era dovuto al fatto che hai utilizzato la seguente sintassi $query = "... '$_POST['var']'...";
    Quando la variabile viene già racchiusa tra apici come nel tuo caso la sintassi corretta è questa
    $query = "... '$_POST[var]'...";

    o quella che ti è stata suggerita da luke83.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.