Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema PHP5

  1. #1
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179

    Problema PHP5

    Salve, avevo un piccolo scriptino per l'inserimento di notizie che funzionava una volta mentre adesso su altri spazi web non va piu' e a quanto sembra è a causa del php5.
    In pratica il problema che mi da, è che quando inserisco gli apostrofi, ovvero il ' , mi da errore.
    Il codice è il seguente:

    PAGINA PER L'INSERIMENTO: INSBREVI.PHP
    Codice PHP:
    <html xmlns="http://www.w3.org/1999/xhtml">

    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <
    title>Inserisci Notizia</title>
    </
    head>

    <
    body>
    <
    form method="post" enctype="multipart/form-data" action="insbrevidb.php">
    <
    table cellspacing="0" cellpadding="0" border="0" width="500"><tr><td valign="top">
        
    Titolo: </td><td valign="top"><input type="text" name="titolo"/></td></tr>
    <
    tr><td valign="top">Data: </td><td valign="top"><input type="text" name="data"/></td></tr>
    <
    tr><td valign="top">Immagine: </td><td valign="top"><input type="file" name="userfile"/></td></tr>
    <
    tr><td valign="top">Testo: </td><td valign="top"><textarea name="testo" cols="50" rows="20"></textarea></td></tr>
    <
    tr><td colspan="2"><input type="submit" value="Invia"/></td></tr></table>
    </
    form>
    </
    body>

    </
    html

    PAGINA CHE ELABORA: INSBREVIDB.PHP
    Codice PHP:
    <?

    include("../config.php");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php");
    $titolo $_POST['titolo'];
    $testo $_POST['testo'];
    $data $_POST['data'];
    if (
    trim($titolo) == "" OR trim($testo) == "" OR trim($data) == "")
    {
    die (
    "Vi sono campi vuoti che devono essere riempiti");
    }
    include (
    "carica.php");
    $query1 "INSERT INTO brevi (titolo, immagine, testo, data) VALUES ('$titolo', '$immagine', '$testo', '$data')";
    if (
    mysql_query($query1$db)) {
    echo 
    "Inserimento avvenuto correttamente";
    } else {
    echo 
    "Inserimento non avvenuto correttamente:
    mysql_error();
    }
    mysql_close($db);
    ?>
    Sapete senza che passi di nuovo a php4 il mio spazio, come posso fare per far "passare" l'apostrofo nell'elaborazione? Grazie mille.
    Mimmo

  2. #2
    mmm io direi che c'è un BEN PIÙ GRAVE problema:
    fai una form per l'inserimento in un DB SENZA CONTROLLI PER LE SQL INJECTION?!!?!?

    mettilo così:

    Codice PHP:
    <?

    include("../config.php");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php");
    $titolo htmlentities($_POST['titolo'], ENT_QUOTES"UTF-8");
    $testo htmlentities($_POST['testo'], ENT_QUOTES"UTF-8");
    $data htmlentities($_POST['data'], ENT_QUOTES"UTF-8");
    if (
    trim($titolo) == "" OR trim($testo) == "" OR trim($data) == "")
    {
    die (
    "Vi sono campi vuoti che devono essere riempiti");
    }
    include (
    "carica.php");
    $query1 "INSERT INTO brevi (titolo, immagine, testo, data) VALUES ('$titolo', '$immagine', '$testo', '$data')";
    if (
    mysql_query($query1$db)) {
    echo 
    "Inserimento avvenuto correttamente";
    } else {
    echo 
    "Inserimento non avvenuto correttamente:
    mysql_error();
    }
    mysql_close($db);
    ?>
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Azz..ok grazie mille funziona io non sono esperto di php, anzi, sono MENO di principiante xD
    Mimmo

  4. #4
    Fosse l'unico controllo che manca!
    Peraltro, noto ce usi gli short-open-tag per iniziare del codice PHP, e di default è disabilitato con PHP5.
    Ad ogni modo, l'apostrofo potrebbe non essere l'unico problema che avrai nell'inserimento di dati nel DB.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Originariamente inviato da alcio74
    Fosse l'unico controllo che manca!
    Peraltro, noto ce usi gli short-open-tag per iniziare del codice PHP, e di default è disabilitato con PHP5.
    Giusto, ma il quel caso non funzionerebbe del tutto
    Ad ogni modo, l'apostrofo potrebbe non essere l'unico problema che avrai nell'inserimento di dati nel DB.
    In effetti credo che Milver farebbe bene ad inserire un controllo sulla data e, magari, salvarla in un campo DATE (poi non so, magari lo ha già fatto...)
    I DON'T Double Click!

  6. #6
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Il mio problema non si è risolto
    Ora utilizzando questa tecnica è successo che si convertono anche i < > e tutti questi caratteri, quindi nell'articolo non escono i grassetti ecc. ma si vede proprio scritto il codice [b] e cosi via.....sapete aiutarmi? vi prego
    Mimmo

  7. #7
    forse perché poi devi utilizzare html_entity_decode...

    http://it2.php.net/manual/it/functio...ity-decode.php
    I DON'T Double Click!

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.