Visualizzazione risultati 1 fino 5 di 5

Discussione: problemino con script php

  1. #1
    zortar non è connesso Neofita
    Data registrazione
    10-04-2010
    Messaggi
    8

    Predefinito problemino con script php

    io ho questo script php:
    Codice PHP:
    <?php
    $file
    = __FILE__;
    if (isset(
    $_POST['giorni_ban'])) {
    $giorni = $_POST['giorni_ban'];
    }
    $giorni = $_POST['giorni_ban'];
    $tempo_ban = time() + 60 * 60 * 24 * $giorni;

    Db($db);
    if(isset(
    $_GET['id'])) {
    switch(
    $_GET['id']) {
    case(
    $_GET['id']):
    $id = $_GET['id'];
    $query="SELECT * FROM users WHERE id = $id";
    $risultato = mysql_query($query) or die (mysql_error());
    $row = mysql_fetch_array($risultato);
    $name = $row['username'];
    mysql_query("UPDATE users SET stato = 3 WHERE id = '$id'") OR DIE(mysql_error());
    echo
    '<font color="red">L\'utente <b>'.$name.'</b> è stato bannato!</font><br><br>';
    break;
    }
    }
    if(isset(
    $_POST['id'])){
    $name= $_POST['id'];
    $query="UPDATE users SET stato = $banned WHERE username = '$name'" OR DIE(mysql_error());
    $query_2="UPDATE users end = '$tempo_ban' WHERE id = '$id'" OR DIE(mysql_error());
    $result = mysql_query($query) or die (mysql_error());
    mysql_query($query_2) or die (mysql_error());
    mysql_query("UPDATE users SET stato = 3 WHERE id = '$id'") OR DIE(mysql_error());
    echo
    '<font color="red">L\'utente <b>'.$name.'</b> è stato bannato!</font><br><br>';
    }


    ?>

    <form method="post" action="index.php?pag=banna">
    <label>username,
    <input class='textbox' type="text" name="id">
    </label></br></br>
    <input class='button' type="submit" value="Banna">
    </label>
    </form>
    <br>
    <br>

    <?php

    $query
    ="SELECT * FROM users";
    $risultato = mysql_query($query) or die (mysql_error());

    //cerca tutti gli utenti dal db
    echo "<table>";
    echo
    "<tr><th>ID</th><th>Username</th><th>Azione</th><th>Fine ban</th></tr>";
    while(
    $row = mysql_fetch_array($risultato)) {
    $idutente = $row['id'];
    $nome = $row['username'];
    $ban = $row['stato'];

    echo
    "<tr><td>$idutente</td><td><b>$nome</b></td> ";
    if (
    $nome != $_SESSION['username']) {
    if (
    $row['stato'] != 3) { //se l'utente non è bannato
    echo "<td><a href=\"index.php?pag=banna&id=$idutente\" style=\"text-decoration: none;\"><input value=\"Banna\" type=\"button\"></a></td><td>";?>
    <form method="post" action="index.php?pag=banna">
    <label>
    <input class='textbox' type="text" name="giorni_ban">
    </label>
    <input class='button' type="submit" value="Banna">
    </label>
    </form></td></tr>
    <?
    } else {
    echo
    "<td><font color=red>L'utente risulta essere già bannato!</font><br></td></tr>"; //altrimenti ti dice che è già bannato
    }
    }else{
    echo
    "<td><font color=red>Non ti puoi autobannare</font><br></td></tr>";
    }
    }
    //termino il while
    echo "</table>";
    ?>
    che come si ben capisce banna gli utenti...
    ma non riesco a settare la data di fine ban
    qualcuno potrebbe aiutarmi?

    PS:
    Db($db) è una funzione di connessione al db che ho inserito nel file principale... (index) e la pagina viene inclusa li

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,672

    Predefinito

    devi fare un form unico; ad esempio:

    Codice HTML:
    <form method="post" action="index.php?pag=banna">
    <label>username, <input class='textbox' type="text" name="id"></label>
    <br>
    <br> 
    <label><input class='textbox' type="text" name="giorni_ban"></label><br>
    <label><input class='button' type="submit" value="Banna"></label>
    </form>
    Ciao!

    EDIT:

    scusami, ma che senso ha questo?
    Codice PHP:
    if (isset($_POST['giorni_ban'])) {
    $giorni = $_POST['giorni_ban'];
    }
    $giorni = $_POST['giorni_ban']; //???
    Cioè, l'if è corretto: verifico se il dato è inviato. Se è inviato inizializzo la variabile giorni.

    Però, perché poi, comunque inizializzi la variabile una seconda volta?? ( con $giorni = $_POST['giorni_ban'];)
    Ultima modifica di alemoppo : 28-05-2010 alle ore 20.23.44

  3. #3
    zortar non è connesso Neofita
    Data registrazione
    10-04-2010
    Messaggi
    8

    Predefinito

    non funziona....
    potresti provare a scrivermi il codice corretto?
    EDIT per la seconda parte:
    giusto.... quello provo a toglierlo e ti dico se l'errore resta
    Ultima modifica di zortar : 28-05-2010 alle ore 20.28.08

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,672

    Predefinito

    Citazione Originalmente inviato da zortar Visualizza messaggio
    non funziona....
    potresti provare a scrivermi il codice corretto?
    Mi dispiace: dovrei iniziare a studiare.. sai, ho la maturità

    Comunque, non capisco un'altra cosa (leggi i commenti):

    Codice PHP:
    if(isset($_GET['id'])) { //perché get e non post ?? di get, hai solo $_GET['pag'] che vale banna...
    switch($_GET['id']) {
    case(
    $_GET['id']): //è normale che sia vera!!! E' come se fai un if in questo modo: if(a == a)
    //codice
    break;
    }
    }
    ...e poi ricorda che nei case non puoi mettere delle variabili, ma soltanto costanti (stringhe, numeri, lettere...)

    Ciao!
    Ultima modifica di alemoppo : 28-05-2010 alle ore 20.30.16

  5. #5
    zortar non è connesso Neofita
    Data registrazione
    10-04-2010
    Messaggi
    8

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Mi dispiace: dovrei iniziare a studiare.. sai, ho la maturità

    Comunque, non capisco un'altra cosa (leggi i commenti):

    Codice PHP:
    if(isset($_GET['id'])) { //perché get e non post ?? di get, hai solo $_GET['pag'] che vale banna...
    switch($_GET['id']) {
    case(
    $_GET['id']): //è normale che sia vera!!! E' come se fai un if in questo modo: if(a == a)
    //codice
    break;
    }
    }
    ...e poi ricorda che nei case non puoi mettere delle variabili, ma soltanto costanti (stringhe, numeri, lettere...)

    Ciao!
    okok no problem....
    if a == a XD

Tags for this Thread

Regole di scrittura

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