-
Grazie Euro ho messo il codice nella pagina della prova e mi da safe_mode OFF
guarda http://www.iltelaiodipenelope.it/pub...box/prova4.php
Quindi se ho ben capito è così che deve essere affinché l'if funzioni... ma allora perchè diavolo non va sto accidenti di coso
Considera che la pagina originale è questa
http://www.iltelaiodipenelope.it/pub...x/box/view.php
per realizzare il box ho scritto:
config.php --> per i dati mysql
addsite.php --> form per inserire i dati
insert.php --> per inviare i dati al db
linkbox.php --> che visualizza i dati inseriti ovvero il codice che c'è nella pagina di prova
view.php dove ho raccolto tutto per l'aspetto grafico^^
Che cappero devo fare per far funzionare sto if!?!
Ti giuro non so più dove sbattere la testa sembrava na' cosetta veloce e semplice
-
Le immagini dove vengono hostate?
Mi sembra che le immagini non siano hostate sul tuo host!
Per es. per le immagini mi risulta questo:
http://i302.photobucket.com/albums/n...anner88x31.png
http://i302.photobucket.com/albums/n...anner88x31.png
http://i45.tinypic.com/x54mdc.gif
http://i46.tinypic.com/2njdd87.png
Prova a postare il codice PHP dei file addsite.php --> form per inserire i dati
e insert.php --> per inviare i dati al db
ciao
:roll:
Se $i[img] è url dell'immagine e l'immagine non è caricata sul tuo host, allora file_exists ritornerà sempre FALSE, e allora file_exists non va bene.
Se in fase di caricamento dell'immagine, url dell'immagine non viene definito, $i[img] sarà nullo.
Allora basterà fare:
if ( $i[img] == "" ) //stampa l'immagine di default
else //stampa l'url immagine caricato dall'utente
ciao
:idea:
-
Buon giorno Euro ^_^ prima cosa grazie infinite per la tua pazienza^^
Allora, gli url delle immagini ovvero banner sono inseriti dagli utenti nel form della pagina addsite.php, img è il campo del db mysql che li "raccoglie"
Per essere chiara questa è la tabella che ho nel db:
Codice:
CREATE TABLE box(
id INT(11) NOT NULL AUTO_INCREMENT,
data VARCHAR(100) NOT NULL,
nome VARCHAR(255) NOT NULL,
img TEXT NOT NULL,
url VARCHAR(255) NOT NULL,
messaggio LONGTEXT NOT NULL,
ip VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
)
E questo è il codice del form ovvero addsite.php
Codice HTML:
<table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='0' cellspacing='3' width='180'>
<tr>
<td align='center'>
<form name='insert' method='post' ACTION='insert.php'>
<table style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
<td width='358'>
<input style='display:none' name='antispam' type='text' id='antispam' value='cinque-sette-otto-uno' size='24'></td>
</tr>
<tr>
<td width='358'><B>Nikname</B><br>
<INPUT TYPE='text' NAME='nome' MAXLENGTH='20' size=24></td>
</tr>
<tr>
<td width='358'><B>Site URL</B><br>
<INPUT TYPE='text' NAME='url' MAXLENGTH='200' size=24 value='http://'></td>
</tr>
<tr>
<td width='358'><B>Url banner 88 x 31 px</B><br>
<INPUT TYPE='text' NAME='img' MAXLENGTH='200' size=24 value='http://'></td>
</tr>
<tr>
<td width='358'><B>Descrivi il tuo spazio!<br>
Le tue news...</B><br>
<TEXTAREA name='messaggio' ROWS='3' COLS='19'></TEXTAREA></td>
</tr>
<tr>
<td width='358'><INPUT TYPE='submit' value='Invia' name='ok'></td>
</tr>
</table></form></td>
</tr>
</table>
Questo invece è il codice della pagina insert.php
Codice PHP:
<?php
include "config.php";
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");
/* Abbaimo creato la connessione, se non va a buon fine ricevo un messaggio di errore */
$inserimento=mysql_query("insert into box (nome, url, img, messaggio, data) values (\"$HTTP_POST_VARS[nome]\", \"$HTTP_POST_VARS[url]\", \"$HTTP_POST_VARS[img]\",\"$HTTP_POST_VARS[messaggio]\",now())");
$antispam = $_POST['antispam'];
if ($antispam != "cinque-sette-otto-uno") { die("errore antispam"); }
echo "
<table style='border:0px; font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' cellpadding='3' cellspacing='3' width='484'>
<tr>
<td align='center'>LinkBox by Il telaio...<br>
Il tuo spazio è stato inserito attendi solo pochi secondi... <br>
la pagina verrà aggiornata<br>
<img border='0' src='images/loading.gif'>
<b>Grazie per aver utilizzato LinkBox</b></td>
</tr>
</table>";
?>
Quindi io non ho le immagini hostate sono gli utenti che man mano le inseriscono, vengono immagazinate nel db e visualizzate poi con la querry al db....
ovvero con il codice che c'è nella pagina linkbox.php
Codice PHP:
<?php
include "config.php";
$db = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");
// selezione del DB
mysql_select_db("Sql288738_1") or die("Selezione del DB fallita !");
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$prev = ($page - 1);
$next = ($page + 1);
/*Setto il numero massimo di record per pagina */
$max_results = 20;
/* Mi calcolo l'offset */
$from = (($page * $max_results) - $max_results);
/*eseguo la query per recuperare il numero di dati presente nel mio db*/
$result = mysql_query("select * FROM box ORDER BY id Desc");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $max_results);
/* Creo il link "PREV" */
if($page > 1)
{
$pagination .="<a href=view.php?page=".$prev.">Prec </a>";
}
/*Eseguo il ciclo per visualizzare tutte le pagine che mi servono. */
for($i =1; $i <= $total_pages; $i++)
{
if(($page) == $i)
{
$pagination .= $i;
}
else
{
$pagination .= "<a href=view.php?page=".$i.">| $i </a>|";
}
}/*END FOR*/
/* Stampo il prossimo link */
if($page < $total_pages)
{
$pagination .= "<a href=view.php?page=".$next."> Next</a>";
}
/*eseguo la query con i parametri $from e $total_results per la paginazione*/
$result=mysql_query("select * FROM box ORDER BY id Desc LIMIT $from, $max_results ");
while ($i = mysql_fetch_array($result))
/* Ora visualizziamo le news */
echo "<table border='0' width='400'>
<tr>
<td>
<table border='0' cellpadding='3' cellspacing='3' width='100%'>
<tr>
<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]'target=void><img src='$i[img]' border='0' height='31' width='88'></a><br>
$i[messaggio]
</td>
</tr>
<tr>
<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b></td>
</tr>
</table>
<table border='0' width='100%'>
<tr>
<td height='3'></td>
</tr>
</table>
</td>
</tr>
</table>";
echo "<table style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' border='0' cellpadding='0' cellspacing='0' width='400'>
<tr>
<td width=354> Tutti i nostri annunci <img src='images/canuccio1.gif'> pagine... $pagination</td>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>";
?>
che è la famosa pagina dove io pensavo di poter mettere l'if.....
L'immagine del banner di default che volevo visualizzare sta nella stessa directory dei file, in una directory che ho chiamato images
Spero di esser stata chiara così da poter capire cosa fare...
PS se vivi a roma hai il caffè pagato^_^
-
analizzando velocemente il form di inserimento dell'url img, il valore di $i[img] = "http://" se l'utente non inserisce nessun file immagine.
Quindi per default $i[img] è = a "http://"
Allora prova semplicemente a fare questo:
Codice PHP:
if ( $i[img] != "http://" ) {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]' target=_blank><img src='$i[img]' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
} else {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]'target=_blank><img src='images/88x31branco58.gif' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
}
echo"</tr>";
Ora è possibile fare anche un controllo più accurato della variabile $i[img].
Ma per ora prova così se funziona.
ciao
:!:
Agiungo qui un codice per il controllo url validi:
Codice PHP:
function isValidURI( $sURI ){
return (bool) preg_match('~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~', $sURI);
}
La funzione è stata creata in modo da rispettare a pieno la RFC2396 che definisce la sintassi degli URI (Uniform Resource Identifiers).
Per ulteriori informazioni puoi leggere la RFC al seguente link:
http://www.ietf.org/rfc/rfc2396.txt
Nel tuo caso aggiungi la funzione così come è, e poi fai il controllo:
Codice PHP:
if ( isValidURI( $i[img] ) ) {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]' target=_blank><img src='$i[img]' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
} else {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]'target=_blank><img src='images/88x31branco58.gif' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
}
-
-
Ho fatto alcune ricerche e controlli degli url validi, e bisogna modificare la funzione in questo modo:
Codice PHP:
function isValidURI( $sURI ){
//l'er valido è questo:
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
//$er = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~";
return (bool) preg_match($er, $sURI);
}
Poi esegui il controllo:
Codice PHP:
if ( isValidURI( $i[img] ) === true ) //stampa url img utente
else //stampa url img default
Prova così adesso.
-
Spero di aver fatto casino io nel mettere il codice xchè non va' nemmeno così
Codice PHP:
echo "<table border='1' width='400'>";
echo "<tr>";
echo "<td>";
echo "<table border='0' cellpadding='3' cellspacing='3' width='100%'>";
echo "<tr>";
function isValidURI( $sURI ){
//l'er valido è questo:
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
//$er = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~";
return (bool) preg_match($er, $sURI);
}
if ( isValidURI( $i[img] ) === true ) {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]' target=_blank><img src='$i[img]' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
} else {
echo "<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><a href='$i[url]'target=_blank><img src='images/88x31branco58.gif' border='0' height='31' width='88'></a><br>$i[messaggio]</td>";
}
echo"</tr>";
echo"<tr>";
echo"<td style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7'><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b></td>";
echo"</tr>";
echo"</table>";
echo"<table border='0' width='100%'>";
echo"<tr>";
echo"<td height='3'></td>";
echo"</tr>";
echo"</table>";
echo"</td>";
echo"</tr>";
echo"</table>";
PS ora però si rivede banner dafault^^
http://www.iltelaiodipenelope.it/pub...box/prova4.php
-
la funzione mettila prima di include "config.php";
poi ho fatto diverse prove inserendo in questa pagina:
http://eurosalute.altervista.org/tool/images.php
questo codice di prova:
Codice PHP:
$i = array();
$i[0]="http://";
$i[1]="http://i46.tinypic.com/2njdd87.png";
function isValidURI( $sURI ){
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
//$er = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~";
return (bool) preg_match($er, $sURI);
}
echo "controllo url = $i[1]<br>";
if ( isValidURI( $i[1] ) === true ) {
echo "true<br>";
} else {
echo "false<br>";
}
if (file_exists($i[1])) echo "file esiste<br>";
else echo "file non esiste<br>";
echo "<br><br>controllo url = $i[0]<br>";
if ( isValidURI( $i[0] ) === true ) {
echo "true<br>";
} else {
echo "false<br>";
}
if (file_exists($i[0])) echo "file esiste<br>";
else echo "file non esiste<br>";
e tutto sembra che funzioni!!!
:!:
Ora dovresti controllare la variabile $page che valore ha:
Codice PHP:
<?php
function isValidURI( $sURI ){
//l'er valido è questo:
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
//$er = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~";
return (bool) preg_match($er, $sURI);
}
include "config.php";
$db = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");
// selezione del DB
mysql_select_db("Sql288738_1") or die("Selezione del DB fallita !");
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
//stampi il valore
echo $page;
$prev = ($page - 1);
$next = ($page + 1);
/*Setto il numero massimo di record per pagina */
$max_results = 20;
/* Mi calcolo l'offset */
$from = (($page * $max_results) - $max_results);
-
Ciao Euro non ho capito granchè perdonami cmq ho fatto una pagina con il codice che mi hai scritto ma non ci capisco nulla
http://www.iltelaiodipenelope.it/pub...x/box/box1.php
In quale modo dovrei controllare la variabile $page ????????
^__________________^
Dalle svarite prove fatte mi era venuto il dubbio che il problema fosse la table che conteneva i vari parametri da visualizzare quindi ho fatto una prova e guarda un po'
http://www.iltelaiodipenelope.it/pub...box/prova2.php
funziona perfettamente!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!
Ho riscritto il codice così:
Codice PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>LinkBox by Il telaio...</title>
<link rel="stylesheet" href="style.css"type="text/css">
</head>
<body bgcolor='#990000'>
<div align='center'>
<table style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' border='1' width='400'>
<tr>
<td>
<?php
function isValidURI( $sURI ){
//l'er valido è questo:
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
//$er = "~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~";
return (bool) preg_match($er, $sURI);
}
include "config.php";
$db = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");
// selezione del DB
mysql_select_db("Sql288738_1") or die("Selezione del DB fallita !");
$page = (!isset($_GET['page']))? 1 : $_GET['page'];
$prev = ($page - 1);
$next = ($page + 1);
/*Setto il numero massimo di record per pagina */
$max_results = 20;
/* Mi calcolo l'offset */
$from = (($page * $max_results) - $max_results);
/*eseguo la query per recuperare il numero di dati presente nel mio db*/
$result = mysql_query("select * FROM box ORDER BY id Desc");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $max_results);
/* Creo il link "PREV" */
if($page > 1)
{
$pagination .="<a href=view.php?page=".$prev.">Prec </a>";
}
/*Eseguo il ciclo per visualizzare tutte le pagine che mi servono. */
for($i =1; $i <= $total_pages; $i++)
{
if(($page) == $i)
{
$pagination .= $i;
}
else
{
$pagination .= "<a href=view.php?page=".$i.">| $i </a>|";
}
}/*END FOR*/
/* Stampo il prossimo link */
if($page < $total_pages)
{
$pagination .= "<a href=view.php?page=".$next."> Next</a>";
}
/*eseguo la query con i parametri $from e $total_results per la paginazione*/
$result=mysql_query("select * FROM box ORDER BY id Desc");
while ($i = mysql_fetch_array($result))
/* Ora visualizziamo le news */
if ( isValidURI( $i[img] ) === true ) {
echo "<a href='$i[url]'target=_blank><img src='$i[img]' border='0' height='31' width='88'></a><br><br>$i[messaggio]<br><br><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b><br><br>";
} else {
echo "<a href='$i[url]'target=_blank><img src='images/88x31branco58.gif' border='0' height='31' width='88'></a><br><br>$i[messaggio]<br><br><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b><br><br>";
}
echo "<table style='font-family:Palatino Linotype; font-size: 8pt; color: #fff7e7' border='0' cellpadding='0' cellspacing='0' width='400'><br><br>
<tr>
<td width=354> Tutti i nostri annunci <img src='images/canuccio1.gif'> pagine... $pagination</td>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>";
?>
</td>
</tr>
</table>
</div>
</body>
</html>
Quindi il problema stava nella struttura precendente della table e gli echo ^_^' mahhhhhhhhhh
-
Il problema non era la table, ma era ed è il fatto che per il
while ($i = mysql_fetch_array($result))
non c'è una chiusura...
quindi dovrebbe essere:
Codice PHP:
while ($i = mysql_fetch_array($result))
{
/* Ora visualizziamo le news */
if ( isValidURI( $i[img] ) === true ) {
echo "<a href='$i[url]'target=_blank><img src='$i[img]' border='0' height='31' width='88'></a><br><br>$i[messaggio]<br><br><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b><br><br>";
} else {
echo "<a href='$i[url]'target=_blank><img src='images/88x31branco58.gif' border='0' height='31' width='88'></a><br><br>$i[messaggio]<br><br><img src='images/1101944.gif'> <b>Annuncio postato da <u>$i[nome]</u> il $i[data]</b><br><br>";
}
}
quindi apri e chiudi la parentesi graffa per il while e prova a rimettere la table....
:shock:
-
ORA E' PERFETTOOOOOOOOOOOOOOOOOOOOO
http://www.iltelaiodipenelope.it/pub...box/prova4.php
GRAZIE INFINITE EURO SARAI OVVIAMENTE LINCATO NEL BOX
^________________________________^
-
per la table avevi ragione, come era scritta non era corretta nel ciclo while.....o comunque puoi riscriverla in un altro modo....
prego.....
:!::roll: