Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją getimagesize() w skrypcie
Forum PHP.pl > Forum > PHP
Rafael6666
Witam. Mam skrypt wymiany bannerów. Kiedy wypełniam formularz rejestracyjny i jak zostawię pole, gdzie trzeba wpisać link do bannera z domyślną wartością czyli "http://" lub jakimś tekstem to wyskakuje błąd:

Kod
Warning: getimagesize(http://) [function.getimagesize]: failed to open stream: Success in /home/rufus009/public_html/signupconfirm.php on line 13


Jak skasuję cały tekst z pola z linkiem do bannera to błąd się nie pojawia.

A tu daję skrypt:

  1. <?
  2. include("header.php");
  3. include("config.php");
  4. ?>
  5. <html><head><title><? echo"$exchange_name"; ?> - Zapisuję się!</title><LINK REL=stylesheet HREF="style.css" 
  6.  
  7. TYPE="text/css">
  8. </head>
  9. <body><div align="center">
  10. <table border="0" id="table1">
  11. <tr>
  12. <td>
  13.  
  14. <?
  15. $imagestuff = getimagesize($bannerurl);
  16. $imagewidth = $imagestuff[0];
  17. $imageheight = $imagestuff[1];
  18. $error=0;
  19. if($submit){
  20.  
  21. // Validate the Name
  22. if(strlen(trim($name)) < 2){
  23. $error = 1;
  24. $error_html .= "Informacje podane w polu IMIĘ są niewłaściwe. (powinny mieć powyżej 2 
  25.  
  26. znaków).<br><br>n";
  27. }
  28. if(strlen(trim($name)) > 100){
  29. $error = 1;
  30. $error_html .= "Informacje podane w polu IMIĘ są niewłaściwe. (powinny mieć poniżej 100 
  31.  
  32. znaków).<br><br>n";
  33. }
  34.  
  35. // Validate the Login
  36. if(strlen(trim($login)) > 20){
  37. $error = 1;
  38. $error_html .= "Informacje podane w polu LOGIN są niewłaściwe. (powinny mieć do 20 
  39.  
  40. znaków).<br><br>n";
  41. }
  42. if(strlen(trim($login)) < 2){
  43. $error = 1;
  44. $error_html .= "Informacje podane w polu LOGIN są niewłaściwe. (powinny mieć powyżej 2 
  45.  
  46. znaków).<br><br>n";
  47. }
  48. $check_login=mysql_query("select * from banneruser where login='$login'");
  49. $get_login=@mysql_fetch_array($check_login);
  50. $exists=$get_login[login];
  51. if($exists == $login){
  52. $error = 1;
  53. $error_html .= "Podany LOGIN jest już zajęty.<br><br>n";
  54. }
  55. // Validate the Site URL
  56. if(!$get_url=@fopen($url,"r")){
  57. $error = 1;
  58. $error_html .= "Adres strony jest niewłaściwy. Być może zawiera nazwę pliku (np. 
  59.  
  60. index.html) lub końcowy slash (http://www.somesite.com/)!<br><br>n";
  61. }
  62.  
  63. // Validate the Banner Width and Height
  64. if($imagewidth==''){
  65. $error = 0;
  66. $error_html .= "System nie odnalazł banera na stronie jaką podałeś. Może plik nie jest 
  67.  
  68. w formacie *.gif , *.jpg . Ty podałeś adres (<b>$bannerurl</b>). Proszę, sprawdz adres bannera i spróbuj ponownie. Jeżeli 
  69.  
  70. masz konto na serwerze piwko.pl lub friko.pl musisz pamiętać, że obowiązuje tam całkowity zakaz 
  71.  
  72. hotlinkowania.<br><br>n";
  73. }
  74. if($imagewidth != $banner_width){
  75. $error=1;
  76. $error_html .= "Rozmiar bannera jest niepoprawny ponieważ ma <b>$imagewidth</b> 
  77.  
  78. pixeli szerokości. Bannery dla tego systemu powinny mieć $banner_width pixeli szerokości.<br><br>n";
  79. }
  80. if($imageheight != $banner_height){
  81. $error=1;
  82. $error_html .= "Rozmiar bannera jest niepoprawny ponieważ ma <b>$imageheight</b> 
  83.  
  84. pixeli wysokości. Bannery dla tego systemu powinny mieć $banner_height pixeli wysokości.<br><br>n";
  85. }
  86.  
  87. // Validate the Email Address
  88. if(!ereg("^([a-z0-9_]|-|.)+@(([a-z0-9_]|-)+.)+[a-z]{2,4}$",$email)){
  89. $error = 1;
  90. $error_html .= "Informacja w polu ADRES EMAIL jest niepoprawna ponieważ zawiera znaki 
  91.  
  92. niedozwolone. Skontaktuj się z administratorem swojego konta pocztowego, lub podaj inny adres.<br><br>n";
  93. }
  94.  
  95. // Validate the Password
  96. if(strlen(trim($pass)) < 4){
  97. $error = 1;
  98. $error_html .= "Informacja w polu HASŁO jest niepoprawna. (powinno być powyżej 4 
  99.  
  100. znaków).<br><br>n";
  101. }
  102.  
  103. if($error=="1"){
  104. echo "<br><font color="#FF0000"><b>Nie można utorzyć konta z 
  105.  
  106. nast&#281;pujących powodów:</b></font>";
  107. echo "<blockquote>".$error_html."</blockquote>n";
  108. echo "Proszę <a href="java script:history.go(-1)">cofnij</a> i spróbuj 
  109.  
  110. ponownie.";
  111. } else {
  112. $insert=mysql_query("insert into banneruser values 
  113.  
  114. ('','$login','$pass','$name','$email','$url','0','$starting_credits','0','0','0','0','','')",$db);
  115. $get_id=mysql_query("select id from banneruser where login='$login' AND 
  116.  
  117. pass='$pass'");
  118. $get_rows=mysql_fetch_array($get_id);
  119. $insert_banner=mysql_query("insert into bannerurls values 
  120.  
  121. ('','$bannerurl','$get_rows[id]')");
  122. ?>
  123. <center><h3>Konto założone poprawnie!</h3></center>
  124. Twoje konto jest już aktywne i możesz zacząc "zarabiać" wyświetlenia.
  125. <BR>
  126. W ciągu najbliższych kilku godzin administrator sprawdzi czy już umieściłeś kod wymiany na swojej stronie i dopuści banner 
  127.  
  128. do regularnej rotacji.<br><br>
  129. Na adres: <?echo"$email"; ?> został wysłany Twój login i hasło. Zachowaj te informacje, bo będą Ci w przyszłości potrzebne.
  130.  
  131. Możesz się teraz zalogować, klikając "Zaloguj" , lub przejść do <a href="index.php">Statystyk</a>. <BR><BR>
  132. <CENTER><font color="#FF0000"><b><big>Koniecznie umieść na swojej stronie kod HTML tego systemu wymiany 
  133.  
  134. bannerów.</big></b></FONT></CENTER><BR><BR> Jest to niezbędny warunek uczestnictwa w systemie. Kod znajdziesz 
  135.  
  136. po zalogowaniu się na swoje konto klikając guzik POBIERZ KOD HTML.<br><br>
  137. <center>
  138. <?
  139. }
  140. ?>
  141. <br><br>
  142. <form method="POST" action="<? echo"$base_url"; 
  143.  
  144. ?>/client/stats.php">
  145. <input type=hidden name=login value=<? echo "$login"; ?>>
  146. <input type=hidden name=pass value=<? echo "$pass"; ?>>
  147. <input type="submit" value="Zaloguj"></center>
  148. <?
  149. if($admin_mail=="Y"){
  150. $subject = "Nowy uzytkownik w systemie!";
  151. $content = "Nowy uzytkownik czeka na Twoja akceptacje! Kliknij tutaj: 
  152.  
  153. ".$base_url."/admin/index.php";
  154. mail($owner_email,$subject,$content,"From: $email");
  155. }else{
  156. }
  157. $usrsubject = "Witaj w ".$exchange_name."!";
  158. $usrcontent = "Otrzymujesz ten e-mail, poniewaz Ty, lub ktos inny podal ten 
  159.  
  160. adres, aby zalozyc konto w ".$exchange_name.". nnTwój login: $loginnTwoje haslo: $passnnAby obejrzec statystyki, 
  161.  
  162. zmienic dane, lub pobrac kod bannera, zaloguj sie na swoje konto:n  $base_urlnnDziekuję za przystapienie do 
  163.  
  164. systemu!nn$owner_name.nnKoniecznie dodaj swoja strone do katalogu: $katalog_urln";
  165. mail($email,$usrsubject,$usrcontent,"From: $owner_email");
  166. }
  167.  
  168. ?><BR><BR></td>
  169. </tr>
  170. </table></div>
Cienki1980
Ciężko zobaczyć co to za błąd się pokazuje. sad.gif

Wyświetl może zmienną $banerurl i zobacz jaką ona ma wartość. Podejrzewam, że powinna mieć adres obrazka wpisywany przez użytkownika dodającego baner.
ARJ
jak napisał @Cienki1980 sprawdź co zmienna zawiera. jeżeli dane przesyłasz z formularza to błąd może być powodowany przez register_globals off. użyj $_GET lub $_POST.
Rafael6666
Zmienna $bannerurl to adres bannera, który wpisywany jest w poprzedniem okienku. Jak wpiszę do niego jakiś tekst nic nie znaczący, albo adres bannera, który nie istnieje wyskakuje ten błąd:

Kod
Warning: getimagesize(dfsd) [function.getimagesize]: failed to open stream: No such file or directory in /home/rufus009/public_html/signupconfirm.php on line 13


Ale jak nie wpiszę nic, czyli zaostawię pole puste lub wpiszę poprawny adres bannera to błąd nie wyskakuje. I w tym tkwi cały problem.
Cienki1980
Ale ja dalej nie widze tego błędu sad.gif Popraw jakoś te posty, żeby błąd był widczony ( użyj ENTER'a )

No i wyświetl tą zmienna $banerurl i pokaż jakie wartości otrzymuje w zależności od tego co wpiszesz w formularzu.
Rafael6666
Tutaj możesz zobaczyć przykład:

www.xaz.go.pl

Zmienna $bannerurl to link do bannera, który wpisuje się w poprzednim okienku. Ale jak link do bannera nie istnieje, czyli jest zły, to wyskakuje ten oto błąd:

Warning: getimagesize(dfsd) [function.getimagesize]: failed to open stream: No such file or directory in /home/rufus009/public_html/signupconfirm.php on line 13

Trzeba zrobić tak, że jak się wpisze niewłaściwy adres bannera, to żeby nie wyskakiwał ten błąd. Ale ja nie wiem jak to zrobić sad.gif .
ARJ
dałem w link banera http://www.wp.pl/i/const/200612/logoWp.gif i poszło. wyświetliło się, że rozmiary nie pasują ale błąd się nie pojawił.
ale na pewno zmodyfikuj skrypt. nie używaj $bannerurl tylko $_POST['bannerurl'] !
Rafael6666
Ale chodzi o to, że jak wpiszę adres, który nie istnieje np. http://www.lol.pl/lol/lol.gif, to wyskoczy mi na górze błąd. Pod tym błędem będzie wszystko ok, ale ja chcę, żeby ten błąd nigdy się nie pojawiał.
Cienki1980
  1. <?php
  2. $imagestuff = @getimagesize($bannerurl);
  3. ?>


A jak tak zrobisz to jak się system zachowa ?
PiratNowegoPokolenia
a wogóle istnieje taki obrazek ? do którego link prowadzi ...
błąd wskazuje na to że nie istnieje
Rafael6666
DZIAŁA!!! Dzięki Cienki1980. Może w nagrodę zarejestrujcie się w tym serwisie smile.gif . Mogę wam dać za darmo 100000 wyświetleń waszego bannera. Jak chcecie to nie ma problemu. Niby tak prosto było poprawić ten skrypt, ale ja bym na to nie wpadł laugh.gif . Teraz gra gitara guitar.gif .
ARJ
Cytat(Cienki1980 @ 27.01.2007, 19:27:56 ) *
  1. <?php
  2. $imagestuff = @getimagesize($bannerurl);
  3. ?>


A jak tak zrobisz to jak się system zachowa ?

jak dla mnie, to żadne rozwiązanie tematu. czemu? bo takie coś nie eliminuje błędu tylko go ukrywa!
@Rafael6666 zanim sprawdzisz wielkość zdjęcia sprawdź czy link jest poprawny i czy zdjęcie faktycznie istnieje. jeżeli wszystko gra dopiero wtedy sprawdzasz jego wielkość.
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.