Chec napisac skrypt pobieraz nazwe uzytkonika i haslo z pliku i sprawdza czy podane haslo i nick jest podane prawidlowo
A wiec tak w pliku plik.html mam taki kod:
Kod
<form method="post" action="dane.php">
<input type="text" name="numeragenta"><br>
<input type="text" neme="hasloagenta"><br>
<input type="submit" value="sprawdz"><br>
W pliku dane.php
Kod
<?
$dane=file("dane.txt");
if dane==$_POST['numeragenta'] and $_POST['hasloagenta'] {
echo("dobre");
}
?>
I w pliku dane.txt
Kod
52has
I co amm zle jesli wpisuje w pliku o nazwie plik.html w numeragenta 52 a w hasle has to czemu mi wyskakuje taki blad :
Parse error: parse error, expecting `'('' jakis adres on line 3
Czemu nie wyskakuje napis dane zostaly podane prawidlowo??
Kod
<?
$dane=file("dane.txt");
if dane==$_POST['numeragenta'] and $_POST['hasloagenta'] {
echo("dobre");
}
?>
zmień na
Kod
<?
$dane=file("dane.txt");
if($dane==$_POST['numeragenta'] and $_POST['hasloagenta']) {
echo("dobre");
}
?>
sądze że to o to chodziło
teraz dziala skrypt ale zastanawiam sie ejsczez co jest grane ze jak podaje w polu nragenta nr 52 i w hasleagenta has. To czemu nie wyswietla ze haslo zostalo podane prawidlowo chodz wprowadzilem do pliku dane.txt dane 52has??A jak cos jak to rozwiazac??
musisz zrobić to tak (wg mnie oczywiście):
[php:1:76ec1d7554]<?php
$dane=file("dane.txt");
$razem = fgets($dane[0], 99);
$zbior = $_POST['numeragenta'] + $_POST['hasloagenta'];
if($razem==$zbior) {
echo("dobre");
}
?>[/php:1:76ec1d7554]
nie wiem czy to zadziała bo nie próbowałem
troszkę to prymitywne ale czasu zbytnio nie mialem
znow taki blad wyskakuje
Parse error: parse error, expecting `'('' in adres strony do pliku dane.php on line 3
Co mam zrobic??
Juz dziala ten skrypt ale teraz jesczez zastanawiam sie jak go przerobic by sprawdzal kazda linijke tyle ilejest w pliku
[php]
$dane=file("dane.txt");
$zbior = $_POST['numeragenta'] . $_POST['hasloagenta'];
if ($dane[0]==$zbior){echo("dane podane prawidlowo"};
[php]
Jak to zrobic??
[php:1:2406805a48]<?php
$dane=file("dane.txt");
$ile=count($dane);
$zbior = $_POST['numeragenta'] . $_POST['hasloagenta'];
for ($i=0;$i<$ile;$i++) {
if($dane[$i] == $zbior) { $dobre = 1; }
}
if ($dobre == 1) { echo("dobre"); }
else { echo("zle"); }
?>[/php:1:2406805a48]
Niestety ale ten skrypt nie działa poprawnie : W pliku dane.txt mam taki dane:
52has
51has
53has
54has
I niestety ale jak wpisze np dane 52has,51has,53has to wtedy wyskakuje ze dane zostaly zle wprowadzone a jak wprowadze 54has to pisze ze dobrze a mi sie wydaje ze ta patla poprostu tylko czyta ostatnia linijke jakl zrobic by czytala kazda??
[php:1:9304a860cf]<?php
$dane=file("dane.txt");
$zbior=$_POST['numeragenta'] . $_POST['hasloagenta'];
$ile=count($dane);
for ($i=0;$i<$ile;$i++){if ($zbior==$dane[i]){
echo("prawdziwe");}}
?>[/php:1:9304a860cf]
Czemu ten skrypt nie dziala ze jesli wpsize w pole nragenta 52 i w hasloagenta wpisze has
to zeby wyswietlilo ze w pliku sa takie dane jak to przerobic??
Zobacz taki kod: (wstawiony jest tylko break)
[php:1:eeb0662ea7]<?php
$dane=file("dane.txt");
$ile=count($dane);
$zbior = $_POST['numeragenta'] . $_POST['hasloagenta'];
for ($i=0;$i<$ile;$i++) {
if($dane[$i] == $zbior){
$dobre = 1;
break;
}
}
if ($dobre == 1) {
echo("dobre");
}else{
echo("zle");
}
?>[/php:1:eeb0662ea7]
A tu ten drugi kod :
[php:1:eeb0662ea7]<?php
$dane=file("dane.txt");
$zbior=$_POST['numeragenta'] . $_POST['hasloagenta'];
$ile=count($dane);
for ($i=0;$i<$ile;$i++){
if ($zbior==$dane[$i]){
echo("prawdziwe");
break;
}
}
?>[/php:1:eeb0662ea7]
p.s. masz błąd w kodzie html :
Kod
<input type="text" neme="hasloagenta"><br>
zamiast neme wstaw name
Niestety ale ten skrypt:
[php:1:35ef6696db]<?php
$dane=file("dane.txt");
$zbior=$_POST['numeragenta'] . $_POST['hasloagenta'];
$ile=count($dane);
for ($i=0;$i<$ile;$i++){
if ($zbior==$dane[$i]){
echo("prawdziwe");
break;
}
}
?>[/php:1:35ef6696db]
To on tylko dziala jak podam nragenta 54 i haslo has to wtedy podaje ze prawidlowowe bo to sa ostatnie danbe w pliku a reczte nie chce czytac czemu??
teraz musi działać
[php:1:9544e91e11]<?php
$dane=file("dane.txt");
$zbior=$_POST['numeragenta'] . $_POST['hasloagenta'];
$ile=count($dane);
for ($i=0;$i<$ile;$i++){
if ($zbior==trim($dane[$i])){
echo("prawdziwe");
break;
}
}
?>[/php:1:9544e91e11]
Do czego sluzy ta funkcja trim poniewaz w manualu nie lukalem ale nie znam za dobrze angielskiego wiec sobie nie radze z przetlumaczeniem plis opiszcie mi do czego ona sluzy??
Warto pomyslec o nauce :wink:
trim usuwa znaki (zwane whitespace) z początki i końca stringa - jakie to znaki dowiesz sie z manuala.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.