Visualizzazione risultati 1 fino 5 di 5

Discussione: Incremento data

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito Incremento data

    Salve utenti di AV.

    Come sapete, se non lo sapete lo saprete presto, io sto facendo una community (non su av) con un sistema utente, il lavoro è quasi finito, ora mi mangano alcuni script: tra questi lo script per il bann utenti, o provato a farlo, ora ho un piccolo plobblema che non saprei come risorvere, o impostato la variabile $fine, che contiene la fine del bann che deve essere uguare al giorno + il numero di quanti giorni voglio che l' utente sia bannato, il probblema e che facendo cosi i giorni della variabile $fine mi vanno oltre ai giorni di quella settimana (che poi è uguale alla settimana di quando banno l' utente), lasciamo perdere le chiacchiere, a me mi serve che lo script quando i giorni mi vanno oltre mi aumenta la settimana di uno, e se siamo al fine sittimana mi aumenta l' anno di uno i giorni di 1 piu i giorni che deve essere bannato e il mese mi vadi a uno, mi saprete modificare questo script:
    Codice PHP:
    <?
    session_start
    () ;
    session_register() ;
    echo
    '<link rel="stylesheet" href="../style.css" />' ;
    include (
    "../inc/parametri.inc.php") ;
    include (
    "../inc/open_db.php") ;
    if (
    $_GET["bann"]=="go") {
    if (
    $_POST["ub"]=="" or $_POST["mb"]=="" or $_POST["gb"]=="") {
    echo
    "<script type=\"text/javascript\">alert('Tutti i campi sono obbligatori');</script>";
    }else {
    $userb = $_POST["ub"] ;
    $mysql = "SELECT * FROM utente WHERE Username = '$userb'" ;
    $result = mysql_query($mysql) ;
    if (
    mysql_num_rows($result) == 0 ){
    echo
    "<script type=\"text/javascript\">alert('Utente inisistente');</script>";
    }else {
    $mysql1 = "SELECT * FROM utente WHERE Username = '$userb' AND Bann = '1'" ;
    $result1 = mysql_query($mysql1) ;
    if (
    mysql_num_rows($result1) == 1 ){
    echo
    "<script type=\"text/javascript\">alert('Utente gia bannato');</script>";
    }else {
    $autore = $_SESSION["username"] ;
    $motivo = $_POST["mb"] ;
    $inizio = date(d."/".m."/".y) ;
    $durata = date(d) + $_POST["gb"] ;
    $fine = date($durata."/".m."/".y) ;
    echo
    $fine ;
    }
    }
    }
    }
    ?>
    <div style="text-align:center">
    <div style="text-align:center; border:none"><strong> Banna utente
    </strong></div>
    <form action="banna_utente.php?bann=go" name="login" method="post">
    <center>
    <strong>Username</strong><br />
    <input type="text" name="ub" /><br />
    <strong>Motivo bann </strong><br />
    <input type="text" name="mb" /><br />
    <strong>Banna utente x </strong><br />
    <select name="gb"><option></option><option value="1">1 Giorno</option><option value="2">2 Giorno</option><option value="3">3 Giorno</option><option value="4">4 Giorno</option><option value="5">5 Giorno</option><option value="6">6 Giorno</option><option value="7">7 Giorno</option><option value="8">8 Giorno</option><option value="9">9 Giorno</option><option value="10">10 Giorno</option></select>
    <br />
    <input type="submit" value="Conferma" />
    </center>
    </form>
    </div>
    aspeto vostre risposte

    Sevenjeak
    Software developer and much more

  2. #2
    Guest

    Predefinito

    Codice PHP:
    $inizio = date('d/m/y') ;
    $banstring = "+".$_POST['gb']." days";
    $fine = date('d/m/y', strtotime($banstring, $inizio));
    A proposito, perché dopo aver fatto questa query
    Codice PHP:
    $mysql = "SELECT * FROM utente WHERE Username = '$userb'" ;
    esegui pure questa:
    Codice PHP:
    $mysql1 = "SELECT * FROM utente WHERE Username = '$userb' AND Bann = '1'" ;
    ?

    Già hai il valore di Bann nel risultato della prima query. Basta controllare il valore letto:

    Codice PHP:
    $mysql = "SELECT * FROM utente WHERE Username = '$userb'" ;
    $result = mysql_query($mysql) ;
    if (
    mysql_num_rows($result) == 0 ){
    echo
    "<script type=\"text/javascript\">alert('Utente inisistente');</script>";
    } else {
    $line = mysql_fetch_array($result, MYSQL_ASSOC)
    if (
    $line['Bann'] == '1'){
    echo
    "<script type=\"text/javascript\">alert('Utente gia bannato');</script>";
    } else {

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da tonnaer Visualizza messaggio
    Codice PHP:
    $inizio = date('d/m/y') ;
    $banstring = "+".$_POST['gb']." days";
    $fine = date('d/m/y', strtotime($banstring, $inizio));
    A proposito, perché dopo aver fatto questa query
    Codice PHP:
    $mysql = "SELECT * FROM utente WHERE Username = '$userb'" ;
    esegui pure questa:
    Codice PHP:
    $mysql1 = "SELECT * FROM utente WHERE Username = '$userb' AND Bann = '1'" ;
    ?

    Già hai il valore di Bann nel risultato della prima query. Basta controllare il valore letto:

    Codice PHP:
    $mysql = "SELECT * FROM utente WHERE Username = '$userb'" ;
    $result = mysql_query($mysql) ;
    if (
    mysql_num_rows($result) == 0 ){
    echo
    "<script type=\"text/javascript\">alert('Utente inisistente');</script>";
    } else {
    $line = mysql_fetch_array($result, MYSQL_ASSOC)
    if (
    $line['Bann'] == '1'){
    echo
    "<script type=\"text/javascript\">alert('Utente gia bannato');</script>";
    } else {
    grazie, di dispiace dirmi che fai con questa modifica?

    cmq eseguo prima la query con Username=$user perche deve essere bannato quell' utente, e poi quella con Bann='1', in questo caso l' utente e gia stato bannato in precedenza, e guindi non mi esegue lo script rimodificando la data di fine bann

    cme, lo script non mi va, ad esempio se banno l' utente x 10 giorni mi da che la fine bann e il 11/01/70, pur essento linizio al mese 01 e credo che non sara di certo l' anno 70 ;-)
    Ultima modifica di sevenjeak : 23-01-2008 alle ore 22.23.33

    Sevenjeak
    Software developer and much more

  4. #4
    Guest

    Predefinito

    La mia modifica fa esattamente le stesse cose, legge la tabella degli utenti per vedere se esiste l'utente che vuoi bannare, e poi controlla il valore del campo 'Bann' di quel utente (valore che hai già letto con la prima query) per vedere se è già stato bannato in precedenza. La differenza è che faccio una sola query, e tu due. Si tratta quindi solo di risparmiare un accesso superfluo alla base dati.

    Per quanto riguarda la data, basta cambiare l'ultima riga in questa:
    $fine = date('d/m/y', strtotime($banstring));

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Citazione Originalmente inviato da tonnaer Visualizza messaggio
    La mia modifica fa esattamente le stesse cose, legge la tabella degli utenti per vedere se esiste l'utente che vuoi bannare, e poi controlla il valore del campo 'Bann' di quel utente (valore che hai già letto con la prima query) per vedere se è già stato bannato in precedenza. La differenza è che faccio una sola query, e tu due. Si tratta quindi solo di risparmiare un accesso superfluo alla base dati.

    Per quanto riguarda la data, basta cambiare l'ultima riga in questa:
    $fine = date('d/m/y', strtotime($banstring));
    ok, grazie, ora va alla perfessione

    Sevenjeak
    Software developer and much more

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •