Visualizzazione dei risultati da 1 a 6 su 6

Discussione: php e guide freephp

  1. #1

    php e guide freephp

    in attesa che mi
    arrivi guida a php ,
    mi sono messo a seguire una guida trovata su freephp
    piu' precisamente questa:
    http://freephp.html.it/guide/lezioni.asp?idguida=8

    ora pur coppiando il codice in maniera identica,
    non ottengo il risultato che dovrei ottenere.

    vi elenco passo passo quello che sto facendo, cosi' mi dite(se volete ) dove sbaglio....

    allora
    installo come spiegato qui:
    http://freephp.html.it/guide/lezioni.asp?idguida=7
    tutto il necessario per visualizzare le mie pagine in locale
    (credo al 90% di aver fatto tutto in maniera correta, in quanto
    visualizzo tutto correttamente, index.php , phpadmin ecc..)

    ora creo la pagina config.inc.php
    contenente come specifica il seguente codice:
    <?php
    // parametri del database
    $db_host = "localhost";
    $db_user = "sonnyyy77";
    $db_password = "onny77";
    $db_name = "prova";
    //password per inserimento articoli
    $password = "onny";
    ?>

    (premetto che il database l'ho creato dalla pagina di phpadmin)
    e l'user e password , le ho prese da WinMySQLadmin 1.4 , alla voce my.ini Setup )

    ora creo la pagina install.php

    con questo codice

    <?php
    include("config.inc.php");
    $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 = "CREATE TABLE news (id INT (5) UNSIGNED not null AUTO_INCREMENT, titolo VARCHAR (255) not null , testo TEXT not null , data INT (11) , autore VARCHAR (50) , mail VARCHAR (50) , PRIMARY KEY (id))";
    if (mysql_query($query, $db))
    echo "L'installazione è stata eseguita correttamente";
    else
    echo "Errore durante l'installazione";
    mysql_close($db);
    ?>

    ora creo top_foot.inc.php

    iserisco questo codice:

    <? function top() { ?>
    <HTML>
    <HEAD>
    <meta name=generator content="Script di freephp.it">
    </HEAD>
    <BODY bgcolor=ffffff text=000000>
    <font face=verdana,tahoma,arial size=-1>
    <h1>FREEPHP.IT</h1>

    <? }

    function foot() { ?>
    </body></HTML>
    <? } ?>

    poi come da guida creo anche insert.php

    inserisco questo codice:

    <?
    include ("config.inc.php");
    include ("top_foot.inc.php");

    //intestazione
    top();
    ?>

    <form method=post action=save.php>
    Titolo:

    <input type=text size=40 name=titolo>



    Data:

    <select name=giorno>
    <?
    for ($i=1; $i<=31; $i++)
    echo "<option value=$i>$i";
    ?>
    </select>
    <select name=mese>
    <option value=1>Gennaio
    <option value=2>Febbraio
    <option value=3>Marzo
    <option value=4>Aprile
    <option value=5>Maggio
    <option value=6>Giugno
    <option value=7>Luglio
    <option value=8>Agosto
    <option value=9>Settembre
    <option value=10>Ottobre
    <option value=11>Novembre
    <option value=12>Dicembre
    </select>
    <select name=anno>
    <option value=2001>2001
    <option value=2002>2002
    <option value=2003>2003
    <option value=2004>2004
    <option value=2005>2005
    </select>



    Autore:

    <input type=text size=40 name=autore>



    E-mail:

    <input type=text size=40 name=mail>



    Testo:

    <textarea cols=60 rows=40 name=testo></textarea>



    Password:

    <input type=password size=40 name=pass>



    <input type=submit value=Invia> </form>
    <?
    // chiusura pagina
    foot();
    ?>

    poi come ultimo passo creo save.php

    con questo codice:

    <? include("top_foot.inc.php");
    include("config.inc.php");
    top();
    if ($pass != $password):
    echo "Password errata";
    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("<", "&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);
    $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 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 "Erorre durante l'inserimento";
    mysql_close($db); endif;
    foot();
    ?>

    ---------------------------------------------------------------------
    Bene ora andando alla pagina http://localhost/insert.php/

    mi appare il classico form dove devo inserire i dati,

    li inserisco
    digito la password onny

    ma quando clicco su invia
    mi appare la pagina save.php
    con il messaggio password errata


    ora mi chiedo perche'
    non mi crea la voce nel database???
    la password e' giusta azzarola........

  2. #2
    caduto anche tu nella trappola dei register globals... io ci avevo smadonnato un bel po'

    ti dà password errata perchè a save.php non viene passata la variabile $pass da insert.php

    questo accade con Register Globals = Off nel tuo php.ini

    in realtà le variabili andrebbero passate in tutt'altra maniera, per ora metti i r.globals ad on (cosa deprecata), riavvia apache e vedrai che funziona
    Sotto la panza la mazza avanza.

  3. #3
    in realtà le variabili andrebbero passate in tutt'altra maniera
    --------------------------------------------------------

    emm....non e' che mi potresti spiegare , o dare un link
    su come funzionano adesso?

    cosi' inizio a crearmi le prime piccole paginine,
    nell'attesa dell'arrivo del libro.

    non vorrei creare qualcosa, che poi il server che mi fa' da hosting
    non mi fa' andare.......(in quanto credo di non poter modificare gli
    r.globals ad on)

    grazie

  4. #4
    Utente di HTML.it L'avatar di M4rko
    Registrato dal
    Dec 2000
    Messaggi
    619
    Al posto di $variabile utilizzi $_GET['variabile'] quando le passi tramite URL, oppure $_POST['variabile'] quando le passi tramite form con metodo post.

    Chiarimenti qui:
    http://forum.html.it/forum/showthrea...hreadid=245215
    Tutti hanno bisogno di credere in qualcosa.
    Io credo che mi farò un'altra birra.


  5. #5
    e si che me lo avevi gia' spiegato in un altro post

    allora modifico save.php

    inserendo le variabili $_POST

    <? include("top_foot.inc.php");
    include("config.inc.php");
    top();
    if ($_POST['pass'] != $password):
    echo "Password errata";
    elseif (trim($_POST['titolo']) == "" OR trim($_POST['testo']) == ""):
    echo "I campi Titolo e Testo devono essere riempiti!";
    else:
    $_POST['titolo'] = addslashes(stripslashes($_POST['titolo']));
    $_POST['autore'] = addslashes(stripslashes($_POST['autore']));
    $_POST['mail'] = addslashes(stripslashes($_POST['mail']));
    $_POST['testo'] = addslashes(stripslashes($_POST['testo']));
    $_POST['titolo'] = str_replace("<", "&lt;", $_POST['titolo']);
    $_POST['titolo'] = str_replace(">", "&gt;", $_POST['titolo']);
    $_POST['autore'] = str_replace("<", "&lt;", $_POST['autore']);
    $_POST['autore'] = str_replace(">", "&gt;", $_POST['autore']);
    $_POST['testo'] = str_replace("<", "&lt;", $_POST['testo']);
    $_POST['testo'] = str_replace(">", "&gt;", $_POST['testo']);
    $_POST['testo'] = nl2br($_POST['testo']);
    $_POST['data'] = mktime("0", "0", "0", $mese, $giorno, $anno);
    $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 news (titolo, testo, data, autore, mail) VALUES ('$_POST['titolo']', '$_POST['testo']', '$_POST['data']', '$_POST['autore'] ', '$_POST['mail']')";
    if (mysql_query($query, $db))
    echo "L'articolo è stato inserito correttamente";
    else
    echo "Erorre durante l'inserimento";
    mysql_close($db); endif;
    foot();
    ?>


    pero' ora mi da un errore:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\programmi\apache group\apache\test\save.php on line 26

    la riga e' questa:
    $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$_POST['titolo']', '$_POST['testo']', '$_POST['data']', '$_POST['autore'] ', '$_POST['mail']')";




  6. #6

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.