Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzenie czy to obrazek
vipcior
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
vipcior
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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?
Go to the top of the page
+Quote Post
Peter12
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 15.08.2010

Ostrzeżenie: (0%)
-----


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
        }            
    }
}


Ten post edytował Peter12 3.12.2011, 13:24:30
Go to the top of the page
+Quote Post
vipcior
post
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


@Petter12
Chyba jestem aż takim łomem żę nie umiem to wkleić.
Plik się nie wysyła.

Zobacz jak to wygląda
Go to the top of the page
+Quote Post
Peter12
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 15.08.2010

Ostrzeżenie: (0%)
-----


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
        }            
    }
}


?>
Go to the top of the page
+Quote Post
krowal
post
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Zapomniałeś o enctype="multipart/form-data" bez tego tablica $_FILES będzie zawsze pusta.
  1. <form action="" method="post" enctype="multipart/form-data">
Go to the top of the page
+Quote Post
vipcior
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


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

Ten post edytował vipcior 5.12.2011, 20:20:26
Go to the top of the page
+Quote Post
gorden
post
Post #10





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


co to w ogóle za zapytanie?
http://www.w3schools.com/sql/sql_insert.asp
mysql_query
Go to the top of the page
+Quote Post
vipcior
post
Post #11





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
gorden
post
Post #12





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

Ostrzeżenie: (0%)
-----


najłatwiej i w jedyny sposób, by było dynamicznie to javascriptem.
a w php to sesje lub get.
Go to the top of the page
+Quote Post
vipcior
post
Post #13





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 2.12.2011

Ostrzeżenie: (0%)
-----


A jest może jakiś artykuł jak to zrobić javascriptem ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 06:38