Skip to content

Instantly share code, notes, and snippets.

@xandros15
Forked from anonymous/206509.php
Last active December 15, 2016 22:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xandros15/c25f9f1dda24f2058a739f61d20c9d69 to your computer and use it in GitHub Desktop.
Save xandros15/c25f9f1dda24f2058a739f61d20c9d69 to your computer and use it in GitHub Desktop.
Błąd - Undefined index: user
<?php
$wszystko_OK = true; //#1. wat? po co ta zmienna #2. uzywaj angielskich nazw
//#3. uzywaj camelCase dla zmiennych zgodnie z psr-2 #4 zmienne maja zwiezle i dokladnie okreslac, co przetrzymuja
//Sprawdź poprawność nicka
$nick = $_POST['nick'];
//Sprawdzenie długości nicka
if ((strlen($nick) < 3) || (strlen($nick) > 20)) {
$wszystko_OK = false; //do wywalenia
$_SESSION['e_nick'] = "Nick musi posiadać od 3 do 20 znaków!";
}
if (ctype_alnum($nick) == false) {// lepiej dac if(!ctype_alnum($nick)) {, ale niektore szkoly...
$wszystko_OK = false; //do wywalenia
$_SESSION['e_nick'] = "Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
}
require_once "connect.php";
// plik connect powinien zwracac cos, byc plikiem konfiguracyjnym (json yaml ini), lub wyjatkowo przetrzymywac w stalych,
//a nie być zlepkiem zmiennych globalnych.
/* przyklad ze zwracaniem
connect.php
<?php
return [
'db_name' => 'name',
'db_user' => 'username',
'db_password' => 'password',
'db_host' => 'localhost'
];
206509.php
<?php
$dbParams = require_once "connect.php";
$connect = new mysqli($dbParams['db_host'], $dbParams['db_user'], $dbParams['db_password'], $dbParams['db_name']);
*/
mysqli_report(MYSQLI_REPORT_STRICT);
try {
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);//angielskie nazwy zmiennych
//also jednak wole uzywac PDO...
if ($polaczenie->connect_errno != 0) {// mozna if(!$polaczenie->connect_error)
throw new Exception(mysqli_connect_errno()); //yyy jak juz uzywasz obiektu, to go uzywaj: throw new Exception($polaczenie->connect_errno);
} else { //niepotrzebny warunek
if ($wszystko_OK == true) { // warunek powinien wygladac: if(empty($_SESSION['e_nick']))
$zmiana = "UPDATE uzytkownicy SET user = '$nick' WHERE email='$email'"; // http://imgs.xkcd.com/comics/exploits_of_a_mom.png używaj bindowania: http://php.net/manual/en/mysqli-stmt.bind-param.php
if ($polaczenie->query($zmiana) === true) { // http://php.net/manual/en/mysqli-stmt.execute.php oraz moze byc if($polaczenie->execute($query)) {
echo '<b><span style="color: red;">Login użytkownika ' . $nick . ' zostalo zresetowane!</span></b>'; //to juz nie uzywamy sesji, tylko echo?
} else { //mozna zamienic warunek:
/*
if(!$polaczenie->query($zmiana)) {
throw new Exception($polaczenie->error);
}
echo '<b><span style="color: red;">Login użytkownika ' . $nick . ' zostalo zresetowane!</span></b>';
*/
throw new Exception($polaczenie->error);
}
}
$polaczenie->close();
}
} catch (Exception $e) {
echo '<br />info deweloperskie: ' . $e; //to juz nie sessja?
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment