Visualizzazione risultati 1 fino 12 di 12

Discussione: È corretto questo codice?

  1. #1
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito È corretto questo codice?

    Codice PHP:
    <?php

    if ($_SERVER["REQUEST_METHOD"] === "POST"){

    $logout = test_input($_POST['logout']);

    $server = 'localhost';
    $utente = 'providerweb';
    $password = '********';
    $database = 'my_providerweb';



    $mysqli = mysqli_connect("localhost",$utente,$password,$database);



    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }



    mysqli_query($mysqli,"SELECT email, password FROM login");

    if(
    mysqli_query($mysqli,"SELECT email, password FROM login")){

    header('Location: login.php');

    }

    mysqli_close($mysqli);

    }



    if (
    $_SERVER["REQUEST_METHOD"] === "POST") {
    $title = test_input($_POST["title"]);
    $title2 = test_input($_POST["title2"]);
    $title3 = test_input($_POST["title3"]);

    $foto = test_input($_POST["foto"]);
    $foto2 = test_input($_POST["foto2"]);
    $foto3 = test_input($_POST["foto3"]);
    $content = test_input($_POST['content']);
    $tag = test_input($_POST["tag"]);
    $tag2 = test_input($_POST["tag2"]);
    $tag3 = test_input($_POST["tag3"]);
    $tag4 = test_input($_POST["tag4"]);
    $tag5 = test_input($_POST["tag5"]);
    $tag6 = test_input($_POST["tag6"]);
    $permalink = test_input($_POST["permalink"]);
    $permalink2 = test_input($_POST["permalink2"]);
    $permalink3 = test_input($_POST["permalink3"]);
    $permalink4 = test_input($_POST["permalink4"]);
    $permalink5 = test_input($_POST["permalink5"]);
    $permalink6 = test_input($_POST["permalink6"]);

    }



    $server = 'localhost';
    $utente = 'providerweb';
    $password = '********';
    $database = 'my_providerweb';



    $mysqli = mysqli_connect("localhost",$utente,$password,$database);



    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }



    mysqli_query($mysqli,"INSERT INTO blog(title,title2,title3,foto,foto2,foto3,content)
    VALUES(
    $title,$title2,$title3,$foto,$foto2,$foto3,$content,$tag)");



    mysqli_query($mysqli,"INSERT INTO tag(tag,tag2,tag3,tag4,tag5,tag6)
    VALUES(
    $tag,$tag2,$tag3,$tag4,$tag5,$tag6)");


    mysqli_query($mysqli,"INSERT INTO permalink(permalink,permalink2,permalink3,permalink4,permalink5,permalink6)
    VALUES(
    $permalink,$permalink2,$permalink3,$permalink4,$permalink5,$permalink6)");




    if(!
    mysqli_query($mysqli,"INSERT INTO permalink(permalink,permalink2,permalink3,permalink4,permalink5,permalink6)
    VALUES(
    $permalink,$permalink2,$permalink3,$permalink4,$permalink5,$permalink6)")){



    header('Location: blog.php');


    }

    mysqli_close($mysqli);

    }

    }else{

    header('Location: login.php');



    }


    ?>
    Ultima modifica di dreadnaut : 11-02-2023 alle ore 20.54.02 Motivo: + tag [php] ed indentazione

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Dipende da quello che deve fare, ma in generale no. Come minimo, manca la funziona test_input.


    Nota che su AlterVista puoi lasciare la password del database vuota, e la connessione funziona comunque.
    Ultima modifica di dreadnaut : 11-02-2023 alle ore 21.11.09

  3. #3
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    Ho visto tramite php.net che le query si richiamano così!
    MI aiuti per piacere? In pratica deve far partire le query insert dopo la convalida del form.

    La password non è quella l'ho modificata prima di postarla, la vera password sta nello script originale.

  4. #4
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    L'ho modificato con questo, secondo me è proprio il server di phpmyadmin che non funziona come dovrebbe:
    Codice PHP:
    <?php

    if ($_SERVER["REQUEST_METHOD"] === "POST"){

    $logout = test_input($_POST['logout']);

    $server = 'localhost';
    $utente = 'providerweb';
    $password = '***********';
    $database = 'my_providerweb';

    }



    // define variables and set to empty values
    if ($_SERVER["REQUEST_METHOD"] === "POST") {

    $email = test_input( $_POST['email']);
    $pass = test_input($_POST['password']);


    }





    $server = 'localhost';
    $utente = 'providerweb';
    $password = '********';
    $database = 'my_providerweb';

    $email = $_POST['email'];
    $pass = $_POST['password'];



    $mysqli = mysqli_connect("localhost",$utente,$password,$database);



    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }

    mysqli_multi_query($mysqli,"SELECT email, password FROM login");

    if(!
    mysqli_multi_query($mysqli,"SELECT email, password FROM login")){

    header('Location: login.php');

    }else{

    header('Location: blog.php');

    }


    mysqli_multi_query($mysqli,"INSERT INTO login(email,password)VALUES($email,$pass)");

    if(!
    mysqli_multi_query($mysqli,"INSERT INTO login(email,password)VALUES($email,$pass)")){

    header('Location: /');


    }





    if (
    $_SERVER["REQUEST_METHOD"] === "POST") {
    $title = test_input($_POST["title"]);
    $title2 = test_input($_POST["title2"]);
    $title3 = test_input($_POST["title3"]);

    $foto = test_input($_POST["foto"]);
    $foto2 = test_input($_POST["foto2"]);
    $foto3 = test_input($_POST["foto3"]);
    $content = test_input($_POST['content']);
    $tag = test_input($_POST["tag"]);
    $tag2 = test_input($_POST["tag2"]);
    $tag3 = test_input($_POST["tag3"]);
    $tag4 = test_input($_POST["tag4"]);
    $tag5 = test_input($_POST["tag5"]);
    $tag6 = test_input($_POST["tag6"]);
    $permalink = test_input($_POST["permalink"]);
    $permalink2 = test_input($_POST["permalink2"]);
    $permalink3 = test_input($_POST["permalink3"]);
    $permalink4 = test_input($_POST["permalink4"]);
    $permalink5 = test_input($_POST["permalink5"]);
    $permalink6 = test_input($_POST["permalink6"]);





    $server = 'localhost';
    $utente = 'providerweb';
    $password = '************';
    $database = 'my_providerweb';



    mysqli_multi_query($mysqli,"INSERT INTO blog(title,title2,title3,foto,foto2,foto3,content)
    VALUES(
    $title,$title2,$title3,$foto,$foto2,$foto3,$content,$tag)");



    mysqli_multi_query($mysqli,"INSERT INTO tag(tag,tag2,tag3,tag4,tag5,tag6)
    VALUES(
    $tag,$tag2,$tag3,$tag4,$tag5,$tag6)");


    mysqli_multi_query($mysqli,"INSERT INTO permalink(permalink,permalink2,permalink3,permalink4,permalink5,permalink6)
    VALUES(
    $permalink,$permalink2,$permalink3,$permalink4,$permalink5,$permalink6)");




    if(!
    mysqli_multi_query($mysqli,"INSERT INTO permalink(permalink,permalink2,permalink3,permalink4,permalink5,permalink6)
    VALUES(
    $permalink,$permalink2,$permalink3,$permalink4,$permalink5,$permalink6)")){



    header('Location: blog.php');


    }

    mysqli_close($mysqli);

    }else{


    header('Location: login.php');

    }


    function
    test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return
    $data;
    }


    ?>
    Ultima modifica di alemoppo : 12-02-2023 alle ore 11.31.41 Motivo: +tag [php]

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

    Predefinito

    1. La password puoi lasciarla vuota, questa prassi la consigliamo così se qualcuno dovesse riuscire a leggere il tuo script o nel caso tu ti dimenticassi di offuscarla, non avrai problemi.
    2. phpMyAdmin non è un server, ma è un'interfaccia per il database. Può anche non essere installato: MySQL funziona ugualmente.
    3. Ti consiglierei di dare un'ordinata al codice: ad esempio le variabili $server, $utente, $password, $database sono definite tre volte.
    4. Perché utilizzi mysqli_multi_query() per eseguire una sola query? Usa semplicemente mysqli_query()
    5. Non ho capito perché esegui più volte la stessa query
    6. Nel codice vedo solo INSERT/SELECT, le tabelle esistono e hanno i campi che indichi?
    7. Ricordo che in MySQL le stringhe vanno tra apici
    8. Indenta un minimo il codice per capire costa stai facendo


    Dopo aver risolto i punti sopra, inizia con uno script semplice che esegue ad esempio una sola query e concentrati solo in quel punto per capire cosa non va. Ti consiglio di iniziare a leggere attentamente la documentazione ufficiale e scrivere codice partendo dagli esempi che mostra la documentazione ufficiale (esempio, questi).
    Evita di scopiazzare codici dal web, perché sicuramente non funzioneranno se non li capirai appieno.

    Aiutati con echo o var_dump o simili per capire come viene eseguito il codice e per capire gli ingressi e uscite delle varie funzioni.
    A questo punto, se c'è qualcosa che non va, chiedi qui senza problemi e vediamo di aiutarti.

    Ciao!
    Ultima modifica di alemoppo : 12-02-2023 alle ore 11.57.17

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Sei sicuro che i dati inviati tramite metodo POST sono valori recuperati in php? (Uno dei motivi il cliente non invia i dati che ti aspetti).
    Poiché il metodo POST proviene da fonte esterna occorre validare e filtrare il proprio input
    La semplice funzione test_input prelevata da W3Schools.com non filtra l'esistenza che spesso significa
    Codice PHP:
    if(isset($_POST['nome_chiave_del_modulo_hmlt'])) {
    echo
    'esiste';
    } else {
    echo
    'non esiste';
    }
    Puoi abilitare l'output degli errori su altervista aggiungendo semplicemente error_reporting(PHP_INT_MAX); inserendolo nella prima riga del codice php e probabilmente ti mostra Warnings o Notice di key o indice non definito.
    Ultima modifica di darbula : 12-02-2023 alle ore 16.04.20

  7. #7
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    Ci sarà qualche problema con htaccess e il caricamento del sito perché una pagina esterna in un altro percorso mi reindirizza alla pagina index.php

    Codice PHP:
    <?php

    $email
    = $_POST['email'];
    $pass = $_POST['password'];

    $server = 'localhost';
    $utente = '+++++++++++';
    $password = '++++++++++';
    $database = '++++++++++++';

    $mysqli = mysqli_connect('localhost',"$utente","$password","$database");

    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }

    mysqli_query($mysqli,"INSERT INTO login(email,password)VALUES($email,$pass)");

    if(!
    mysqli_error($mysqli)) {
    header('Location: blogger.php');
    }

    mysqli_close($mysqli);

    ?>
    Ultima modifica di dreadnaut : 12-02-2023 alle ore 17.36.41 Motivo: + tag [php]

  8. #8
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Ancora una volta aggiungi come prima riga error_reporting(PHP_INT_MAX); subito dopo il primo tag di apertura php <?php
    Questo ultimo post include il codice di /blog/login.php ? Esiste /blog/blogger.php dopo l'invio dei dati POST?

  9. #9
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    esiste blog/blogger.php

    Codice:
     Parse error: syntax error, unexpected variable "$link" in /membri/providerweb/blog/login.php on line 7
    Codice PHP:
    <?php
    error_reporting
    (PHP_INT_MAX)




    $link = mysqli_connect('*****','++++++','++++++','++++++') ;


    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }


    mysqli_query("INSERT INTO login(email,password)VALUES($email,$pass)");


    if(
    mysqli_error($link)) {


    header('Location: /');


    }




    mysqli_close($link);



    ?>
    Ultima modifica di dreadnaut : 12-02-2023 alle ore 22.04.43

  10. #10
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Modificare con il punto e virgola finale.
    Codice PHP:
    <?php
    error_reporting
    (PHP_INT_MAX);




    $link = mysqli_connect('*****','++++++','++++++','++++++') ;


    if (
    mysqli_connect_errno()) {
    header('Location: /');
    }


    mysqli_query("INSERT INTO login(email,password)VALUES($email,$pass)");


    if(
    mysqli_error($link)) {


    header('Location: /');


    }




    mysqli_close($link);



    ?>

  11. #11
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',)' at line 1 in /membri/providerweb/database/register.php:12 Stack trace: #0 /membri/providerweb/database/register.php(12): mysqli_query(Object(mysqli), 'INSERT INTO log...') #1 {main} thrown in /membri/providerweb/database/register.php on line 12


    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = mysqli_connect('localhost','''''''''','++++++++',' my_providerweb');


    $email = $_POST['email'];
    $pass = $_POST['pass'];



    mysqli_query($mysqli,"INSERT INTO login(email,password)VALUES($email,$pass)");

    if(mysqli_query($mysqli,"INSERT INTO login(email,password)VALUES($email,$pass)")){


    $query = "SELECT * FROM login WHERE 1 ";

    }

    mysqli_multi_query($mysqli,$sql,$query);

    do {
    if ($result = mysqli_store_result($query,$sql)) {
    print(mysqli_fetch_all(MYSQLI_ASSOC));

    }
    } while (mysqli_next_result($result));


    mysqli_close($mysqli);

  12. #12
    providerweb non è connesso Neofita
    Data registrazione
    03-02-2023
    Messaggi
    9

    Predefinito

    Ho risolto con questo... grazie a tutti

    <?php

    $mysqli = mysqli_connect('','','','');


    $email = $_POST['email'];
    $pass = $_POST['pass'];



    $sql = mysqli_query($mysqli,"INSERT INTO login(email,password)VALUES('$email','$pass')");

    if (mysqli_query($mysqli, $sql)) {
    header('Location: blog.php');
    } else{

    header('Location: /');

    }

    $query = "SELECT * FROM login WHERE 1 ";



    $result = mysqli_query($mysqli, $query);

    // Associative array
    $row = mysqli_fetch_assoc($result);

    header('Location: blog.php');

    // Free result set
    mysqli_free_result($result);

    mysqli_close();

    ?>

Regole di scrittura

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