Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Eroare la rularea scriptului
Last Updated: Nov 05 2012 20:18, Started by
MDCristi
, Nov 04 2012 22:26
·
0
#1
Posted 04 November 2012 - 22:26
deci am urmatorul cod, ma voi referi la liniile 16-21, desi ar fi trebuit sa se opreasca bucla pana ce ¤i ia valoarea 12 vad ca continua pana la 15 si nu inteleg de ce
<?php function check_user_details($user, $password, $file){ $file_handle = fopen($file, 'r'); while(!feof($file_handle)){ $content = fgets($file_handle, 400); $compared_username = ''; $compared_password = ''; //obtinem usernameul din fisier for($i = 0; $i <= strlen($content); $i++){ if($content[$i] === ' '){ break; } $compared_username .= $content[$i]; } //obtinem parola din fisier for($i = $i + 1; $i <= strlen($content); $i++){ if($content[$i] === ' '){ break; } $compared_password .= $content[$i]; } //comparam rezultatele if($user === $compared_username && $password === $compared_password){ $returned_value = TRUE; break; } else { $returned_value = FALSE; } } fclose($file_handle); return $returned_value; } |
#2
Posted 04 November 2012 - 23:01
In primul rand nu inteleg unde ai eroarea.
In al doilea rand, liniile 6 - 21 se puteau scrie: list($compared_username,$compared_password)=explode(' ',$content,2); |
#3
Posted 04 November 2012 - 23:05
trackback, on 04 noiembrie 2012 - 23:01, said:
In primul rand nu inteleg unde ai eroarea. In al doilea rand, liniile 6 - 21 se puteau scrie: list($compared_username,$compared_password)=explode(' ',$content,2); Notice: Uninitialized string offset: 15 in D:\cristi\New folder\nett xampp\xampp\htdocs\project\functii\file_functions\logare.php on line 17 Notice: Uninitialized string offset: 15 in D:\cristi\New folder\nett xampp\xampp\htdocs\project\functii\file_functions\logare.php on line 20pornind de la premiza ca userul =cristi si parola cu parola si fisierul de unde le compara contine doar cristi parola Edited by MDCristi, 04 November 2012 - 23:06. |
#5
Posted 04 November 2012 - 23:10
#6
Posted 04 November 2012 - 23:12
#7
Posted 04 November 2012 - 23:12
$s = "ana".
$s[0] = 'a'; $s[1] = 'n'; $s[2] = 'a'; strlen($s) = 3; $s[3] -> nu exista. |
#8
Posted 04 November 2012 - 23:17
pai stati putin chiar daca as fi pus conditia sa se opreasca bucla la i=100, n-ar fi trebuit sa se opreasca cand intalneste primul caracter nul(liniile 17-19)?
adica candn am apelat fgets nu am stocat in $content un string de 399 de caractere? Edited by MDCristi, 04 November 2012 - 23:21. |
#9
Posted 04 November 2012 - 23:25
MDCristi, on 04 noiembrie 2012 - 23:17, said:
pai stati putin chiar daca as fi pus conditia sa se opreasca bucla la i=100, n-ar fi trebuit sa se opreasca cand intalneste primul caracter nul(liniile 17-19)? adica candn am apelat fgets nu am stocat in $content un string de 399 de caractere? E păstrat doar intern, în reprezentarea sa C. |
#10
Posted 04 November 2012 - 23:29
deci cand eu apelez $variabile = fgets(..) el nu imi seteaza un string de cate caractere i-am zis eu ci doar imi baga caracterele pana la primul char nul, deci de asta are $content 15?
|
|
#11
Posted 04 November 2012 - 23:47
MDCristi, on 04 noiembrie 2012 - 23:29, said:
deci cand eu apelez $variabile = fgets(..) el nu imi seteaza un string de cate caractere i-am zis eu ci doar imi baga caracterele pana la primul char nul, deci de asta are $content 15? EOF nu e acelaşi lucru ca \0. Unele editoare adaugă \0 automat la sfârşit, s-ar putea ca PHP să îl ignore într-o astfel de situaţie. Încearcă să deschizi fişierul în mod binar, vezi ce se întâmplă atunci (nu ştiu). <insider_note> Quote 400 </insider_note> Edited by OriginalCopy, 04 November 2012 - 23:54. |
#12
Posted 04 November 2012 - 23:49
n-ai inteles ce vreau eu sa zic, daca eu am un fisier de forma
ceva altceva inca cevasi eu fac variabila $variabila =fgets($handel, 400) asta insemna ca $variabila va fi pe rand egal cu ceva+395 de caractere goale altceva + 392 de caractere nule inca ceva + 389 de caractere nuledar acum m-am prins de cum e treaba |
#13
Posted 04 November 2012 - 23:59
man tot nu intelegi ce vreau eu sa zic, dac eu ii zic sa citeasca 400 de bytes(exemplu) eu vad totusi ca nu-mi returneaza un string de 399 de caractere
|
#14
Posted 05 November 2012 - 00:05
#15
Posted 05 November 2012 - 00:05
Defapt ii zici sa citeasca maxim 400 bytes din ce-i dai tu.
|
|
#16
Posted 05 November 2012 - 00:14
Oricum algoritmul e anapoda. Ori nu-ţi pasă de performanţă, ci de cod mai compact, şi foloseşti file() şi apoi explode(). Ori nu mai citeşti parola şi treci la următoarea linie.
Eu nici n-aş face aşa, aş salva datele direct într-un array PHP, ca dicţionar, şi n-aş mai fi nevoit să caut nimic. |
#17
Posted 05 November 2012 - 00:26
OriginalCopy, on 05 noiembrie 2012 - 00:14, said:
Oricum algoritmul e anapoda. Ori nu-ţi pasă de performanţă, ci de cod mai compact, şi foloseşti file() şi apoi explode(). Ori nu mai citeşti parola şi treci la următoarea linie. Eu nici n-aş face aşa, aş salva datele direct într-un array PHP, ca dicţionar, şi n-aş mai fi nevoit să caut nimic. Edited by MDCristi, 05 November 2012 - 00:27. |
#18
Posted 05 November 2012 - 00:39
Uite funcţie neanapoda, fără greşeli de logică, neperformantă, şi cu loc de extindere:
1 <?php 2 function check_user_details($user, $password, $file) { 3 $data = file($file); 4 foreach($data as $line) { 5 list($u, $p) = explode(' ', rtrim($line)); 6 if($u == $user) { 7 return $p == $password; 8 } 9 } 10 return FALSE; 11 } Dacă ai face cu PHP nativ, ai folosi: file_put_contents('database.php', '<?php return '.var_export($data,TRUE)); încărcarea bazei de date: $data = require 'database.php'; MDCristi, on 05 noiembrie 2012 - 00:26, said:
pai si cand inregistrez un user? Ii pun valorile respectivesi in array, dar dupa rularea scriptului s-au dus Edited by OriginalCopy, 05 November 2012 - 00:46. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users