Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Errore while (credo)

  1. #1

    Errore while (credo)

    Il mio errore è questo: http://i54.tinypic.com/1zlbsb6.png , ovvero mi ritrovo con troppi hr, anche se non dovrebbero esserci...
    Il tutto funziona così: ogni accesso me lo salva... success 1 significa che è errato, success 0 giusto.

    Questi sono i codici relativi a quella scheda

    Login
    Codice PHP:
    if (! $_COOKIE['username'] OR ! $_COOKIE['password']) {
    echo 
    '<table> <form method="POST" action="">';
    echo 
    '<tr><td>Nome utente:</td><td><input type="text" size="32" name="username" /></td></tr>';
    echo 
    '<tr><td>Password:</td><td><input type="password" name="password" /></td></tr>';
    echo 
    "<tr><td>Indirizzo IP:</td><td><input type=\"text\" name=\"iputente\" value=\"".$_SERVER['REMOTE_ADDR']."\" readonly>";
    echo 
    '<tr><td colspan="2"><input type="submit" value="Entra" />
    '
    ;
    echo 
    '</form></table>';
    $username htmlspecialchars($_POST['username']);
    $password htmlspecialchars($_POST['password']);
    $ip htmlspecialchars($_POST['iputente']);
    if (! 
    $username OR ! $password) {
    echo 
    'Compila i campi';
    } else {
    if (
    $username == "****" && $password == "****") {
    setcookie("username"$usernametime()+3600);
    setcookie("password"$passwordtime()+3600);
    $query mysql_query("INSERT INTO access (id, ip, success) VALUES (NULL, '$ip', '0')") or die(mysql_error());
    header("Location: adm.php");
    } else {
    echo 
    '[b]Accesso negato. Il tuo IP è stato registrato come possibile accesso indesiderato.[/b]';
    $query mysql_query("INSERT INTO access (id, ip, success) VALUES (NULL, '$ip', '1')") or die(mysql_error());
    }

    Scheda Log accessi:
    Codice PHP:
    if ($_GET['page'] == "access") {
    $query mysql_query("SELECT * FROM access WHERE success = 0 LIMIT 10") or die(mysql_error());
    echo 
    '

    [b]Accessi effetuati con successo:[/b]
    '
    ;
    while (
    $fetch mysql_fetch_array($query)) {
    echo 
    "
    $fetch[ip]<hr>";
    }
    $decline mysql_query("SELECT * FROM access WHERE success = 1 LIMIT 10") or die(mysql_error());
    echo 
    '
    [b]Accessi declinati:[/b] 
    '
    ;
    while (
    $de mysql_fetch_array($decline)) {
    echo 
    "
    $de[ip]<hr>";
    }


  2. #2
    Nella INSERT consideri la colonna success come varchar invece nella select come integer (dato che non inserisci gli apici.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Continua sempre a darmi lo stesso errore. Gli accessi consentiti si visualizzano bene, mentre quelli indesiderati si trovano pieni di hr e me ne seleziona soltanto due (quando nella query il limit è 10)

  4. #4
    Ho visto il database e tutti i record con success 1 non hanno ip (tranne due e non so perchè...)

  5. #5
    Originariamente inviato da Ketto93
    Ho visto il database e tutti i record con success 1 non hanno ip (tranne due e non so perchè...)
    Diciamo che questa è la prima cosa alla quale avevo pensato in quanto altrimenti quegli <hr> non sarebbero dovuti essere presenti, ma credevo avessi controllato i dati presenti sul DB.
    Ti consiglierei a questo punto di non passare l'IP tramite POST ma di leggerlo direttamente prima di effettuare la insert.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Ok, funziona ora. Grazie.

    L'altro problema è che il limit mi prende i primi 10 record, mentre io dovrei prendere gli ultimi 10 record. Come posso fare?

    Niente, risolto con ORDER BY id DESC prima del limit

  7. #7
    Originariamente inviato da Ketto93
    ...il limit mi prende i primi 10 record, mentre io dovrei prendere gli ultimi 10 record. Come posso fare?
    Gli ultimi 10 in base a quale criterio?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Ho risolto grazie, guarda l'edit nel posto di prima.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.