Sunteți pe pagina 1din 4

Sarcina lectie 8

1. Creați o mapă ”fisiere” – loc unde vor fi transferate fișierele încărcate de utilizator.
2. Copiați codul de mai jos și creați fișierul ”index.php”:
<?php
// "eliminam" simbolurile inutile
function validare($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$numeErr = $prenumeErr = $emailErr = "";
$nume = $prenume = $email = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
//verificam numele
if (empty($_POST["nume"])) {
$numeErr = "Acest camp, trebuie obligatoriu completat!";
} else {
$nume = validare($_POST["nume"]);
// verificam daca acest camp contine doar litere si spatiu si are cel mult 15
simboluri
if (!preg_match("/^[A-ZА-Я][-a-zа-я]{0,14}$/",$nume)) {
$numeErr = "Trebuie introduse doar litere, liniuta - maxim 15 simboluri.
Prima litera mare!";
}
}
//verificam prenumele
if (empty($_POST["prenume"])) {
$prenumeErr = "Acest camp, trebuie obligatoriu completat!";
} else {
$prenume = validare($_POST["prenume"]);
// verificam daca acest camp contine doar litere si spatiu si are cel mult 15
simboluri
if (!preg_match("/^[A-ZА-Я][-a-zа-я]{0,14}$/",$prenume)) {
$prenumeErr = "Trebuie introduse doar litere, liniuta - maxim 15
simboluri. Prima litera mare!";
}
}
//verificam adresa de email
if (empty($_POST["email"])) {
$emailErr = "Campul trebuie obligatoriu completat";
} else {
$email = validare($_POST["email"]);
// verificam daca adresa de e-mail a fost scrisa corect folosind filtre
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Ati introdus o adresa de e-mail nevalida!";
}
}

//verificam fisierul introdus


//specificam mapa in care vom salva toate fisierele pe care ni le expediaza cursantii
$curent_dir = "fisiere/";
//functia basename returneaza ultima componenta din calea specificata
$curent_file = $curent_dir . basename($_FILES["fisier_incarcat"]["name"]);
$err_exist = 1;
$err_file = "";
$info = "";
//verific daca a fost specificat fisierul de utilizator
//daca a fost specificat inseamna ca numele mapei va fi diferit de
numeMapa.numeFisier
if ($curent_file != "fisiere/")
{
//verifica existenta fisierului cu calea specificata
if (file_exists($curent_file)) {
$err_file .= "<span class='error'>Fisierul exista deja!</span><br />";
$err_exist = 0;
}
//superglobala $_FILES este folosita pentru a prelua fisierele incarcate pe client prin
controlul corespunzator
//verific ca fisierul sa nu fie prea mare
if ($_FILES["fisier_incarcat"]["size"] > 500000) {
$err_file .= "<span class='error'>Sorry, fisierul incarcat este prea voluminos!
</span><br />";
$err_exist = 0;
}
//returneaza detalii referitoare la calea specificata spre un anumit fisier
$tip_fisier = pathinfo($curent_file,PATHINFO_EXTENSION);
if($tip_fisier != "doc" && $tip_fisier != "pdf" && $tip_fisier != "docx" && $tip_fisier !=
"txt") {
$err_file .= "<span class='error'>Sorry, trebuie sa incarcati un fisier textual!!!
</span><br />";
$err_exist = 0;
}
} else {
$err_file .= "<span class='error'>Ati uitat sa incarcati fisierul!</span><br />";
$err_exist = 0;
}
//prelucrez erorile
if(($err_exist == 0)or($numeErr.$prenumeErr.$emailErr != "")){
$info .= '<span class="error">Incarcare nereusita - a aparut o eroare</span><br />';
}else {
move_uploaded_file($_FILES['fisier_incarcat']['tmp_name'], $curent_file);
$info .= "<span class='info'>Fisierul " . basename($_FILES["fisier_incarcat"]["name"]) . "
a fost incarcat cu succes</span><br />";
$nume = $prenume = $email = "";
}
}
/*cu ajutorul functiei move_uploaded_file mutam fisierul de la locatia sa temporara la
locatia sa definitiva, care în cazul nostru este directorul curent. Parametrii acestei
funcţii sunt sursa si destinatia */
?>
<!DOCTYPE html>
<html>
<head>
<title>Fisiere</title>
<style>
h1 {
color:green;
font-size:30pt;
text-align:center;}
p, label {
color: green;
font-size: 12pt;}
input[type="text"], input[type="email"], input[type="file"] {
color: yellow;
background-color: green;
margin: 5px;
padding: 5px;
}
input[type="submit"] {
color: green;
background-color: yellow;
margin: 15px;
padding-top: 15px;
padding-left: 40px;
padding-right: 40px;
padding-bottom: 15px;
font-weight: bold;
}
.error {
color:red;
font-size: 11px;
}
.info {
color:orange;
font-size: 12px;
}
.content {
margin: 10px auto;
max-width: 70%;
}
</style>
</head>
<body>
<div class="content">
<form enctype="multipart/form-data" action="<?php

echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">


<h1>Tema pentru acasa</h1>
<label>Numele:<input type="text" name="nume" value="<?php echo $nume;?>"
/></label><span class="error">* <?php echo $numeErr;?></span><br />
<label>Prenumele:<input type="text" name="prenume" value="<?php echo $prenume;?>"
/></label><span class="error">* <?php echo $prenumeErr;?></span><br />
<label>Email-ul:<input type="email" name="email" value="<?php echo $email;?>"
/></label><span class="error">* <?php echo $emailErr;?></span><br />
<p>Descrie intr-un fisier textual ce este PHP-ul, salveaza fisierul, <br /> iar apoi incarca-l si
expediaza-l pentru control <br />(dimensiunea fisierului trebuie sa fie sub 500000 bytes (aprox
500Kb)):</p>
<!--cu ajutorul acestui input type="file" putem defini cimpul de tip upload din form -->
<input type="file" name="fisier_incarcat" value="<?php echo $email;?>" /><span
class="error">* <?php echo $err_file;?></span><br />
<!-- de valoarea atributului sau ’name’, in cazul nostru "fisier_incarcat" ne vom folosi pentru a-l
manipula din cadrul codului PHP in care il vom prelua-->
<input type="submit" value="Trimite">
</form>
<span class="info"><?php echo $info;?></span>
</div>
</body>
</html>
Temă:
Validati toate valorile preluate din formularele de inregistrare si autentificare, create anterior.

S-ar putea să vă placă și