Salve a tutti ho un dubbio amletico da risolvere ^_^
Premetto che prima qst sistema funzionava sempre... ora non mi riesce e non so perchè.
In pratica inserisco un link nella mia pagina web, salvandola index.php (lavorato precedentemente in html), tramite il quale (cliccandoci sopra) si apre un popup con un form (campo nick + campo corpo del messaggio) e tasticino invio per l'inserimento di un sms da 160 caratteri che dovrebbe poi scorrere orizzontalmente nella cella in cui inserisco lo script.
Di seguio la mia guida per farvi capire cosa creo:
Creo un db solo per questo servizio, creando le seguenti tabelle:
Codice PHP:
id - int(11)
nick - varchar(30)
testo - varchar (160)
data - int(11)
Dopodichè realizzo il file config.php (che andrò poi ad uppare nella stessa cartella in cui si trova l'index):
Codice PHP:
<?
$dbhost="localhost";
$dbuser="mio_user";
$dbpass="miapass";
$dbname="mio_db";
// COLLEGAMENTO AL DATABASE
$db=mysql_connect($dbhost,$dbuser,$dbpass)or die (mysql_error());
mysql_select_db($dbname,$db) or die(mysql_error());
// FUNZIONI
function preparaDB($text) {
$text = nl2br($text);
return $text;
}
?>
Ancora nell'index, nel body inserisco:
Codice PHP:
<?php
require ("config.php");
$result =mysql_query("SELECT * FROM messaggio ORDER by data DESC LIMIT 40") or die(mysql_error());
?>
<script language="JavaScript">
<!--
<?php
while($row=mysql_fetch_array($result)) {
$row[nick] = htmlspecialchars($row[nick]);
$row[testo] = str_replace("\n"," ", $row[testo]);
$row[testo] = str_replace("\r"," ", $row[testo]);
$row[testo] = addslashes($row[testo]);
$testolungo .= "da ".$row[nick]." - ".$row[testo]." - ";
}
echo "var scrtxt=\"I vostri messaggi: $testolungo\";";
echo "var lentxt=scrtxt.length;";
echo "var width=100;";
echo "var pos=1-width;";
?>
function scorrevole() {
pos++;
var scroller="";
if (pos==lentxt) {
pos=1-width;
}
if (pos<0) {
for (var i=1; i<=Math.abs(pos); i++) {
scroller=scroller+" ";}
scroller=scroller+scrtxt.substring(0,width-i+1);
}
else {
scroller=scroller+scrtxt.substring(pos,width+pos);
}
window.defaultStatus = scroller;
setTimeout("scorrevole()",90);
}
//-->
</script>
Poi aggiungo nella riga dove ho il tag <body... ecc. ecc.> questo codice:
Codice PHP:
onLoad="scorrevole();return true;"
Per creare un popup metto questo script nel body
Codice PHP:
<script>
function popup(str) {
searchWin = window.open(str,'open','scrollbars=no,resizable=no,width=400,height=320,status=no,location=no,toolbar=no');
// searchWin.refer = self;
}
</script>
Per richiamare il link al popup inserisci questo codice nel collegamento ipertestuale
Codice PHP:
<a href="javascript:popup('inviamex.php');">
Creo le seguenti pagine ovviamente:
inviamex.php:
Codice PHP:
<html>
<head>
<title>Invia un messaggio!</title>
<script>
var postmaxchars = 100;
function validate(theform) {
if (theform.nick.value=="" || theform.text.value=="") {
alert("Non hai inserito tutti i campi correttamente!");
return false; }
if (postmaxchars != 0) {
if (theform.text.value.length > 100) {
alert("Puoi mettere al massimo 100 caratteri mentre hai messo "+theform.text.value.length+" caratteri.");
return false; }
else { return true; }
} else { return true; }
}
</script>
</head>
<body bgcolor="#FFF4BF">
<form name="form" method="post" action="makemex.php" onSubmit="return validate(form)">
<p align="center"><font class=newsgrande size="2" face="Verdana" color="#000080">Vuoi far
scorrere un tuo saluto o un messaggio su miosito.it? Inserisci il tuo
nick ed il messaggio e il gioco è fatto!</font class=newsgrande></p>
<p align="center"><b><font class=newsgrande face="Verdana" size="2"> <font class=newsgrande color="#CC0000">
Il tuo nome o nickname:</font class=newsgrande></font class=newsgrande></b><br>
<input name="nick"type="text" id="nick" size="30" maxlength="30">
<br>
<br>
<b><font class=newsgrande face="Verdana" size="2"> <font class=newsgrande color="#CC0000">Il
tuo messaggio (max 100 caratteri):</font class=newsgrande></font class=newsgrande></b><br>
<textarea name="text" cols="41" rows="5" id="text"></textarea>
<br><br>
<input name="send" type="submit" id="send" value="Invia">
<br>
</p>
</form>
</body>
</html>
Creo la pagina makemex.php
Codice PHP:
<?
require ("config.php");
//----MODIFICA PER PHP register_globals OFF
$nick = $_POST['nick'];
$text = $_POST['text'];
$send = $_POST['send'];
//-----------------------------------------
if($send)
{
if(!$nick || !$text)
{
$output="Non hai inserito correttamente tutti i dati";
$ride="inviamex.php";
}
elseif($_COOKIE["cookiemessage"] == "1")
{
$ride="close.php";
$output="Hai già inserito un messaggio!";
} else {
$data=time();
$text=trim($text);
mysql_query("INSERT INTO messaggio (nick,testo,data) VALUES ('$nick','$text','$data')") or die ("Errore".mysql_error());
$output="Il tuo messaggio è stato inserito correttamente!";
$ride="close.php";
setcookie("cookiemessage", "1", time()+(3600*24));
}
} else {
header("Location: inviamex.php");
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta http-equiv="refresh" content="3;URL=<?=$ride?>">
<title>miosito.it - Redirecting...</title>
</head><body bgcolor="#FFFFFF" >
<p> </p>
<div align="center">
<center>
<table width="100%" height="60" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr valign="middle" align="center">
<td bgcolor="#FFF4BF"><font size="2" face="Verdana"><?=$output?></font><br>
<a href="<?=$ride?>"><font size="1" face="Verdana">Clicca qui se il tuo browser
non ti redirige automaticamente !</font></a></td>
</tr>
</table>
</center>
</div>
</body>
</html>
Creo la pagina close.php
Codice PHP:
<html>
<head>
<title>Grazie!</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#FFF4BF" vlink="#0000FF" alink="#0000FF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="100%">
<p align="center" style="margin-top: 0; margin-bottom: 0"> </p>
<p align="center" style="margin-top: 0; margin-bottom: 0"> </p>
<p align="center" style="margin-top: 0; margin-bottom: 0"> </p>
<p align="center" style="margin-top: 0; margin-bottom: 0"><b>
<font class=newsgrande face="Verdana" size="2" color="#000080">Grazie per aver inviato il
messaggio!</font></b></p>
<p align="center" style="margin-top: 0; margin-bottom: 0"><b>
<font class=newsgrande face="Verdana" size="2" color="#000080">Aggiorna la pagina per
visualizzarlo.</font></b></p>
<p align="center" style="margin-top: 0; margin-bottom: 0"> <p align="center" style="margin-top: 0; margin-bottom: 0"> <p align="center" style="margin-top: 0; margin-bottom: 0"><b><A HREF="#" onClick="self.close()">
<font class=newsgrande size="2" face="Verdana" color="#FF0000">Chiudi
Finestra</font></A></b></td>
</tr>
</table>
</body>
</html>
RISULTATO? Il messaggio scorrevole nemmeno l'ombra... però quando vado nel db tramite phpMyAdmin.... il messaggio memorizzato c'è?
HELP ME dove sbaglio?
Grazie mille a tutti!