Visualizzazione risultati 1 fino 3 di 3

Discussione: Error 524 - Stringhe varie di PHP

  1. #1
    thediary non è connesso Neofita
    Data registrazione
    16-11-2018
    Messaggi
    2

    Question Error 524 - Stringhe varie di PHP

    Buongiorno gentilissimi,
    da qualche giorno ho questo problema con una parte di codice PHP,
    vi inserisco l'intera pagina e poi la commento.

    Codice PHP:
    <?
    //se la sessione è già attiva prosegui se no, ti indirizzo!
    session_start();
    if (
    $_SESSION['login'] != 1) {
    header("Location: index.php");
    }

    $name = $_SESSION['nam'];

    //nome e cognome
    $link = mysql_connect("localhost", "thediary", "****");
    mysql_select_db("my_thediary", $link);

    //seleziono il database
    $sql = "SELECT * FROM users WHERE cognome='$name'";
    $query = @mysql_query($sql) or die (mysql_error());
    $row = mysql_fetch_array($query);

    //ed i miei dati
    $nome = $row['nome'];
    $cognome = $row['cognome'];
    $s = $row['sesso'];

    //seleziono inoltre la zona di tempo
    date_default_timezone_set('Europe/Belgrade');
    //e dichiaro che $i è inizialmente 0 (forse sbaglio qui?)
    $i = 0;
    ?>
    ^Questa parte non mi da alcun problema, passiamo ora alla parte problematica inserita in una tabella:
    Codice PHP:
    <?
    //inizia il circolo vizioso
    while($i < 10) {
    $giorno = $row['per'];
    $num = date_diff($giorno, $today);
    $diff = $num > 0;

    //se la differenza da un numero negativo, allora elimino il compito
    if($diff != TRUE) {
    $aa = "DELETE FROM `compiti` WHERE `per` = '$giorno'";
    $elimino = @mysql_query($aa) or die (mysql_error());

    //invece se è vera la differenza allora mi piglio tutti i dati e procedo con gli "echo"
    } elseif($diff == TRUE) {
    $materia = $row['materia'];
    $studio = $row['studio'];
    $faccio = $row['faccio'];
    if(
    $datasi[1] == $giorno) {
    if(
    $datasi[2] != "1") {
    echo
    "<h2 style='text-align: left'>Per il $giorno:</h2><br>";
    }else{
    }
    }
    //se nella tabella vi è la voce "studio" la metto

    echo "<h4> - <b>$materia</b>: ";
    if(
    $studio != "") {
    echo
    "<i>Studio</i> $studio ";
    }
    //se vi è la voce "Esercizi" la metto
    if($faccio != "") {
    echo
    "<i>Esercizi</i> $faccio ";
    }
    //infine dichiaro che per quel giorno non bisogna più scrivere "Compiti per"
    $datasi = array("$giorno", "1");
    echo
    ";<br>";
    //ed $i aumenta di 1
    $i = $i+1;
    }
    }

    ?>
    Io non capisco proprio cosa non ho azzeccato!
    Vi ringrazio in anticipo!

    P.S. se volete provare ad entrare, passate per index ed inserite come "Username" --> Altervista e come "PW" --> altervista
    Ultima modifica di alemoppo : 01-12-2018 alle ore 14.00.07 Motivo: inutile mostrare password

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

    Predefinito

    Codice PHP:
    $num = date_diff($giorno, $today);
    la variabie $today dove è stata dichiarata? Se non è mai stata dichiarata, $diff non farà mai nel secondo if e quindi non eseguirà mai $i=$i+1; mandando un loop infinito il while.

    Inoltre ti consiglierei di non utilizzare più le vecchie funzioni mysql_, ma di passare a mysqli o PDO.
    Evita anche di utilizzare i "@" per nascondere eventuali messaggi: i messaggi ci sono perché sono utili!

    Ciao!
    Ultima modifica di alemoppo : 01-12-2018 alle ore 14.02.08

  3. #3
    thediary non è connesso Neofita
    Data registrazione
    16-11-2018
    Messaggi
    2

    Predefinito

    Grazie Alemoppo,
    a questa $i non ci sono stato attento... per quanto riguarda la $today in effetti me ne ero completamente scordato....

    Ora funziona,
    mi scuso inoltre per la password alla quale non ho proprio pensato

Regole di scrittura

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