problema di percorso?

ciao,

provo a postare qui..non sono sicuro che sia un problema php :)

<form action="<?php echo $_SERVER['PHP_SELF']; ?>?page=checkout&step=2" method="post" name="frmCheckout" id="frmCheckout" onSubmit="return checkShippingAndPaymentInfo();">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>?step=2" method="post" name="frmCheckout" id="frmCheckout" onSubmit="return checkShippingAndPaymentInfo();">

è la stessa cosa? nel senso, ci possono essere problemi di percorso?

perchè questi 2 form fanno parte di 2 script identici tranne nel percorso. il primo non funziona, cioè non mi esegue la funzione nel onSubmit che serve per fare un check sui campi form.

mentre il secondo funziona! la cartella dove risiede il file per le funzioni è identica e situata nello stesso posto e sono per entrambi gli script in localhost....

avete sugerimenti?

grazie!

inviato 10 anni fa
iTek
iTek
1
X 0 X

quindi il problema è che la funzione javascript "checkShippingAndPaymentInfo()" non viene eseguita dal primo form?

Non mi sembra che l'attributo action influisca su questo...

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ok, ho deciso di eliminare tutta la parte JS per il controllo sui campi.

meglio passare a qualcosa lato server, consigliato anche per una questione di sicurezza..

cosa ne dici?

risposto 10 anni fa
iTek
iTek
1
X 0 X

I controlli javascript servono solo ad evitare che per ogni minimo errore di compilazione del form sia necessario inviare i dati al server, niente di più. Con la sicurezza non hanno nulla a che fare....

I controlli sul server sono gli unici degni di questo nome.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao mi servirebbero un paio di consigli su questo script.

<ul class="orizzontale">
   <li class="voce"><a href="http://localhost/frutta/patate.php">patate</a></li>
   <li class="voce"><a href="<?php echo $path; ?>/carote.php">carote</a></li>

E' un comunissimo listato con dei link. Con il primo non ho problemi.

Il secondo invece mi da queso errore:

You don't have permission to access /frutta/<br /><b>Notice</b>: Undefined variable: path in <b>C:/www/frutta/_include/head.php</b> on line <b>25</b><br />/carote.php on this server.

Ora, i parametri del path sono questi:

$folder = "/frutta";

$path = "http://".$_SERVER['HTTP_HOST']."".$folder."";

$path_include = "".$path."/_include";

$host = $_SERVER['HTTP_HOST'];

Apparentemente mi sembra corretto ma stando all'errore al mio path viene agganciato /_include/head.php, come se venisse letta la variabile $path_include anziché $path.

 :dunno:

risposto 10 anni fa
Piero83
X 0 X

L'unica evidenza è l'errore "Undefined variable: path". Significa quindi che lo script non "vede" tale variabile, forse perché al di fuori dello scope (ambiente di visibilità) di $path.

Pertanto l'istruzione:

$path = "http://".$_SERVER['HTTP_HOST']."".$folder."";

e la riga:

<li class="voce"><a href="<?php echo $path; ?>/carote.php">carote</a></li>

non sono in visibilità di codice.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ah ok!

Dunque per renderli visibili?

I parametri delle configurazioni sono tutti dentro una cartella. Questa cartella è dentro la cartella principale del sito...

risposto 10 anni fa
Piero83
X 0 X

Vedi se:

 - hai incluso i parametri di configurazione di cui parli nei file php (include)

 - per caso una variabile è dentro una funzione e poi la utilizza al di fuori di questa

risposto 10 anni fa
usecram
X 0 X

Vedi se:

 - hai incluso i parametri di configurazione di cui parli nei file php (include)

- Sì ogni pagina php che creo include sempre il file php di configurazione.

- per caso una variabile è dentro una funzione e poi la utilizza al di fuori di questa

- Come faccio a risolvere? Cioè perché dovrebbe fare una cosa simile se gli dico che il path è nel file "xxx.php" e questo file lo includo in ogni pagina??

risposto 10 anni fa
Piero83
X 0 X

Rettifico: vedi se per caso una variabile è dentro una funzione e poi la utilizzi al di fuori di questa.

Ad esempio

function prova ()  {
  $path = "http://".$_SERVER['HTTP_HOST']."".$folder."";
}
...
echo "<li class='voce'><a href='<?php echo $path; ?>/carote.php'>carote</a></li>";

ti restituirebbe:

Notice: Undefined variable: path in D:\Test\PROVE.php on line 6

Questo era quanto volevo dire. Se né l'uno né l'altro caso ti riguardano prova a postare più codice ed a descrivere meglio la situazione.

 :bye:

risposto 10 anni fa
usecram
modificato 10 anni fa
X 0 X

Rettifico: vedi se per caso una variabile è dentro una funzione e poi la utilizzi al di fuori di questa.

Ad esempio

function prova ()  {
  $path = "http://".$_SERVER['HTTP_HOST']."".$folder."";
}
...
echo "<li class='voce'><a href='<?php echo $path; ?>/carote.php'>carote</a></li>";

ti restituirebbe:

Notice: Undefined variable: path in D:\Test\PROVE.php on line 6

Questo era quanto volevo dire. Se né l'uno né l'altro caso ti riguardano prova a postare più codice ed a descrivere meglio la situazione.

 :bye:

Ah ora ho capito.

Il path è dentro un file che si chiama configurazione.php. Le dichiarazioni di questo file sono:

<?
// database
$db_server = "xxxxx";
$db_username = "xxxxx";
$db_password = "xxxxx";
$db_name = "dbfrutta";
// cartelle
$folder = "/frutta";
$path = "http://".$_SERVER['HTTP_HOST']."".$folder."";
$path_admin = "".$path."/admin";
$path_include = "".$path."/_include";
//Variabili di sistema 
$Server=$_SERVER['SERVER_ADDR']; 
$ip = $_SERVER['REMOTE_ADDR'];
$host = $_SERVER['HTTP_HOST'];
$referer = $_SERVER['HTTP_REFERER'];
$percorso = "".$_SERVER['DOCUMENT_ROOT']."/_documenti";
?>

La variabile $path è dentro un comunissimo echo.

L'istruzione si trova dentro head.php che viene inclusa in ogni pagina. Questa è la porzione dei codice:

<ul class="orizzontale">
<li class="voce"><a href="<?php echo $path; ?>/carote.php"><?php echo $Lb001; ?></a></li>
<li class="voce"><a href="http://localhost/frutta/patate.php"><?php echo $Lb002; ?></a></li>
<li class="voce"><a href="http://localhost/frutta/mele.php"><?php echo $Lb006; ?></a></li>
</ul>

L'unica funzione che c'è è l'include che richiama il file configurazione.php dentro la pagina, ma riguarda l'intero file non la variabile:

<?php
include("./_include/configurazione.php");
include("./_include/config.incb.php");
include("./_include/dictionary2.1.php");
include("./_include/dictionary.1.php");
$keywords = $tit002;
$description = $des002;
$title = $tit002;
include("./_include/head.php");
$flgleft = "home";
include("./_include/left.php");
$flgcont = "home";
include("./_include/cont.php");
?>

Ad ogni modo, sì, la variabile $path è dichiarata dentro configurazione.php ma viene stampata dentro head.php. Entrambi però sono inclusi quindi non capisco perché non debba funzionare...

 :bye:

risposto 10 anni fa
Piero83
modificato 10 anni fa
X 0 X

Ed effettivamente dovrebbe poiché tu hai definito $path e hai avuto cura di includerla nella pagina.

Ma dal momento che PHP continua a non vederla il problema deve essere un altro.

Ho notato che l'errore che segnalavi

You don't have permission to access /frutta/<br /><b>Notice</b>: Undefined variable: path in <b>C:/www/frutta/_include/head.php</b> on line <b>25</b><br />/carote.php on this server.

riguardava innanzitutto la mancanza dei permessi alla cartella frutta impostali correttamente perché un errore può essere causa dell'altro ed è bene sempre risolvere il primo.

risposto 10 anni fa
usecram
X 0 X
riguardava innanzitutto la mancanza dei permessi alla cartella frutta impostali correttamente perché un errore può essere causa dell'altro ed è bene sempre risolvere il primo.

Perdona la mia ignoranza ma non so proprio quali permessi devo impostare... :-[

Devo abilitare qualche comando dal php.ini? O si tratta di password o cose simili?

risposto 10 anni fa
Piero83
X 0 X

Ciao Piero scusa se ti rispondo soltanto ora ma ho avuto da fare.

Ti segnalo questo articolo da leggere http://php.html.it/articoli/leggi/853/chmod-con-php/ piuttosto chiarificatore riguardo al problema dei permessi in php. A dire il vero si fa riferimento al problema in remoto e tu sei in locale, comunque il problema direi che è quello e dovrebbe verificarsi se sei su un sistema UNIX che non uso (non ancora).

risposto 10 anni fa
usecram
X 0 X

Ciao usecram, grazie per l'attenzione.

Ho letto tutto l'articolo e ho letto anche quello relativo al safe_mode.

Io sono in locale e non uso Unix...ma proverò cmq ad abilitare questi permessi.

Quello che mi fa strano è che le configurazioni e gli script che ho postato sopra funzionano correttamente per un altro sito tant'è che li ho riciclati per questo... :dunno:

risposto 10 anni fa
Piero83
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda