Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Razem czy oddzielnie?
Forum PHP.pl > Forum > Gotowe rozwiązania
Cysiaczek
Poniższy skrypt służy do obsługi newsów na płaskich bazach danych. Umożliwia wstawienie pliku jpg i gif, kontroluje ich szerokości i wysokości, a także dopuszczalnmy rozmiatr pliku. Połączyłem go ze skryptem, który dodaje treść do opliku tekstowego.
Pytanie brzmi, czy zachować ten skrypt tak jak jest, czy podzielić na mniejsze fragmenty? A może wogóle inaczej go napisać?

[php:1:45edb9d163]<?php
if ($thefile && $tytul && $imie && $tekst)
{
$aErrors = "";
if ( !empty( $thefile_name ) ) // nie wybrano pliku
{
if ( ( $thefile_type == "image/gif" ) ||
( $thefile_type == "image/pjpeg" ) ||
( $thefile_type == "image/jpeg" ) )
{
if ( $thefile_size < ( 1024 * 100 ) )
{
$aCurBasePath = dirname( $PATH_TRANSLATED );
$aNewName = $aCurBasePath . "/jpg/" .
$thefile_name;
copy( $thefile, $aNewName );
}
else
{
$aErrors .= "Za duży plik !!!";
}
}
else
{
$aErrors .= "Plik nie jest typu gif ani jpeg";
}
}
else
{
$aErrors .= "Nie wybrano pliku";
}
if ( $aErrors != "" )
{
print( "<b>Wystąpił błąd</b>: $aErrors<br>" );
}
else
{
print( "Przesłany plik:<br><br>" );
print( "<img src="jpg/$thefile_name" border="0">" );
}
//
// Program pobiera wielkości obrazka i w przypadku za duzego skaluje go do podanych wymiarów
$correctwidth=200;
$correctheight=200;

$nazwarysunku = "jpg/$thefile_name";
$rysunek = imagecreatefromjpeg ($nazwarysunku);

if ((imagesx($rysunek)) > $correctwidth)
{
$roznicax=(imagesx($rysunek)) - $correctwidth;
$newsizex=(imagesx($rysunek)) - $roznicax;
$dane="<table cellspacing=0 border=0 width=100%><tr><td valign=top><h3>$tytul</h3></td></tr><tr><td><p><img src="php/$nazwarysunku" width=$newsizex align=left border="0">$tekst</p></td></tr><tr><td><h3 align=right>$imie</h3></td></tr></table>";


if (((imagesy($rysunek)) > $correctheight) && (!(imagesx($rysunek)) > $correctwidth))
{
$roznicay=(imagesy($rysunek)) - $correctheight;
$newsizey=(imagesy($rysunek)) - $roznicay;
$dane="<table cellspacing=0 border=0 width=100%><tr><td valign=top><h3>$tytul</h3></td></tr><tr><td><p><img src="php/$nazwarysunku" width=$newsizey align=left border="0">$tekst</p></td></tr><tr><td><h3 align=right>$imie</h3></td></tr></table>";
}
}
else
{
$dane="<table cellspacing=0 border=0 width=100%><tr><td valign=top><h3>$tytul</h3></td></tr><tr><td><p><img src="php/$nazwarysunku" align=left border="0">$tekst</p></td></tr><tr><td><h3 align=right>$imie</h3></td></tr></table>";
}
//koniec skalowania


//wczytywanie danych
if ($tytul && $imie && $tekst && $opcja)
{
$plik=fopen("$opcja.txt", "r+");
flock ($plik, 2);
$contents = fread ($plik, filesize ("$opcja.txt"));
flock ($plik, 3);fclose ($plik);
$plik2=fopen("$opcja.txt","w+");
flock ($plik2, 2);
fputs ($plik2, "$dane");
fputs ($plik2, "$contents");
flock ($plik2, 3);
fclose ($plik2);
}
else
{
print "Brak danych do wprowadzenia";
}

}


//BEZ OBRAZKA
else
{
if ($tytul && $imie && $tekst && $opcja)
{
$dane="<h3>$tytul</h3><br><p>$tekst</p><h3 align=right>$imie</h3>";
$plik=fopen("$opcja.txt", "r+");
flock ($plik, 2);
$contents = fread ($plik, filesize ("$opcja.txt"));
flock ($plik, 3);fclose ($plik);
$plik2=fopen("$opcja.txt","w+");
flock ($plik2, 2);
fputs ($plik2, "$dane");
fputs ($plik2, "$contents");
flock ($plik2, 3);
fclose ($plik2);
print "<p class=ok>Dodano newsa do pliku $opcja.txt";
}
else
{
print "<p class=war>Brak danych do wprowadzenia</p><br><br>";
}

}


print '<form action="" method=POST enctype="multipart/form-data">';
print '<table cellspacing=0 cellpadding=0 border=0><tr><td valign=top>';
print '<p class=addnews>Wybierz stronę</p><br></td>';
print '<td valign=top><SELECT name="opcja"><OPTION SELECTED value="">-&gt;Wybierz Stronę';
print '<OPTION VALUE="newsy/news">Strona Główna';
print '<OPTION VALUE="newsy/newslarp">Larp';
print '<OPTION VALUE="newsy/newspol">Polcon';
print '<OPTION VALUE="newsy/test">Strona Testowa';
print '</select>';
print '</td></tr>';
print '<tr><td valign=top>';
print '<p class=addnews>Wstaw obrazek</td>';
print '<td valign=top><input type="file" name="thefile"></p></td></tr><tr><td valign=top>';
print "<p class=addnews>Tytuł </td><td>";
print '<input type="text" name="tytul"><br></p></td></tr><tr><td valign=top>';
print "<p class=addnews>Imię </td><td>";
print '<input type="text" name="imie"><br></p></td>';
print '<td valign=top width=100 align=right><input type="submit" name="go" value="Zapisz"></td></tr></table>';
print '<textarea type="text" name="tekst" cols=50 rows=15>';
print "</textarea><br>";
print '</form>';

?>[/php:1:45edb9d163]
scanner
Przesunięte: php Pro => php
pearl1985
Ja bym się nie bawił w miszanie kodu php z html i pomyślałbym o templatach. To taka sugestia. Ogólnie kod php jest ok.
michaloo
moze sie myle ale mysle ze dobrym nawykiem jest stosowanie pojedynczych cudzyslowiow (') np '<br>'.$zmienna.'<br>' bo to przyspiesza dzialanie skryptu i (przynajmniej dla mnie) jest bardziej czytelne
Cysiaczek
No ba. apostrofy i cudzysłowia są chyba w porządku, bo gdybym użył tylko apostrofów, to nie wyświetlałąby się wartość zmiennej, tylko jej naza eg. [php:1:be2affeecd]<?php
print '<a href="$cos">klik</a>'
?>[/php:1:be2affeecd]
ale wszystkim dzięki serdeczne
Majdan
Cytat
(...) to przyspiesza dzialanie skryptu (...)
Jest to bardzo mała i praktycznie nieznacząca różnica.

Cytat
No ba. apostrofy i cudzysłowia są chyba w porządku, bo gdybym użył tylko apostrofów, to nie wyświetlałąby się wartość zmiennej, tylko jej naza eg.

Przeczytaj jeszcze raz post michaloo i poczytaj o łączeniu stringów.

Proponuję też abyś nie wywoływał kilkakrotnie funkcji print() pod rząd. Umieść ten string w jednej funkcji, albo najlepiej opuść kod php i umieść go poza znacznikiem "?>".
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.