Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzenie czy to obrazek
Forum PHP.pl > Forum > Przedszkole
vipcior
Witam wszystkich na forum, to mój pierwszy post.
Po pierwsze to jestem świeżo początkujący.
Próbuje zrobić system zgłoszeń, działa on ale mam problem aby w pole zdięcie nie wstawiano innych linków niż link do zdięcia.
Czyli żę jak będzie jakis inny URL niż do zdięcia to wyskoczy błąd a jak bedzie poprawny URL to wykona to do końca.
Problem jest w tym że nie za bardzo wiem jak to wstawić.

  1. <form action="" method="post">
  2. Powod: <input type="text" name="powod">
  3. <br/>Autor" <input type="text" name="autor">
  4. <br/>Zdiecie: <textarea name="zdiecie"></textarea>
  5. <br/><input type="submit" value="Dodaj"></form>
  6.  
  7. <?php
  8.  
  9.  
  10.  
  11. include("polacz.php");
  12. $query = mysql_query("('','".$_POST['powod']."',now(),'".$_POST['autor']."','".$_POST['zdiecie']."')");
  13.  
  14. ?>
wNogachSpisz
Zdaje sobie sprawe, ze moja odpowiedz dla poczatkujacego jest nie do skorzystania z.
Mimo to udziele jej, bo jest to jedyne sensowne rozwiazanie..

http://pear.php.net/manual/en/package.http.http-request2.php

Łączysz się z podanym URL'em za pomocą tej bibliteki, następnie ustawiasz obserwatora:
Observers -> receivedHeaders
Jest to nic innego jak funkcja która zareaguje (zostanie wywołana) z chwilą otrzymania nagłówka HTTP odpowiedzi. Pobierane jest raptem kilkaset bajtów.
Tutaj sprawdzasz czy content-type to image oraz czy conten-length nie jest zbyt duży.

Kończysz wstępną weryfikację na podstawie nagłówka.
Jeśli wykryjesz nieprawidłowości na tym etapie - przerywasz połączenie.
Dzięki temu nie wpakujesz się w pobieranie dużej ilości danych.. przynajmniej teoretycznie tongue.gif

Teraz pozostaje pozwolić pobieraniu się dokończyć.
Kiedy to się stanie, sprawdzsz czy pobrane dane to rzeczywiście obrazek, np. przy pomocy jeden (lub wielu) funkcji GD.
vipcior
To możę inaczej to zrobie.
Jak mogę zrobić aby plik się zuploadował do upload a potem do bazy wysłał adres url tego obrazka który się uploadował.
Jak narazie moj kod trochę przerobiłem i mam coś takiego:

  1. <form action="" method="post">
  2. Powod: <input type="text" name="powod">
  3. <br/>Autor" <input type="text" name="autor">
  4. <br/>Zdiecie: <input name="plik" type="file" />
  5. <br/><input type="submit" value="Dodaj"></form>
  6.  
  7. <?php
  8.  
  9.  
  10. $plik_tmp = $_FILES['plik']['tmp_name'];
  11. $plik_nazwa = $_FILES['plik']['name'];
  12. $plik_rozmiar = $_FILES['plik']['size'];
  13.  
  14. if(is_uploaded_file($plik_tmp)) {
  15. move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
  16. }
  17.  
  18.  
  19. include("polacz.php");
  20. $query = mysql_query("('','".$_POST['powod']."',now(),'".$_POST['autor']."','".$_POST['co tutaj ?']."')");
  21.  
  22. ?>
wNogachSpisz
Cytat(vipcior @ 3.12.2011, 10:40:11 ) *
Jak zrobić aby plik się zuploadował a potem do bazy wysłał adres url tego obrazka który się uploadował.

Eeee.... Co takiego?
Peter12
Kod
$a = array('jpg', 'png', 'gif'); // dopisz sobie resztę
$b = "http://linkdostrony.pl/upload/".$plik_nazwa;
$c = explode(".", $b);
foreach($a as $types){
    foreach($c as $d){
        if($d == $types){
            $query = mysql_query("('','".$_POST['powod']."',now(),'".$_POST['autor']."','".$b."')"); // dodajesz do bazy
        }else{
            echo "błąd"; // błąd
        }            
    }
}
vipcior
@Petter12
Chyba jestem aż takim łomem żę nie umiem to wkleić.
Plik się nie wysyła.

Zobacz jak to wygląda
Peter12
Kod
<form action="" method="post">
Powod: <input type="text" name="powod">
<br/>Autor" <input type="text" name="autor">
<br/>Zdiecie: <input name="plik" type="file" />
<br/><input type="submit" value="Dodaj"></form>
</center>

<?php


$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

if(is_uploaded_file($plik_tmp)) {
     move_uploaded_file($plik_tmp, "upload/$plik_nazwa");  
}

include("polacz.php");
$a = array('jpg', 'png', 'gif'); // dopisz sobie resztę
$b = "http://linkdostrony.pl/upload/".$plik_nazwa;
$c = explode(".", $b);
foreach($a as $types){
    foreach($c as $d){
        if($d == $types){
            $query = mysql_query("('','".$_POST['powod']."',now(),'".$_POST['autor']."','".$b."')"); // dodajesz do bazy
        }else{
            echo "błąd"; // błąd
        }            
    }
}


?>
krowal
Zapomniałeś o enctype="multipart/form-data" bez tego tablica $_FILES będzie zawsze pusta.
  1. <form action="" method="post" enctype="multipart/form-data">
vipcior
Ok plik mi wysyła, znajdoje się w folderze upload ale nie moge się uporać z tym że nic nie dodaje do bazy danych.
Odrazu jak włącze strone wyswietla się błądbłądbłądbłądbłądbłąd.

Tak to wygląda
gorden
co to w ogóle za zapytanie?
http://www.w3schools.com/sql/sql_insert.asp
mysql_query
vipcior
Dobra z tym problemem już się uporałem.
1. Teraz jakoś proboje zrobić aby na jednej stronie wyświetlały mi się max 10 obrazków (umiem to zrobić)
2. Jak wyświetlają mi się te 10 obrazków to jak wcisne BUTTON "--->" to pokazują się kolejne 10 obrazków, jak by to można zrobić ? za pomocą pętli ? ale jak ?

  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news order by id desc limit 5");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[3].' - <p><img src="'.$rekord[4].'"width=600 height=400></p></li>';
  7. }
  8. echo '<ul>'.$naz.'</ul>';
  9. ?>


@odswiezam
gorden
najłatwiej i w jedyny sposób, by było dynamicznie to javascriptem.
a w php to sesje lub get.
vipcior
A jest może jakiś artykuł jak to zrobić javascriptem ?
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.