Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Problema con Php e Mysql

    Ciao.... ho un problema che davvero mi sta facendo diventare pazzo...
    Io ho sempre usato i miei codici e sempre sono riuscito a fare quel che volevo, adesso pero mi sono ritrovato a lavorare su un database mai usato, di solito uso aruba o altervista, ma essendo questo sito giá pubblicato non ho potuto fare altro...

    In poche parole il codice php, che mi funziona bene per esempio in altervista, qui non va... è come se non mi legge il codice su questo server nello stesso modo che me lo legge negli altro.... faccio un paio di esempi...

    Se faccio un link da una pagina A ( Casa ) Verso la pagina B e richiamo il codice ad esempio "if (isset($casa)&&(!empty($casa))) { visualizza($casa,0);" questo non me lo accetta!!!!!!!!!
    cosa che su altri server me lo fa tranquillamente! come se non legge i codici.

    Altro esempio è quando voglio passare dei dati con il classico sistema form Action... Prima quando passavo alla pagina b mi bastava riprendere semplicimente con una variabile ($nome) i dati che mi passavo dalla form... adesso invece mi sono accorto che devo obbligatoriamente usare $_POST[nome] altrimenti qui non me li passa... come posso risolvere!?!?

    grazie

  2. #2
    aggiornando lo script.

    primo usa il tag php esteso, poi ora lavori con register_globals = off mentre prima era in ON.

    Leggi la pillola di Chris. Se fosse un bambino andrebbe a scuola questa pillola nel senso che e' ormai molto il tempo passato da quando e' stata scritta.... ma ancora serve.

    http://forum.html.it/forum/showthrea...hreadid=245215

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe ottimo...eheh... ma non capisco come faccio leggere:

    catalogo.php?marca=casa

    nella pagina che viene richiamata non riesce a passarghi il calore di marca... cioè $casa


    in quersto caso!?

  4. #4
    Originariamente inviato da dariocena
    bhe ottimo...eheh... ma non capisco come faccio leggere:

    catalogo.php?marca=casa

    nella pagina che viene richiamata non riesce a passarghi il calore di marca... cioè $casa


    in quersto caso!?
    codice:
    if(!empty($_GET['marca'])) {
       $marca =  $_GET['marca'];
       }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe si mi sta funzionando.... bhe, adesso provo a fare tutte le modifiche!!! spero mi vada bene! se qualcosa spero che mi possa ancora aiutare! grazie!!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    mmm... bhe davvero ad un certo punto mi blocco... adesso spiego meglio...
    avevo creato il mio ecommerce per piccoli negozi e mi funzionava bene fino a che non ho avuto questo problema... per ora sono arrivato a gestire e modificare solo due file... in poche parole all'inizio ho una pagina html con dei link che ho modificato:

    Marche.php

    Nissan

    Mercedes

    Maserati

    Fiat


    In seguito come vedi si collega a la pagina catalogo.php ... e adesso mi funziona!
    Questa stampa a video prima tutte le marche salvate in database e poi da quella scelta, ricavatosi l'IP estrae solo la corrispondente col cliccare del primo link!!!


    <?PHP
    session_start();
    $marca = $_GET['marca'];
    $id = $_GET['id'];
    if (isset($marca)&&(!empty($marca))) {
    visualizza($marca,0);
    }
    elseif ((isset($id))&&(!empty($id))){
    visualizza('',$id);
    }
    else {

    //se niente è settato
    //torna alla pagina marche.html

    header("location:marche.html");
    }

    function visualizza($marca,$id) {
    include("corso.inc.php");
    $conn=connect($host,$user,$pass,$db);
    if ($marca!='') {
    echo "<HTML><HEAD><TITLE>Modelli $marca</TITLE></HEAD>";
    echo "<BODY><TABLE><TR><TD colspan=2>Modelli $marca</TD></TR>";
    echo "<TR><TD>Modello</TD><TD>Prezzo</TD></TR>";
    $query="SELECT Id,Modello,Prezzo FROM Prodotti WHERE Marca=\"$marca\"";
    $res=mysql_query($query,$conn);
    $num=mysql_num_rows($res);
    for ($i=1;$i<=$num;$i++) {
    $row=mysql_fetch_row($res);
    $id=$row[0];
    $modello=$row[1];
    $prezzo=$row[2];
    echo "<TR><TD><a href='catalogo.php?id=$id'>$modello</TD>";
    echo "<TD>$prezzo &euro;</TD></TR>";
    } // fine for
    echo "</BODY></HTML>";
    }// fine if marca!=0
    else {

    echo "<HTML><HEAD><TITLE>Modello in Dettaglio</TITLE></HEAD>";
    $query="SELECT * FROM Prodotti WHERE Id=$id";
    $res=mysql_query($query,$conn);
    $num=mysql_num_rows($res);
    for ($i=1;$i<=$num;$i++) {
    $row=mysql_fetch_row($res);
    $id=$row[0];
    $modello=$row[1];
    $marca=$row[2];
    $prezzo=$row[3];
    $note=$row[4];
    $img=$row[5];
    // visualizza il form
    echo "<form name='form1' method='post' action='compra.php'>
    <input type='hidden' name='id' value='$id'>
    <table width='30%' border='1'>
    <tr>
    <td rowspan='3' width='14%'>[img]$img[/img]</td>
    <td width='48%'>Note</td>
    <td width='38%'>Prezzo</td>
    <td>
    Quantità
    </td>
    </tr>
    <tr>
    <td width='48%'>$note</td>
    <td width='38%'>$prezzo &euro;</td>
    <td>
    <select name='quanto' value='$quanto'>
    <option selected>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    </select>
    </td>
    </tr>
    <tr>
    <td width='48%'>$marca $modello</td>
    <td></td>
    <td width='38%'>
    <input type='submit' name='Submit' value='Compra'>
    </td>
    </tr>
    </table>
    </form>";
    }// fine for
    echo "</BODY></HTML>";
    }// fine else
    mysql_close($conn);
    }
    ?>


    Il problema mi viene adesso perchè... lui fá tutto e riesce a passare i dati al file compra.php.
    Il problema è che prima quest'ultimo file lo avevo creato in modo che mi salvasse un numero di sessione per l'utente e che mi contasse anche quante righe sono estratte per vedere quanti oggetti sono stati comprati... ti faccio vedere:


    <?PHP
    session_start();
    session_register("num");
    $id = $_POST['id'];
    $quanto = $_POST['quanto'];
    if (!isset($id)||empty($id)){
    header('location:marche.html');
    }
    else {
    //inserisce l'articolo nel carrello
    $time=time();
    $query="INSERT INTO Carrello VALUES(\"$PHPSESSID\",$id,$time,$quanto)";
    include("corso.inc.php");
    $conn=connect($host,$user,$pass,$db);
    mysql_query($query,$conn) or die(mysql_error());
    $num++;
    echo"<HTML><HEAD><TITLE>Articolo aggiunto al carrello</TITLE></HEAD>
    <BODY><DIV ALIGN='CENTER'><H1>Automobile aggiunta al carrello</H1></DIV>

    </br><H2>Visualizza Carrello</H2>
    </br><H2>Torna al catalogo</H2>

    <H2>Numero Articoli : $num</H2>
    </BODY>";
    mysql_close($conn);
    }
    ?>


    Bhe come vedi dal codice, la quantitá adesso me la salva in Db e anche il time e id dell'oggetto... solo che non mi salva piú il $PHPSESSID che mi serviva a creare l'id fisso del cliente... e neanche il $num non me lo calcola bene... mi restituisce sempre 1! A questo punto se sapessi modificare bene il codice si passerebbe al carrello di compra! ma non mi funziona per ora! almeno sono riuscito a modificare solo i primi due pezzi!!! Cosa sbaglio!?

    Premetto che nel mio database ho creato due tabelle... una che si chiama Prodotti, dove inserisco id,nome, prezzo e caratteristiche di ogni prodotto singolo, e l'altra tabella è Carrello dove si dovrebbe salvare l'User_id,id,Time,quantita... (quella per la parte che non funziona)

    spero di essere stato chiaro e spero che potrai aiutarmi, penso che come codice sia abbastanza basico...almeno per voi...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    problema..mmm...

    Grazie....scusate avevo scritto il messagio due volte!

  8. #8
    Prova cosi' ... se ci sono errori di sintassi correggili visto che scrivere codice sul forum non e' il massimo come editor....

    Codice PHP:
    <?php
    session_start
    ();

    $id = !empty($_POST['id']) ? $_POST['id'] : '' ;
    $quanto = !empty($_POST['quanto']) ? $_POST['quanto'] : '';

    if (empty(
    $id) || empty($quanto)){
    header('location:marche.html');
    }
    else {
    //inserisce l'articolo nel carrello
    $num 0;
    $time=time();
    $query="INSERT INTO Carrello VALUES('".session_id()."', $id$time$quanto)";
    include(
    "corso.inc.php");
    $conn connect($host,$user,$pass,$db);
    mysql_query($query,$conn) or die(mysql_error());

    if(
    mysql_affected_rows($conn) == 1) {
        
    $_SESSION['num'] = $num++;
        }  else {
                exit(
    'valore non inserito'); }

    echo
    "<HTML><HEAD><TITLE>Articolo aggiunto al carrello</TITLE></HEAD>
    <BODY><DIV ALIGN='CENTER'><H1>Automobile aggiunta al carrello</H1></DIV>

    </br>[url='carrello.php']<H2>Visualizza Carrello</H2>[/url]
    </br>[url='marche.html']<H2>Torna al catalogo</H2>[/url]

    <H2>Numero Articoli : 
    $num</H2>
    </BODY>"
    ;
    mysql_close($conn);
    }
    ?>
    note:
    non devi piu' usare session_register ma $_SESSION che e' sempre registrato.
    Usa session_id() al posto di $PHPSESSID
    controlla le variabili "prima" e non dopo il trasferimento da GET/POST
    !isset e empty in questo caso sono un doppione: se non e' settato e' ovvio sia vuoto, pero' potrebbe essere settato ma vuoto. Usa !empty e controlli entrambi i casi.
    Non e' detto che se non ricevi un false da mysql_query l'insert sia andato a buon fine, meglio controllare che abbia inserito 1 riga.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    perfetto, adesso provo a fare i cambi!!!se quacosa ti dico! grazie mille!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe si ottimo..adesso mi inserisce l'id!!! peró contnua a non calcolarmi il $num... per me è un'errore che mi sono lasciato nel file dietro.... catalogo.php, quello dopo l'html...

    Io non vedo errori nel codice che hai scritto... è come se non funzionasse il ++ o cmq nel tronare dietro a comprare un'altra cosa la sessione di perderebbe e ricomincerebbe daccapo... che pensi!?

    grazie!!!

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.