Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

PHP e problemi di include

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, axelrox

PHP e problemi di include

Postdi Dylan666 » 21/10/04 19:07

Ho un file HTML così scritto:

<html>
<head>
<title>Homepage di www.[sito].c0m</title>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table border="3" cellspacing="0" bordercolor="#0000CC" cellpadding="3" width="100%">
<tr>
<td class="norm" bgcolor="#FFCC66">
<div align="center"><b><font size="4" class="norm">Pensieri:</font></b></div>
</td>
</tr>
<tr>
<td class="norm" bgcolor="#FFFFCC">
<? /* Displays a random phrase from a file */
/* create a file "quotes.txt" and put */
/* quotes in it: one quote per line, */
/* then just put this code somewhere */
/* on you page. Enjoy! */

$filename = "quotes.txt";
$phrases = file($filename);
srand ((double) microtime() * 1000000);
$a = rand(0, sizeof($phrases) - 1);
echo $phrases[$a]; ?>
</td>
</tr>
</table>
</body>
</html>


Come vedete la seconda parte è un codice php per chiamare una riga randoma da un file di testo chiamato quotes.txt. Io però vorrei tenere questo scrip separato dalla pagina, in un file, in modo da poterlo richiamare con una riga tipo:

<? include('script.php'); ?>

se lo faccio con quello però la pagina con la tabella non viene caricata completamente perché quest'ultima viene creata infinite volte dentro se stessa e il browser va in crash. Come risolvo?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Sponsor
 

Postdi Triumph Of Steel » 21/10/04 20:22

io ho provato e a me funziona..

HTML (pagina.php)
Codice: Seleziona tutto
<html>
<head>
<title>Homepage di www.[sito].c0m</title>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<table border="3" cellspacing="0" bordercolor="#0000CC" cellpadding="3" width="100%">
<tr>
<td class="norm" bgcolor="#FFCC66">
<div align="center"><b><font size="4" class="norm">Pensieri:</font></b></div>
</td>
</tr>
<tr>
<td class="norm" bgcolor="#FFFFCC">
<?php include("random.php"); ?>
</td>
</tr>
</table>
</body>
</html>


Random script (random.php)
Codice: Seleziona tutto
<? /* Displays a random phrase from a file */
/* create a file "quotes.txt" and put */
/* quotes in it: one quote per line, */
/* then just put this code somewhere */
/* on you page. Enjoy! */

$filename = "quote.txt";
$phrases = file($filename);
srand ((double) microtime() * 1000000);
$a = rand(0, sizeof($phrases) - 1);
echo $phrases[$a];
?>
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Dylan666 » 22/10/04 12:36

Ora funziona pure a me, non so veramente cosa dire... :undecided:
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 22/10/04 18:45

Un ultimo sforzo ti prego... il codice semmbra tanto ma giuro che quello da prendere in considerazione NON lo è:

Il form di immissione è questo:

include("include/config.php");
include("include/dbconnect.php");


// BARRA NAVIGAZIONE
function toolbar(){
global $url_home;
echo "<p class=\"nav\"><a href=$url_home>Home</a> &gt; ";
echo "Newsletter</p>";
}
// FINE BARRA DI NAVIGAZIONE

$titolo_pagina = "ListMan 1.0 - TuttoWebMaster.com";
include("temi/$tema/header.php");

$query = "SELECT id_lista, nome_lista, desc_lista, n_iscritti FROM listman_lista order by nome_lista";
$result = safe_query($query);
$n = 0;

while ( $row = mysql_fetch_array($result) ){

$id_lista = $row["id_lista"];
$nome_lista = $row["nome_lista"];
$listname = urlencode($nome_lista);
$desc_lista = $row["desc_lista"];
$n_iscritti = $row["n_iscritti"];
echo "<br><br>";
echo "<table width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"1\" align=\"center\" bgcolor=\"$colore_esterno_form\">";
echo "\n";
echo "<tr>\n";
echo "<td align=\"left\">\n";
// TABELLA INTERNA
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" align=\"center\" bgcolor=\"$sfondo_tabelle\">";
echo "\n";
echo "<tr>\n";
echo "<td bgcolor=\"$colore_esterno_form\">\n";
echo "<b><font $font_attr_int_form>$nome_lista</font></b></td>\n";
echo "<td bgcolor=\"$sfondo_celle\">\n";
echo "<p><b>Numero iscritti</b> $n_iscritti</p> </td>\n";
echo "<td bgcolor=\"$sfondo_celle\" align=\"center\"><p><img src=img/post.gif> <a href=leggi.php?id_lista=$id_lista&listname=$listname>Leggi arretrati</a></p></td>";
echo "</tr>\n";
echo "<tr>\n";
echo "<td colspan=\"3\" bgcolor=\"$sfondo_celle\">\n";
echo "<p>$desc_lista</p> <br><br></td>\n";
echo "</tr>\n";
/*
echo "<tr>\n";
echo "<td align=\"center\" bgcolor=\"$colore_interno_form\" colspan=\"3\">\n";
echo "<hr></td>\n";
echo "</tr>\n";
*/
echo "<tr>\n";
echo "<td align=\"left\" colspan=\"3\" bgcolor=\"$sfondo_celle\">\n";
print <<<EOQ
<script language=JavaScript>
<!--
function selezionato$n(){
if (document.newsman$n.indirizzoemail.value==" e-mail")
{document.newsman$n.indirizzoemail.value=""}
}
// -->
</script>
<div align="center">
<br>
<form action="$url_listman/a.php" method="post" name="newsman$n">
<input type="hidden" name="lista_id" value="$id_lista">
<p>Inserisci <input type="text" name="indirizzoemail" size="20" maxlength="70" value=" e-mail" onFocus="selezionato$n()"><BR><BR>
<input type="radio" name="task" value="iscrivimi" checked> Iscrivimi <BR> <BR>
<input type="radio" name="task" value="cancellami"> Cancellami <BR><BR>
<input type="submit" value=" OK "></p>
</form>

</div>

EOQ;
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";
// FINE TABELLA INTERNA
echo "</td>\n";
echo "</tr>\n";
echo "</table>\n";

echo "<br>\n";

$n++;

}


include("temi/$tema/footer.php");
?>



Questo è il file di elaborazione dati:
<?PHP
include("include/config.php");
include("include/dbconnect.php");

// BARRA NAVIGAZIONE
function toolbar(){
echo "<p class=\"nav\"><a href=$url_home>Home</a> &gt; ";
echo "<a href=index.php>Newsletter</a></p>";
}
// FINE BARRA DI NAVIGAZIONE
function invia_email($oggetto, $toemail, $fromemail, $messaggio, $cc = "", $bcc=""){

if (!empty($cc)){
$altro .= "cc:$cc\n";
}
if (!empty($bcc)){
$altro .= "bcc:$bcc\n";
}

mail("$toemail", "$oggetto", "$messaggio", "From: $fromemail\n$altro");
}

if($task == "iscrivimi"){
$titolo_pagina = "Richiesta conferma iscrizioni";
}elseif($task == "cancellami"){
$titolo_pagina = "Richiesta conferma cancellazione";
}

function controllo_email($email,$lista,$task){
global $url_listman;
$email = trim($email);
if (empty($email) || !eregi("^[A-Za-z0-9\_.-]+@[A-Za-z0-9\_-]+.[A-Za-z0-9\_-]+.*", $email))
{
echo "<br><br><br><p align=center>Indirizzo email non valido</p><br><br><br><br><br><br>\n";
}else{
//VERIFICA SE C'è in DB
$query = "SELECT id, indirizzoemail FROM listman_email WHERE indirizzoemail = '$email' AND lista_id = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$id = $row["id"];
}

if(mysql_num_rows($result)>0 and $task == "cancellami"){
$query = "SELECT nome_lista, msg_conferma_canc FROM listman_lista WHERE id_lista = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$nome_lista = $row["nome_lista"];
$msg_conferma_canc = $row["msg_conferma_canc"];
}
$url_conferma = "$url_listman/c.php?i=$id&e=$email&l=$lista";
$msg_conferma_canc = str_replace("[link_conferma]", $url_conferma, $msg_conferma_canc);
$msg_conferma_canc = str_replace("[nome_lista]", $nome_lista, $msg_conferma_canc);
//echo $msg_conferma;
$oggetto = "Richiesta cancellazione da $nome_lista";
$fromemail ="noreply@listman.cpu";
invia_email($oggetto, $email, $fromemail, $msg_conferma_canc, $cc = "", $bcc="");
echo "<h1>&Egrave; richiesta la tua conferma</h1>\n<p>La tua richiesta di cancellazione dalla newsletter <b><i>$nome_lista</i></b> è stata "
."appena inoltrata, è stata spedita all'indirizzo <b>$email</b> che hai "
."specificato. Per <b>confermare</b> la tua cancellazione, segui le semplici "
."istruzioni che trovi nella email che ti abbiamo inviato. Grazie!</p><br><br>";

}elseif(mysql_num_rows($result)<1 and $task == "cancellami"){
$query = "SELECT nome_lista FROM listman_lista WHERE id_lista = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$nome_lista = $row["nome_lista"];
}
echo "<h1>Non sei iscritto</h1><p><b><i>Attenzione!</i></b><br><br>L'indirizzo email <b>$email</b> non è presente nell'archivio della newsletter <b><i>$nome_lista</i></b>, quindi non è necessario richiedere la cancellazione dalla newsletter.<br><br>";
echo "</p><br><br><br><br>";
}elseif(mysql_num_rows($result)>0 and $task == "iscrivimi"){
$query = "SELECT nome_lista FROM listman_lista WHERE id_lista = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$nome_lista = $row["nome_lista"];
}
echo "<h1>Sei già iscritto</h1><p><b><i>Attenzione!</i></b><br><br>L'indirizzo email <b>$email</b> è già presente nell'archivio della newsletter <b><i>$nome_lista</i></b>, quindi sei già iscritto alla newsletter.<br><br>Se vuoi cancellarti devi selezionare l'opzione <i>cancellami</i>.<br><br></p> ";
}elseif(mysql_num_rows($result)<1 and $task == "iscrivimi"){
// echo "iscrivi";
$query = "INSERT INTO listman_email (indirizzoemail, lista_id, confermato) values ( '$email', $lista, 0)";
safe_query($query);
$id_iscritto = mysql_insert_id();
$query = "SELECT nome_lista, msg_conferma FROM listman_lista WHERE id_lista = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$nome_lista = $row["nome_lista"];
$msg_conferma = $row["msg_conferma"];
}
$url_conferma = "$url_listman/i.php?i=$id_iscritto&e=$email&l=$lista";
$msg_conferma = str_replace("[link_conferma]", $url_conferma, $msg_conferma);
$msg_conferma = str_replace("[nome_lista]", $nome_lista, $msg_conferma);
//echo $msg_conferma;
$oggetto = "Richiesta conferma Iscrizione $nome_lista";
$fromemail ="noreply@listman.cpu";
invia_email($oggetto, $email, $fromemail, $msg_conferma, $cc = "", $bcc="");
echo "<h1>&Egrave; richiesta la tua conferma</h1>
<p>La tua sottoscrizione alla newsletter <b><i>$nome_lista</i></b> è stata
appena inoltrata. </p>
<p>Una email di sottoscrizione è stata spedita all'indirizzo <b>$email</b> che hai
specificato. Per <b>confermare</b> la tua iscrizione, segui le semplici
istruzioni che trovi nella email che ti abbiamo inviato.</p>
<p><b><i>Attenzione!</i></b> se non confermi la tua iscrizione nel modo specificato nella email che ti è stata inviata, non riceverai
la newsletter.</p>
<p>Se non la ricevi entro un'ora o due, è probabile che tu abbia scritto
male l'indirizzo email. Capita! </p>
<p>Se non ricevi l'email di sottoscrizione, ritorna su TuttoWebmaster.com
ed inserisci il tuo indirizzo email, facendo attenzione a <b>non
commettere errori</b>. </p>
<p>Grazie per esserti iscritto alla newsletter <b><i>$nome_lista</i></b>. </p>
<br><br>
";
}

}
}

include("temi/$tema/header.php");

controllo_email($indirizzoemail,$lista_id,$task);

include("temi/$tema/footer.php");
?>



Io devo aggiungere alla tabella listman_email oltre a quello che c'è ora (indirizzo, lista_id e confermato) anche nome, congnome e data di nascita.
Le parti evidenziate sono quelle che suppongo devo cambiare. Ho gà provato a creare nel database un nuovo campo chiamato "nome" ed ho provato a aggiungere $nome e nome nella riga in grassetto del file di destinazione aggiungendo il textfield nome nel form di immissione ma questo non si inserisce. Dove sbaglio?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Triumph Of Steel » 22/10/04 21:04

Codice: Seleziona tutto
form.php

<form....>
<input type="text" name="nome_utente">
<input type="text" name="cognome_utente">
<input type="text" name="data_nascita">
</form>


mhmh dunque, supponendo che il form sopra sia in quel modo.. e che indirizzoemail e listaID siano sempre nel form...

Codice: Seleziona tutto
response.php

// request vars from Form //
$nomeUtente = (isset($_REQUEST['nome_utente']) && $_REQUEST['nome_utente'] != "") ? $_REQUEST['nome_utente'] : "";
$cognomeUtente = (isset($_REQUEST['cognome_utente']) && $_REQUEST['cognome_utente'] != "") ? $_REQUEST['cognome_utente'] : "";
$dataNascita = (isset($_REQUEST['data_nascita']) && $_REQUEST['data_nascita'] != "") ? $_REQUEST['data_nascita'] : "";

// sql Injection
// Str_Replace = sostituisci apice con doppio apice (nel caso il magic_quotes nel php.ini sia disabilitato)
// Trim = elimina spazi all'inizio e alla fine della stringa
$nomeUtente = Str_Replace("'","\'",Trim($nomeUtente));
$cognomeUtente = Str_Replace("'","\'",Trim($cognomeUtente ));
$dataNascita = Str_Replace("'","\'",Trim($dataNascita ));


// insert into DB
$qry = " INSERT INTO listman_email (indirizzoemail,lista_id,confermato,nome,cognome,datanascita) VALUES ('".$email."',".$lista.",0,'".$nomeUtente."','".$cognomeUtente."','".$dataNascita."') ";



ovvio, che la tabella del Database deve essere

Codice: Seleziona tutto
CREATE TABLE `listman_email` (
  `idListMan` int(11) NOT NULL auto_increment,
  `indirizziemail` text NOT NULL,
  `lista_id` int(11) NOT NULL,
  `nome`  text NOT NULL,
  `cognome` text NOT NULL,
  `DataNascita` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`idListMan`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;


circa..
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Dylan666 » 22/10/04 22:19

Per database e form è tutto ok ma andiamo per gradi e cominciamo con solo il capo nome:

nome_utente
// request vars from Form //
$nomeUtente = (isset($_REQUEST['nome_utente']) && $_REQUEST['nome_utente'] != "") ? $_REQUEST['nome_utente'] : "";
$cognomeUtente = (isset($_REQUEST['cognome_utente']) && $_REQUEST['cognome_utente'] != "") ? $_REQUEST['cognome_utente'] : "";
$dataNascita = (isset($_REQUEST['data_nascita']) && $_REQUEST['data_nascita'] != "") ? $_REQUEST['data_nascita'] : "";

// sql Injection
// Str_Replace = sostituisci apice con doppio apice (nel caso il magic_quotes nel php.ini sia disabilitato)
// Trim = elimina spazi all'inizio e alla fine della stringa
$nomeUtente = Str_Replace("'","\'",Trim($nomeUtente));
$cognomeUtente = Str_Replace("'","\'",Trim($cognomeUtente ));
$dataNascita = Str_Replace("'","\'",Trim($dataNascita ));


// insert into DB
$qry = " INSERT INTO listman_email (indirizzoemail,lista_id,confermato,nome,cognome,datanascita) VALUES ('".$email."',".$lista.",0,'".$nomeUtente."','".$cognomeUtente."','".$dataNascita."') ";
[/quote]


Quella è la tua soluzione: ma non è possibile solamente aggiustare la stringa esistente aggiungendo la parte in verde come ho fatto qui sotto? Cosa manca e perché vanno fatte tutte quelle righe di scodice che hai messo tu (request vars from Form e sql Injection
non sono superflui?)?

// echo "iscrivi";
$query = "INSERT INTO listman_email (nome, indirizzoemail, lista_id, confermato) values ( '$nome_utente, '$email', $lista, 0)";
safe_query($query); $id_iscritto = mysql_insert_id();
$query = "SELECT nome_lista, msg_conferma FROM listman_lista WHERE id_lista = $lista";
$result = safe_query($query);
while ( $row = mysql_fetch_array($result) ){
$nome_lista = $row["nome_lista"];
$msg_conferma = $row["msg_conferma"];
}
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Triumph Of Steel » 23/10/04 11:46

i Request e il replace di eventuali apici non sono poi così superflui...
forse i request, dipende da come è settato il php.ini... mentre per gli apici se non vuoi evitare casini con strani errori durante l'INSERT (e soprattutto questo replace deve essere usato durante i SELECT: hackme challenge docet), allora ti conviene...

il codice che ho scritto può essere usato su qualsiasi configurazione del php, perchè controlla sempre che la vars esista e non sia vuota (se un php.ini è settato E_ALL per gli errori, e la var non esiste o è vuota, il php ti da un WARNING, e non è bello...)

io ti ho scritto il codice.. tutto... poi sta a te prendere quello che serve...
se vuoi avere un codice universale, ti consiglio tutto..

il codice che hai scritto tu..

manca l'apice alla fine della variabile " $nome_utente ".. e cmq come sintassi mi sembra corretta..
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi Dylan666 » 23/10/04 11:55

Grzie dell'aiuto, il problema è che vorrei modificare lo script distaccandomi il meno posibile dall'originale, almeno all'inizio...

Ora riprovo, ma facendo la piccola modifica che ho riportato sopra (con apici corretti pero) il campo "nome" non venina aggiunto nel database...

Vado con la sperimentazione
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 26/10/04 12:00

Facciamo progressi... il record NON viene inserito ma almeno il MySQL mi dice qualcosa:

Form
Codice: Seleziona tutto
<form action="$url_listman/a.php" method="post" name="newsman$n">
<input type="hidden" name="lista_id" value="$id_lista">
<p>Inserisci <input type="text" name="indirizzoemail" size="20" maxlength="70" value=" e-mail" onFocus="selezionato$n()"><BR><BR>
   
   <input type="text" name="nome_utente">
   
   
<input type="radio" name="task" value="iscrivimi" checked> Iscrivimi <BR> <BR>
<input type="radio" name="task" value="cancellami"> Cancellami <BR><BR>
<input type="submit" value="    OK    "></p>
</form>



Insert
Codice: Seleziona tutto
         $query = "INSERT INTO listman_email (nome_utente, indirizzoemail, lista_id, confermato) values ( '$nome', '$email', $lista, 0)";
         safe_query($query);
         $id_iscritto = mysql_insert_id();
         $query = "SELECT nome_lista, msg_conferma FROM listman_lista WHERE


Risposta:
Codice: Seleziona tutto
  ack! query failed:
errorno=1054
error=Unknown column 'nome_utente' in 'field list'
query=INSERT INTO listman_email (nome_utente, indirizzoemail, lista_id, confermato) values ( '', 'proviamo@proviamo.prv', 1, 0)


Che mi dici? Dove sbaglio?

Il nome nel database è così fatto:

Campo [nome]
Tipo [CHAR]
Lunghezza [70]
Attributi [_]
Null [Not Null]
Predefinito [_]
Extra [_]
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 26/10/04 13:08

ma la colonna si chiama 'nome' o 'nome_utente' ? :undecided:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 26/10/04 13:17

Bravo ci hai preso, avevo invertito il nome del textfield con quello della colonna e viceversa.

Il codice giuso è questo:

Insert
Codice: Seleziona tutto
         $query = "INSERT INTO listman_email (nome, indirizzoemail, lista_id, confermato) values ( '$nome_utente', '$email', $lista, 0)";
         safe_query($query);
         $id_iscritto = mysql_insert_id();
         $query = "SELECT nome_lista, msg_conferma FROM listman_lista WHERE


Ma torniamo al problema di prima: nessun messaggio di errore, la mail viene inserita ma il nome no!
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 26/10/04 13:23

ti crea una nuova riga con tutti i valori settati ma non il nome? :eeh:
io metterei una print appena dopo aver composto la query, per vedere cosa esegue... e poi la eseguirei a mano per capire che succede... però non so cosa offre mysql per eseguirla a mano :roll:
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 26/10/04 13:30

Spiega il print...
Fra poco metto on-line i file, così chi ci si vuole scervellare mi fa un favore... una volta fatto questo mi si è risolto un GROSSO problema!
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 26/10/04 13:42

print... quella query che generi in fondo è una stringa, quindi puoi fartela visualizzare sulla pagina che generi no? così ci si accorge per esempio se qualche variabile è senza valore, o altro... per eseguirla poi servirebbe un client testuale per il db, non so quali ci sono per mysql
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 26/10/04 14:40

Qui fra print e cacchi vari mi tocca mettere mano al codice più di quanto volessi...

Posso dire che ho notato questo: se gli dico di riempire le colonne nome e indirizzoemail con quanto scritto nel campo email del form va tutto bene. Se aggiungo a quel form un qualunque altro campo i valori non arrivano a destinazione. Lo script è questo:

http://freephp.html.it/programmatori/vi ... asp?id=145

Se mi date una mano mi fate un grosso favore...
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 26/10/04 15:00

Dimenticavo: di tutta quella roba i file da modificare sono SOLO index.php (il form) e a.php (che insersce i dati) nella cartella ListMan. Invece nel database la sola tabella coinvolta è listman_email
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 26/10/04 15:16

Dylan666 ha scritto:Posso dire che ho notato questo: se gli dico di riempire le colonne nome e indirizzoemail con quanto scritto nel campo email del form va tutto bene. Se aggiungo a quel form un qualunque altro campo i valori non arrivano a destinazione.

prova a inserire un valore al posto del nome, invece della variabile...
Codice: Seleziona tutto
$query = "INSERT INTO listman_email (nome, indirizzoemail, lista_id, confermato) values ( 'nomeprova', '$email', $lista, 0)";

se così funziona significa che il problema è nel recuperare il valore della variabile passata dal form... hai provato ad inserire quel pezzo che ti ha suggerito tos?
Codice: Seleziona tutto
// request vars from Form //
$nomeUtente = (isset($_REQUEST['nome_utente']) && $_REQUEST['nome_utente'] != "") ? $_REQUEST['nome_utente'] : "";
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Dylan666 » 26/10/04 15:33

pjfry ha scritto:
Dylan666 ha scritto:Posso dire che ho notato questo: se gli dico di riempire le colonne nome e indirizzoemail con quanto scritto nel campo email del form va tutto bene. Se aggiungo a quel form un qualunque altro campo i valori non arrivano a destinazione.

prova a inserire un valore al posto del nome, invece della variabile...
Codice: Seleziona tutto
$query = "INSERT INTO listman_email (nome, indirizzoemail, lista_id, confermato) values ( 'nomeprova', '$email', $lista, 0)";

se così funziona significa che il problema è nel recuperare il valore della variabile passata dal form...


Vero, se metto il varole invece della variabile il campo nome viene riempito, quindi il problema è che non arrivano i dati dal form

hai provato ad inserire quel pezzo che ti ha suggerito tos?
Codice: Seleziona tutto
// request vars from Form //
$nomeUtente = (isset($_REQUEST['nome_utente']) && $_REQUEST['nome_utente'] != "") ? $_REQUEST['nome_utente'] : "";


Credo di poterlo mettere dove voglio prima basta sia prima dell?INSERT, giusto? Se è così ora provo.
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Dylan666 » 26/10/04 15:38

Ho messo il codice di ToS subito dopo gli include ma non cambia nulla, ne messaggi di errore ne nulla, solo il campo nome vuoto
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi pjfry » 26/10/04 15:46

scusa la domanda scema, ma tra tutti i pezzi di codice in giro meglio essere sicuri :D :
sicuro di aver scritto le variabili sempre allo stesso modo? il name di quella del form deve essere uguale a quello nel REQUEST[ ], e il nome della variabile ovviamente deve essere quello che poi utilizzi nella query...
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Prossimo

Torna a Discussioni


Topic correlati a "PHP e problemi di include":

alcuni problemi...
Autore: gibo
Forum: Assistenza Hardware
Risposte: 2

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

cron