Ultima modifica:
[font='Georgia, Times New Roman, Times, serif']Indice
• Introduzione
• Preparazione al lavoro
• Form Login
• Pagina delle Registrazioni
• Pagina con Classifica Personaggi
• Servizio di ticket (Via Database)
Servizio di ticket (Via Database)
Il servizio di ticket? Cosa intendo con ciò? Un form/una pagina che dia la possibilità agli utenti loggati di inviare un Messaggio allo staff.
Che tipo di messaggio? Be', in un server privato "medio" utile potrebbe essere segnalare allo staff un avvenuto pagamento per dei punti itemshop, oppure segnalare un utente.
Consideriamo quindi questi diversi tipi di segnalazione:
- Segnalazione Bug
- Segnalazione Cheater
- Segnalazione Pagamento
Bene, dopo questa breve premessa, iniziamo il vero lavoro.
Creiamo in directory "A:/" un file chiamato "ticket.php", come al solito ci copiamo dentro tutto il codice html ed all'inizio inseriamo il nostro amato codice per bloccare gli utenti non loggati:
Bene, a questo punto dobbiamo creare un form html con alcuni campi, tipo questo:
Salviamo e spostiamoci in "A:/" dove creiamo un nuovo file chiamato "ticket_on.php".
Questo file deve controllare prima che i dati che ci giungono dal form html siano giusti e dopodichè deve scrivere in un database la segnalazione in modo che possa poi essere controllata da noi.
Quindi facciamo un po' il lavoro che abbiamo fatto per la pagina delle registrazioni.
Riprendiamo i dati provenienti dal form html e riprendiamoci anche qualche informazione sull'account loggato:
Per prima cosa, sistemiamo i dati in "$allegato" che potrebbero creare qualche problema se inesistenti:
Così facendo se non è stato inserito alcun dato nel campo "Allegato", evitiamo di lasciarla uguale a "".
Ora controlliamo un po' i dati e, se sono tutti giusti, andiamo avanti:
A questo punto, dobbiamo decidere in quale database inviare i nostri dati. Apro qui una piccola parentesi specificando che prima di andare avanti dobbiamo creare tre nuove tabelle per l'accogliere questi dati. Nel caso del database di metin2, per esempio possiamo creare queste tabelle in "common", eseguendo query di questo tipo:
# Query per la creazione della tabella a cui giungeranno le segnalazioni di bug:
# Query per la creazione della tabella a cui giungeranno le segnalazioni di cheater:
# Query per la creazione della tabella a cui giungeranno le segnalazioni dei pagamenti:
Ok, chiusa questa piccola parentesi, ci riprendiamo il nostro "}else{" e connettiamoci al database common dove ora ci sono le nostre tre tabelle:
E prima di andare avanti, "scegliamo" a quale tabella inviare i dati:
Ok, ora andiamo avanti, ci siamo connessi al database ed ora "printiamo" i dati nella nostra tabella:
Ecco che la segnalazione è stata inviata, avvisiamo l'utente di ciò ed il tutto è finito!
Non dimentichiamoci però di chiudere le nostre macro (abbiamo 2+, chiudiamo con 2-):
[/font]
• Introduzione
• Preparazione al lavoro
• Form Login
• Pagina delle Registrazioni
• Pagina con Classifica Personaggi
• Servizio di ticket (Via Database)
Servizio di ticket (Via Database)
Il servizio di ticket? Cosa intendo con ciò? Un form/una pagina che dia la possibilità agli utenti loggati di inviare un Messaggio allo staff.
Che tipo di messaggio? Be', in un server privato "medio" utile potrebbe essere segnalare allo staff un avvenuto pagamento per dei punti itemshop, oppure segnalare un utente.
Consideriamo quindi questi diversi tipi di segnalazione:
- Segnalazione Bug
- Segnalazione Cheater
- Segnalazione Pagamento
Bene, dopo questa breve premessa, iniziamo il vero lavoro.
Creiamo in directory "A:/" un file chiamato "ticket.php", come al solito ci copiamo dentro tutto il codice html ed all'inizio inseriamo il nostro amato codice per bloccare gli utenti non loggati:
PHP:
<?
session_start();
if(isset($_SESSION["UserID"]) && strlen($_SESSION["UserID"])>1){
loggato();
}else{
loggante();
}
function loggante(){
header(location:index.php);
}
function loggato(){
?>
PHP:
<form id="ticket" method="post" action="./ticket_on.php">
Tipo di segnalazione: <select name="type" size="16"><option>Bug</option><option>Cheater</option><option>Pagamento</option></select>
Testo e descrizione: <textarea name="testo" cols="20" rows="2"></textarea>
Allegato (lasciare vuoto se: <input type="text" name="allegato" size="40" value="" />
<input type="submit" value="Invia" /></form>
Questo file deve controllare prima che i dati che ci giungono dal form html siano giusti e dopodichè deve scrivere in un database la segnalazione in modo che possa poi essere controllata da noi.
Quindi facciamo un po' il lavoro che abbiamo fatto per la pagina delle registrazioni.
Riprendiamo i dati provenienti dal form html e riprendiamoci anche qualche informazione sull'account loggato:
PHP:
<?php
session_start();
$UserID=$_SESSION["UserId"];
$Email=$_SESSION["email"];
$allegato=$_POST["allegato"];
$testo=$_POST["testo"];
$tipo=$_POST["type"];
PHP:
if (strlen($allegato) < 1) {
$allegato="Nessun allegato";
}
Ora controlliamo un po' i dati e, se sono tutti giusti, andiamo avanti:
PHP:
if (strlen($testo) < 5) {
echo "Bisogna inserire una descrizione di almeno 5 caratteri.";
Exit;
}else{
# Query per la creazione della tabella a cui giungeranno le segnalazioni di bug:
PHP:
CREATE TABLE `ticket_bug` (
`id` INT NOT NULL AUTO_INCREMENT,
`owner_id` CHAR(16) NOT NULL DEFAULT NULL,
`owner_mail` TEXT NOT NULL DEFAULT NULL,
`descrizione` TEXT NOT NULL DEFAULT NULL,
`allegato` TEXT NOT NULL DEFAULT NULL
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
ROW_FORMAT=DEFAULT
PHP:
CREATE TABLE `ticket_cheater` (
`id` INT NOT NULL AUTO_INCREMENT,
`owner_id` CHAR(16) NOT NULL DEFAULT NULL,
`owner_mail` TEXT NOT NULL DEFAULT NULL,
`descrizione` TEXT NOT NULL DEFAULT NULL,
`allegato` TEXT NOT NULL DEFAULT NULL
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
ROW_FORMAT=DEFAULT
PHP:
CREATE TABLE `ticket_payments` (
`id` INT NOT NULL AUTO_INCREMENT,
`owner_id` CHAR(16) NOT NULL DEFAULT NULL,
`owner_mail` TEXT NOT NULL DEFAULT NULL,
`descrizione` TEXT NOT NULL DEFAULT NULL,
`allegato` TEXT NOT NULL DEFAULT NULL
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
ROW_FORMAT=DEFAULT
PHP:
$conn=mysql_connect("Ip", "User", "Psw");
mysql_select_db("common);
PHP:
if (strlen($tipo) < 7) {
$table = "ticket_bug";
} elseif (strlen($tipo) = 7) {
$table = "ticket_cheater";
} elseif (strlen($tipo) > 7) {
$table = "ticket_payments";
}
PHP:
$exec="insert into $table (owner_id,owner_mail,descrizione,allegato) values('$UserID','$Email','$testo','$allegato')";
mysql_query($exec);
PHP:
echo "$UserId , la tua segnalazione è stata inviata con successo.";
PHP:
}
}
?>
[/font]

complimenti +1