• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Pagina eventi

Nemesis988

Utente Medio
Autore del topic
3 Gennaio 2012
178
0
Miglior risposta
0
Ho creato un sito in php e vorrei creare una pagina dove crei il tuo evento e finito di crearlo viene postato direttamente nella index.
Ecco la pagina eventi (solo grafica)
34zlvdd.png


E questa è la index:
5xr4mu.png


Sapete come fare ? :genio:
 
Riferimento: Pagina eventi

Sposto in assistenza tecnica.

Conoscenze minime:

HTML
PHP
MySQL

Se le hai possiamo procedere..

1. Crea un form HTML, con gli input text per i vari campi;
2. Da PHP recupera i valori, inserisci anche ovviamente le protezioni XSS e SQL Injection; Fai i vari controlli per controllare che siano validi e non vuoti;
3. Crea una tabella in un database MySQL nel quale inserirai gli annunci;
4. Nell' index, recuperi i valori tramite una query e con un ciclo while mostri gli eventi.
 
Riferimento: Pagina eventi

Sposto in assistenza tecnica.

Conoscenze minime:

HTML
PHP
MySQL

Se le hai possiamo procedere..

1. Crea un form HTML, con gli input text per i vari campi;
2. Da PHP recupera i valori, inserisci anche ovviamente le protezioni XSS e SQL Injection; Fai i vari controlli per controllare che siano validi e non vuoti;
3. Crea una tabella in un database MySQL nel quale inserirai gli annunci;
4. Nell' index, recuperi i valori tramite una query e con un ciclo while mostri gli eventi.


Per ora ho creato solo la grafica e la tabella nel database
ebanat.png
penso sia giusta. Ho già controllato la protezione ed è invulnerabile a tutto. Non so nulla del punto quattro :tristezza:
--------------- AGGIUNTA AL POST ---------------
Cosa posso fare adesso ? :look:
 
Ultima modifica:
Riferimento: Pagina eventi

Solo 10 caratteri per il titolo dell' evento? Un po' pochi XD

Per la data ti consiglio di mettere un bel INT (o INT(11)), almeno ci inserisci il timestamp che è più.. utile, puoi farci più cose. In più, lo puoi mettere come primary key e utilizzarlo per fare un ORDER BY.

Creato da non va bene, gli spazi nei nomi dei campi sono totalmente errati, mettici un underscore, trasformandolo in Creato_da

Per l' index, i codici seguendo le modifiche consigliate sopra:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Pagina eventi

Solo 10 caratteri per il titolo dell' evento? Un po' pochi XD

Per la data ti consiglio di mettere un bel INT (o INT(11)), almeno ci inserisci il timestamp che è più.. utile, puoi farci più cose. In più, lo puoi mettere come primary key e utilizzarlo per fare un ORDER BY.

Creato da non va bene, gli spazi nei nomi dei campi sono totalmente errati, mettici un underscore, trasformandolo in Creato_da

Per l' index, i codici seguendo le modifiche consigliate sopra:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Non so se ho capito bene: ho messo i codici nel' index come hai detto tu dopo sono andato su eventi e ho creato l'evento. Torno sulla index e mi dice ancora nessun evento, forse ho capito il perchè: nella pagina eventi non ho messo nessun script, devo mettere qual'cosa ? :emoji_confused:
 
Riferimento: Pagina eventi

Non so se ho capito bene: ho messo i codici nel' index come hai detto tu dopo sono andato su eventi e ho creato l'evento. Torno sulla index e mi dice ancora nessun evento, forse ho capito il perchè: nella pagina eventi non ho messo nessun script, devo mettere qual'cosa ? :emoji_confused:

qualcosa* :facepalm:

Comunque è ovvio! Come pensi che vadano a finire i dati nel database senza query? Comunque dopo aver apportato le modifiche scritte precedentemente (per sicurezza fai uno screenshots della struttura della tabella), dovrai scrivere i codici MySQL, per questo serviva l' omonima conoscenza.

Un rapido codice, ovviamente dovrai sostituire nometabella e le variabili con i relativi valori (e variabili). Ricorda sempre di connetterti al database prima!

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Pagina eventi

qualcosa* :facepalm:

Comunque è ovvio! Come pensi che vadano a finire i dati nel database senza query? Comunque dopo aver apportato le modifiche scritte precedentemente (per sicurezza fai uno screenshots della struttura della tabella), dovrai scrivere i codici MySQL, per questo serviva l' omonima conoscenza.

Un rapido codice, ovviamente dovrai sostituire nometabella e le variabili con i relativi valori (e variabili). Ricorda sempre di connetterti al database prima!

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!


Il codice che mi hai dato l'ho messo sulla pagina eventi e l'ho impostato così
awuadj.png

Quello nella index così:
Perfavore, Entra oppure Registrati per vedere i Link!


Però vado su eventi e mi fa così:
Perfavore, Entra oppure Registrati per vedere i Link!
No database selected :sputo: ho configurato tutto ?
 
Riferimento: Pagina eventi

Non per niente ho continuato a scrivere: RIcordati la connessione al database. A quanto pare tocca darti tutti i codici pronti..

Appena apri il PHP nelle pagine, inserisci:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Pagina eventi

Non per niente ho continuato a scrivere: RIcordati la connessione al database. A quanto pare tocca darti tutti i codici pronti..

Appena apri il PHP nelle pagine, inserisci:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Scusa la mia ignoranza ma adesso fa così xD
16ifp12.png

in ogni pagina del sito ho messo l'ultimo codice che mi hai dato tu e io ho modificato solo dove c'è scritto NOMEDB, così: mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
 
Riferimento: Pagina eventi

Devi sostituire TUTTI i campi e inserirlo appena apri il PHP, ovvero dopo <?php. Scusa la franchezza, ma son cose logiche, studiare almeno le basi di questi linguaggi non fa male.
 
Riferimento: Pagina eventi

Devi sostituire TUTTI i campi e inserirlo appena apri il PHP, ovvero dopo <?php. Scusa la franchezza, ma son cose logiche, studiare almeno le basi di questi linguaggi non fa male.

Ho fatto come hai detto e adesso ogni volta che clicco su crea evento mi crea (sotto a quella vecchia) delle scritte così: Creato da: Titolo:
Luogo:
Data: 08-06-1970 02:10
Descrizione:


Come un incolla
Cosi:
Perfavore, Entra oppure Registrati per vedere i Link!


sempre così D:


ed è sempre nella index
 
Riferimento: Pagina eventi

Devo continuare a quotare i miei post...

ovviamente dovrai sostituire nometabella e le variabili con i relativi valori (e variabili)

Le varie variabili dovranno contenere i valori prelevati dal form. Se non sai come prelevarli ->
Perfavore, Entra oppure Registrati per vedere i Link!
 
Riferimento: Pagina eventi

Devo continuare a quotare i miei post...



Le varie variabili dovranno contenere i valori prelevati dal form. Se non sai come prelevarli ->
Perfavore, Entra oppure Registrati per vedere i Link!

Non ho ancora capito !qwe ecco tutti i file

Register:

</HEAD>
<BODY>



<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>



<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">
<table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
<tr><form action="register2.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
<table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>






<style>
body
{
padding-top: 70px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
</head></head>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><font color=White></font></a> <div align=center class="nav-collapse collapse">
<ul class="nav"><li class="active"><a href="index.php"><font>Home</font>
<li class="active"><a href="evento.php"><font>Crea Evento</font><li class="active"><a href="register.php"><font>Registrati</font><li class="active"><a href="main_login.php"><font>Login</font></font></a> </li> <li class=""></a> </li> <li class=""></a> </li> <li class=""></a> </li> </ul>
</div>
</div>
</div>
</div><body style="background-color:white">















<tr>
<td colspan="3"><strong>Registrazione</strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input id="username" name="username" type="text" /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input id="password" name="password" type="password" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" class="btn btn-primary btn-large" value="Registrati"></td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>
</BODY>
</HTML>

Register2
mysql_select_db('NOMEDB', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
</HEAD>
<BODY>


<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">

<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>













Registrazione avvenuta con successo. <a href=http://powerfile.altervista.org/>Clicca qui per entrare!</a>



main_login
<HTML>
<HEAD>
<TITLE>Entra</TITLE>
</HEAD>
<BODY>


<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>





<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">
<table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
<tr><form action="checklogin.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>
<table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>
<tr>






<style>
body
{
padding-top: 70px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
</head></head>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><font color=White></font></a> <div align=center class="nav-collapse collapse">
<ul class="nav"><li class="active"><a href="index.php"><font>home</font>
<li class="active"><a href="evento.php"><font>Crea Evento</font><li class="active"><a href="register.php"><font>Registrati</font><li class="active"><a href="main_login.php"><font>Login</font></font></a> </li> <li class=""></a> </li> <li class=""></a> </li> <li class=""></a> </li>





















<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input id="myusername" name="myusername" type="text" /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input id="mypassword" name="mypassword" type="password" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" class="btn btn-primary btn-large" value="Entra"></td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>
</BODY>
</HTML>


login_success

<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">

<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>

Registrazione avvenuta con successo. <a href=http://powerfile.altervista.org/index.php?nick=&pass=>Clicca qui per entrare!</a>



checklogin:

<?php
$host="localhost"; // Hostname
$username="powerfile"; // Mysql username
$password=""; // Mysql password
$db_name="my_powerfile"; //Nome del Database
$tbl_name="members"; // Nome della Tabella
// Procedimento per connettersi al Database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Nome utente e password inviate attraverso il form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file index.html"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Attenzione username o password errati";
}
?>


Evento

</HEAD>
<BODY>

<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">
<table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody>
<tr><form action="index.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td>


















<style>
body
{
padding-top: 70px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
</head></head>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><font color=White></font></a> <div align=center class="nav-collapse collapse">
<ul class="nav"><li class="active"><a href="index.php"><font>home</font>
<li class="active"><a href="evento.php"><font>Crea Evento</font><li class="active"><a href="register.php"><font>Registrati</font><li class="active"><a href="main_login.php"><font>Login</font></font></a> </li> <li class=""></a> </li> <li class=""></a> </li> <li class=""></a> </li> </ul>
</div>
</div>
</div>
</div><body style="background-color:white">



















<table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody>
<tr>
<td colspan="3"><strong>Crea evento</strong></td>
</tr>
<tr>
<td width="78">Titolo</td>
<td width="6">:</td>
<td width="294"><input id="Titolo:" name="Titolo" type="text" /></td>
</tr>
<tr>
<td>Descrizione:</td>
<td>:</td>
<td><input id="Descrizione:" name="Descrizione:" type="text" /></td>
</tr>
<tr>
<td>Luogo:</td>
<td>:</td>
<td><input id="Luogo:" name="Luogo:" type="text" /></td>
</tr>
<tr>
<td>Data:</td>
<td>:</td>
<td><input id="Data:" name="Data:" type="text" /></td>
</tr>
<tr>
<td>Creato da:</td>
<td>:</td>
<td><input id="Creato da:" name="Creato da:" type="text" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td><input type="submit" class="btn btn-primary btn-large" value="Crea"></td>
</tr>
</tbody></table>
</td>
</form></tr>
</tbody></table>




<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>

<?php
if(mysql_query("INSERT INTO eventi (Titolo, Luogo, Data, Descrizione, Creato_da) VALUES ('$titolo','$luogo',UNIX_TIMESTAMP(),'$descrizione','$creato_da')")) {
header('Location: index.php');
} else {
echo mysql_error();
}
?>
</BODY>
</HTML>


Index
<head>
<head>
<?php
mysql_select_db('my_powerfile', mysql_connect('HOSTNAME','USERNAME','PASSWORD')) or die(mysql_error());
?>


<?php
// Connessione al DB
$query = mysql_query("SELECT * FROM eventi ORDER BY Data DESC");
if(mysql_num_rows($query) == 0) {
?>
Nessun evento.
<?php
} else {
while($ref = mysql_fetch_assoc($query)) {
?>
Titolo: <?php echo $ref['Titolo']; ?><br />
Luogo: <?php echo $ref['Luogo']; ?><br />
Data: <?php echo date('d-m-Y H:i', $ref['Data']); ?><br />
Descrizione: <?php echo $ref['Descrizione']; ?><br /><br />
Creato da: <?php echo $ref['Creato_da']; ?>
<?php
}
}
?>

<link rel="stylesheet" type="text/css" href="css/metro-bootstrap.css">
<link rel="stylesheet" href="docs/font-awesome.css">

<style>
body
{
padding-top: 70px; /* 60px to make the container go all the way to the bottom of the topbar */
}
</style>
</head></head>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><font color=White></font></a> <div align=center class="nav-collapse collapse">
<ul class="nav"><li class="active"><a href="index.php"><font>home</font>
<li class="active"><a href="evento.php"><font>Crea Evento</font><li class="active"><a href="register.php"><font>Registrati</font><li class="active"><a href="main_login.php"><font>Login</font></font></a> </li> <li class=""></a> </li> <li class=""></a> </li> <li class=""></a> </li> </ul>
</div>
</div>
</div>
</div><body style="background-color:white">


cosa ho sbagliato ? :S
 
Riferimento: Pagina eventi

Devi prelevare i dati come hai fatto per il login. A $_POST['nomeblabla'], aggiungici anche le funzioni addslashes e htmlspecialchars, diventando quindi $nomevar = addslashes(htmlspecialchars($_POST['nomeblabla']));

Come ho detto, se non sai le basi è inutile continuare, non possiamo fornirti i codici belli pronti.
 
Riferimento: Pagina eventi

Devi prelevare i dati come hai fatto per il login. A $_POST['nomeblabla'], aggiungici anche le funzioni addslashes e htmlspecialchars, diventando quindi $nomevar = addslashes(htmlspecialchars($_POST['nomeblabla']));

Come ho detto, se non sai le basi è inutile continuare, non possiamo fornirti i codici belli pronti.

Finalmente problema risolto ! :banana2: grazie per il tempo dato :gururun: