• User

    Problema Script News Php

    ho creato uno script seguendo questa guida:
    http://php.html.it/guide/leggi/77/guida-phpmysql-pratica/
    solo che quando vado a inserire un articolo mi dice prima pw errata e se cancello il codice della password mi dice inserire titolo e testo...
    sono disperato!!!!!!!
    Se risolvete mi postate l codice gusto delle pagine save.php e inset.php
    grazie:ciauz:


  • Super User

    Sinceramente non mi va di leggere tutta la guida.
    Se posti il codice in cui si verifica il problema possiamo aiutarti


  • User

    L'errore sta nella pagina che salva (save.php).
    Il codice è questo:
    <title>Salva Articolo :: Cellulari e PC.net</title><?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();

    if ($pass != $password): echo "Password errata";
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    elseif (trim($titolo) == "" OR trim($testo) == ""):
    echo "I campi Titolo e Testo devono essere riempiti!";

    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));

    $titolo = str_replace("<", "<", $titolo);
    $titolo = str_replace(">", ">", $titolo);
    $autore = str_replace("<", "<", $autore);
    $autore = str_replace(">", ">", $autore);
    $testo = str_replace("<", "<", $testo);
    $testo = str_replace(">", ">", $testo);
    $testo = nl2br($testo);

    $data = mktime("0", "0", "0", $mese, $giorno, $anno);
    
      $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
      
        if (mysql_query($query, $db))
    echo "L'articolo è stato inserito correttamente";
    

    else
    echo "Errore durante l'inserimento";

    mysql_close($db);
    endif; // chiude la verifica della presenza dei dati
    foot();
    ?>


  • Super User

    @slevin said:

    L'errore sta nella pagina che salva (save.php).
    Il codice è questo:
    <title>Salva Articolo :: Cellulari e PC.net</title><?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();

    if ($pass != $password): echo "Password errata";
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    elseif (trim($titolo) == "" OR trim($testo) == ""):
    echo "I campi Titolo e Testo devono essere riempiti!";

    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));

    $titolo = str_replace("<", "<", $titolo);
    $titolo = str_replace(">", ">", $titolo);
    $autore = str_replace("<", "<", $autore);
    $autore = str_replace(">", ">", $autore);
    $testo = str_replace("<", "<", $testo);
    $testo = str_replace(">", ">", $testo);
    $testo = nl2br($testo);

    $data = mktime("0", "0", "0", $mese, $giorno, $anno);
    
      $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
      
        if (mysql_query($query, $db))
    echo "L'articolo è stato inserito correttamente";
    

    else
    echo "Errore durante l'inserimento";

    mysql_close($db);
    endif; // chiude la verifica della presenza dei dati
    foot();
    ?>
    Qaule è la variabile che passi tramite form: $pass o $password ?
    Ammettiamo sia $password aggiungi questa riga
    $password = $_REQUEST['password'];
    if ($pass != $password): echo "Password errata";

    Però questo non spiega come mai ti da anche titolo e testo mancanti.
    Che versione di php hai? $_REQUEST è supportato dalla 4.20.

    P.S.: Comunque questo script non mi sembra buono


  • User

    ora provo e se non va faccio cn wp


  • User

    ho provato a inserire e mi dice:

    Parse error: syntax error, unexpected $end in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line **48

    Ma la linea 48 è la linea dopo il ?> finale!
    **


  • User Attivo

    manca un endif prima di foot();
    almeno a prima vista...

    ps.
    comunque io programmando uso sempre le parentesi {}
    almeno per me il tutto poi risulta più leggibile...


  • User

    l'endif c'è


  • User Attivo

    e tu metticene un altro...
    così scritto non hai chiuso un else!
    Tu mettine un altro che male non ci fa...


  • Moderatore

    [php]
    Il codice è questo:
    <title>Salva Articolo :: Cellulari e PC.net</title><?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    $password = $_REQUEST['password'];
    if ($pass != $password){ echo "Password errata";}
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    elseif (trim($titolo) == "" OR trim($testo) == ""){
    echo "I campi Titolo e Testo devono essere riempiti!";
    }
    else {
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));

    $titolo = str_replace("<", "<", $titolo);
    $titolo = str_replace(">", ">", $titolo);
    $autore = str_replace("<", "<", $autore);
    $autore = str_replace(">", ">", $autore);
    $testo = str_replace("<", "<", $testo);
    $testo = str_replace(">", ">", $testo);
    $testo = nl2br($testo);

    $data = mktime("0", "0", "0", $mese, $giorno, $anno);

    $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

    if (mysql_query($query, $db)){
    echo "L'articolo è stato inserito correttamente";}
    else{
    echo "Errore durante l'inserimento";}

    mysql_close($db);
    }
    foot();
    ?>
    [/php]

    non lo ho testato ma dovrei aver risolto


  • User

    Parse error: syntax error, unexpected T_ELSEIF in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line **16
    COSì DICE
    **


  • Super User

    @slevin said:

    Parse error: syntax error, unexpected T_ELSEIF in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line **16
    COSì DICE
    **
    il tuo elseif non ha un if precedente.
    modificalo cosi:
    [php]<title>Salva Articolo :: Cellulari e PC.net</title><?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    $password = $_REQUEST['password'];
    if ($pass == $password){
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    if (trim($titolo) == "" OR trim($testo) == "") {
        echo "I campi Titolo e Testo devono essere riempiti!";
    }
    else {
        $titolo = addslashes(stripslashes($titolo));
        $autore = addslashes(stripslashes($autore));
        $mail = addslashes(stripslashes($mail));
        $testo = addslashes(stripslashes($testo));
        
        $titolo = str_replace("<", "&lt;", $titolo);
        $titolo = str_replace(">", "&gt;", $titolo);
        $autore = str_replace("<", "&lt;", $autore);
        $autore = str_replace(">", "&gt;", $autore);
        $testo = str_replace("<", "&lt;", $testo);
        $testo = str_replace(">", "&gt;", $testo);
        $testo = nl2br($testo);
        
        $data = mktime("0", "0", "0", $mese, $giorno, $anno);
        
        $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";
        
        if (mysql_query($query, $db)){
            echo "L'articolo è stato inserito correttamente";
        }
        else {
            echo "Errore durante l'inserimento";
        }
        
        
        mysql_close($db);
    }
    

    } else {
    echo "Password errata";
    }
    foot();
    ?>[/php]
    Prima regola per non commettere questi errori è : indentazione


  • User

    ancora non va...mi dice
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line 37
    Errore durante l'inserimento
    Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line 45


  • Moderatore

    questo è un problema di database sicuro di aver settato quello giusto?
    sicuro che esista la tabella news?
    sicuro che esistano quei campi nella tabella?
    questo è l'errore 🙂


  • User

    la tabella esiste!


  • Super User

    @slevin said:

    ancora non va...mi dice
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line 37
    Errore durante l'inserimento
    Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/mhd-01/www.cellulariepc.net/htdocs/news/save.php on line 45

    Secondo me manca la connessione al database.
    Dove viene assegnato a $db l'identificativo della connessione a MySql ?