Jump to content
php.lv forumi

Modify user data.


raivis

Recommended Posts

Kur kļūda...?

Fatal error: Can't use function return value in write context in c:\www\unregister.php on line 4

  • unregister.php
    <?php
    $meklejama = "[email protected]";
    $adreses=str_replace(array("\n","\r",' '),'',file_get_contents('adreses.txt'));
    $adreses=explode('|',$adreses);
    unset(array_search($meklejama,$adreses));
    $fh=fopen('adreses.txt','w');
    fwrite($fh,implode('|',$adreses));
    fclose($fh);
    ?>


???????????????????????????????????????

if $meklejama = atrasta($adreses); {

delete atrastais $meklejama;

echo "Jūsu e-pasta adrese $meklejama veiksmīgi atreģistrēta";

} else if $meklejama nav atrasta($adreses); {

echo "Adrese nav reģisrēta sistēmā!";

}

???????????????????????????????????????

Edited by raivis
Link to comment
Share on other sites

  • Replies 35
  • Created
  • Last Reply

Top Posters In This Topic

Man vajadzētu katra otrā rindiņa $name, $email izvadīt citā krāsā..

Nu tad kāpēc tu to nedari, nelasi to failu masīvā?

  $file = file("data.txt");
  $totalLines = sizeof($file);
  $users = array(); // tukšs masīvs
  for($line = 0; $line < $totalLines; $line++){
    @list($name,$age,$email) = explode("|", $file[$line]);
    $users[$name] = $email;
  }
  // tagad $users ir aizpildīts

Link to comment
Share on other sites

Kur kļūda...? Can't use function return value in write context in c:\www\unregister.php on line 4

Un kura ir 4-tā rindiņa?

Ja šī: unset(array_search($meklejama,$adreses)); tad varbūt pamēģini šādi:

 $key = array_search($meklejama,$adreses);
 if ($key !== false) { unser($adreses[$key]); }

Jo manuprāt array_search atgriež masīva atslēgu, nevis pašu masīva elementu. Tāpēc unsetot var tikai norādot kurā masīvā ir šī atslēga, nevis pašu atslēgu unsetot!

Link to comment
Share on other sites

Vēlos, lai no faila data.txt

0.rindiņas nolasītu $date, $user, $msg

1.rindiņas nolasītu $name, $surename, $email

2.rindiņas nolasītu $name, $user, $pass

 

vai tas ir iespējams, text faila katrai rindiņai piešķirt atšķirīgus mainīgos..!?

$fileData = file("data.txt");

$messageList = array();

foreach ($fileData as $row){

$date = date("d.m.Y");

list($date, $user, $msg) = explode('|', $row);

$messageList[] = array('date' => $date, 'user' => $user, 'msg' => $msg);

}

 

foreach ($messageList as $key => $message){

echo '<i>'.$message['date'].'</i> <b>'.$message['user'].'</b>: '.$message['msg'] . '<br>---<br>';

 

}

data.txt

03.12.2004|Jānis|komentārs BLĀ|

Juriks|Novovskis|[email protected]|

Baiba|baiba19|parole|

Link to comment
Share on other sites

Vēlos, lai no faila data.txt

0.rindiņas nolasītu $date, $user, $msg

1.rindiņas nolasītu $name, $surename, $email

2.rindiņas nolasītu $name, $user, $pass

Es nu galīgi nesaprotu, kur ir problēmas?!?

 $f = fopen('data.txt', 'r');
 list($date, $user, $msg) = explode('|', fgets($f));
 list($name, $surename) = explode('|', fgets($f));
 list($name, $user) = explode('|', fgets($f));
 fclose($f);

Tikai ievēro, ka tev nezkāpēc mainīgais $name un $user ir divās vietās viens un tas pats!

Link to comment
Share on other sites

Kur kļūda!?

$fileData = file("data.txt");
$personList = array();
foreach ($fileData as $row){
list($name, $age, $email) = explode('|', $row);
$personList[] = array('name' => $name, 'age' => $age, 'email' => $email);
}

// 4. punkts
//No faila "data.txt" print/apluukot taas rindinjas $name,$age,$email veertiibu, kuraa $name=="Pereris";
echo '<h1>Personas dati</h1>';
foreach ($personList as $key => $person){
if ($person['name'] == 'Peteris'){
echo '<h2>' . $person['name'] . '</h2>
<p>Vecums: ' . $person['age'] . '</p>
<p>E-pasts: ' . $person['email'] . '</p>';
} else {
echo "no info";
}
}

 

..vēlos nolasīt $person['name'], $person['age'], $person['email'],

ja $person['name'] == 'Peteris', bet,

ja $person['name'] nav 'Peteris',

tad echo "no info";

..?

Edited by raivis
Link to comment
Share on other sites

Nu viss kārtībā tak. Viss strādā kā vajag. Tavs kods:

 // Izdrukājam tekstu "Personas dati"
 // katrai personai daram sekojošo:
 //    ja šī persona ir pēteris, tad:
 //       izdrukājam name, age, e-mail
 //    citādi (ja tā nav Pēteris), tad:
 //       izdrukājam "no info"

Tātad ja dati.txt satur sekojošas rindas:

Janis|20|[email protected]
Peteris|30|[email protected]
Jurka|40|[email protected]

Tad tavs kods izdrukās apmēram sekojošas rindas:

 no info
 Personas dati (Peteris, 30, [email protected])
 no info

Jo pirmā un pēdējā persona nav Pēteris, bet pa vidam ir Pēteris.

Tā ka, kļūdas nav.

Link to comment
Share on other sites

!? Bet, ja man vajadzētu:

ja persona "Pēteris" ir atrastrs==$name, tad:
izdrukāt $name, $age, $e-mail;
citādi (ja "Pēteris" nav atrasts), tad:
izdrukāt "Pēteris nav atrasts!"; //tikai VIENU reizi!!!

data.txt:

Janis|20|[email protected]
Petja|30|[email protected]
Baiba|19|[email protected]
Jurka|40|[email protected]

izdrukāt:

Pēteris nav atrasts!

..

Link to comment
Share on other sites

Tad tavs kods nav pareizs. Bet redz, tu jau pseidokodu pareizu uzrakstīji. Tā ka pakustini maz-mazdrusciņ savas smadzenes un padomā kā to pārvērst uz php (dari lēnam, pa rindiņai, nevis visu uzreiz, ja neredzi kā). Un uzdod konkrētus jautājumus ko gribi panākt, citādi zin, sāk apnikt rastīt visus skriptus tev priekšā.

Link to comment
Share on other sites

!Un tā atkal nav korekti:

<?php
$meklejama = "Janis";

$adreses = str_replace(array('name' => $name, 'age' => $age, 'email' => $email),'',file_get_contents('data2.txt'));
$adreses = list($name, $age, $email) = explode('|', $adreses);

$key = array_search($meklejama,$adreses);
if ($key !== false) {
echo $meklejama." <b>ir</b> atrasts!";
} else {
 echo $meklejama." <b>nav</b> atrasts!";
}
?>

..ai, nezinu:(

 

Man napieciešams noteikt:

Ja $meklejama == $name, tad:

izdukāt $meklejama=> $name, $age, $email;

citādi (, ja $meklejama nav $name), tad:

izdrukāt $meklejama." nav atrasts";

Link to comment
Share on other sites

nez vai sapratīsiet jautājumu, bet..

Ja data.txt:

03.12.2004|janis|komentā[email protected] 16:35|peter|komentārs1*07.12.2004 19:48|olga|komentārs2*12.12.2004 08:06|janis|komentārs3*
21.10.2004|admin|komentā[email protected] 16:35|peter|komentārs1*07.11.2004 19:48|olga|komentārs2*

Kā iespējams šo skriptu attiecināt uz failu data.txt sākot ar simbolu @

$fileData = file('data.txt');
$messageList = array();
foreach ($fileData as $row){
list($date, $user, $msg) = explode('|', $row);
$messageList[$user] = array('date' => $date, 'user' => $user, 'msg' => $msg);
}

ksort($messageList);

echo '<h4>Ziņojumi..</h4>';
foreach ($messageList as $key => $message){
echo '<i>'.$message['date'].'</i> <b>'.$message['user'].'</b>: '.$message['msg'] . '<br>---<br>';
}

proti, if ($lpp==$rindinja) {

print no rindiņas $rindinja mainīgo $message['date'], $message['user'], $message['msg'] vērtības }

else { ja nav iepostotu ziņojumu: print "no message"; }

 

proti, gala rezultātā vajadzētu izskatīties kam tml:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

03.12.2004 Janis

komentārs

[3 komentāri]

---

21.10.2004 Admin

komentārs

[2 komentāri]

---

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

Aplūkojot 03.12.2004 datuma komentārus: //?lpp=0

03.12.2004 Janis

komentārs

------------------------------------------------------

12.12.2004 08:06 Janis

komentārs3

---

07.12.2004 19:48 Olga

komentārs2

---

07.12.2004 16:35 Peter

komentārs1

---

Pievienot savu komentāru..

 

 

Aplūkojot 03.12.2004 datuma komentārus: //?lpp=1

21.10.2004 Admin

komentārs

------------------------------------------------------

07.11.2004 19:48 Peter

komentārs2

---

07.11.2004 16:35 Olga

komentārs1

---

Pievienot savu komentāru..

!???

Edited by raivis
Link to comment
Share on other sites

Kā, izejot no šī koda, lai pieprasu: ja $person['name'] nav 'Peteris', tad:

izvadīt "no info"; //tikai 1reizi

$fileData = file("data.txt");
$personList = array();
foreach ($fileData as $row){
list($name, $age, $email) = explode('|', $row);
$personList[] = array('name' => $name, 'age' => $age, 'email' => $email);
}

echo '<h1>Personas dati</h1>';
foreach ($personList as $key => $person){
if ($person['name'] == 'Peteris'){
echo '<h2>' . $person['name'] . '</h2>
<p>Vecums: ' . $person['age'] . '</p>
<p>E-pasts: ' . $person['email'] . '</p>';
}// else {
// echo "no info";
//}
}

Link to comment
Share on other sites


×
×
  • Create New...