Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dlaczego skrypt nic nie wykonuje?
Forum PHP.pl > Forum > Przedszkole
kamil212
Witam, mam skrypt z internetu, zmodyfikowany przeze mnie, na tworzenie "przyjaznych linków", krótkich linków. Wykorzystuje on plik .htaccess do uproszczenia wygenerowanego linku, ale to chyba nie ważne.
Otóż ten skrypt (po przeniesieniu się z Proserwera na hosting Hostinger.pl) przestał działać. Być może namieszałem coś w tym skrypcie (w między czasie), lub nie wiem co... Skrypt nic nie robi, oto kod:

  1. <?
  2. include("config.php");
  3.  
  4. if($_GET['s']){
  5.  
  6. $sql_conn = mysql_connect($adres_bazy , $baza_user, $baza_pass);
  7. $zapytanie = "SELECT `link` FROM linki2 WHERE `skrot`='".$_GET['s']."'";
  8. $idzapytania = mysql_query($zapytanie);
  9. mysql_close($sql_conn);
  10.  
  11.  
  12. if($wiersz = mysql_fetch_row($idzapytania)) { echo "<script langue=JavaScript>location.href='".$wiersz[0]."'</SCRIPT>>";}
  13. else {echo "<P class=bad>Błąd zapytania. Najprawdopodobniej link o kodzie ".$_GET['s']." nie istnieje.</P>";}
  14.  
  15. }
  16.  
  17.  
  18. ?>
  19.  
  20. <HEAD>
  21. <TITLE>Skróć swój link</TITLE>
  22. <link rel="stylesheet" href="style.css" type="text/css" />
  23.  
  24.  
  25.  
  26. </HEAD>
  27. <BODY>
  28. <P class=norm>Wpisz adres do skórcenia:
  29. <FORM ACTION="#" METHOD=POST>
  30. <input type = "text" id = "adres" name = "adres" value = "" title = "Podaj adres do skrócenia." placeholder = "http://"> </P><br>
  31.  
  32. <p class=norm>
  33. Wpisz uproszczony link:
  34. <FORM ACTION="#" METHOD=POST>
  35. <input type = "text" id = "skrot" name = "skrot" value = "" title = "Podaj przyjazną nazwę." placeholder = "nazwa"> </P>
  36.  
  37. <select name = "rodzaj" id = "rodzaj" onchange = "aktual(this.value);">
  38. <option onchange = "aktual(value);" value = "2">...</option>
  39. </select>
  40.  
  41. <p class=norm>
  42. Opis pliku:
  43. <FORM ACTION="#" METHOD=POST>
  44. <input type = "text" id = "opis" name = "opis" value = "" title = "Opisz skracany adres." placeholder = "nieobowiązkowe"> </P>
  45.  
  46. <input type="hidden" name="ip" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" />
  47. <input type="hidden" name="data" name="data" value="<?php echo date('d.m.Y H:i'); ?>" />
  48.  
  49.  
  50. <br>
  51.  
  52. <INPUT TYPE="SUBMIT" class=submit VALUE=Skróć>
  53.  
  54. </FORM>
  55.  
  56. <?
  57.  
  58.  
  59. if($_POST['adres']) if($_POST ['skrot']) if($_POST['rodzaj']) if($_POST['opis']) if($_POST['ip']) if($_POST['data']) {
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. $sql_conn = mysql_connect($adres_bazy , $baza_user, $baza_pass);
  67.  
  68.  
  69.  
  70. $spr=mysql_query("select * from linki2 where skrot='".$_POST['skrot']."'");
  71.  
  72. if(mysql_num_rows($spr)==1){
  73.  
  74. echo "<p class=bad>Podany skrót został już wykorzystany!<br>Wprowadˇ inny skrótowiec.</p>";
  75. } else {
  76. $zapytanie = "INSERT INTO linki2 (`link` , `skrot`, `rodzaj`, `opis`, `ip`, `data` ) VALUES ('".$_POST['adres']."', '".$_POST['skrot']."', '".$_POST['rodzaj']."', '".$_POST['opis']."', '".$_POST['ip']."', '".$_POST['data']."');";
  77. $idzapytania = mysql_query($zapytanie);
  78. }
  79.  
  80.  
  81. if(!$idzapytania){ echo ' ';
  82.  
  83. }else{
  84. echo "<p class=corr>Link skrócono!</p><p class=corr>Adres:</p>";
  85. echo "<p class=adres>".$adres_http."".$skrot."</p>";
  86. }
  87. mysql_close($sql_conn);
  88. }
  89.  
  90.  
  91.  
  92. ?>
  93. <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
  94. <P class=panel><a href="/link" style="text-decoration: none; ><font color="#">Panel</font></a> </p>
  95. </BODY>
  96.  
  97. <p class=autor><A class=norm HREF="#"></A></p>



Sam serwer poprawnie obsługuje mysql i php bo inne skrypty działają bez problemu.

PS. Dlaczego skrypt nie chce się wykonać jeśli jedno z pól pozostaje puste i jak doprowadzić do takiego stanu?
PS2. Jak zmienić kolor pola 'placeholder'?
wlodeq
  1. if($_POST['adres']) if($_POST ['skrot']) if($_POST['rodzaj']) if($_POST['opis']) if($_POST['ip']) if($_POST['data'])

Tutaj masz odpowiedź! Konstrukcja jest zła.
  1. if (warynek1) { echo 'coś'; }


Jeśli chchesz miec kilka warunków w jednym if wtedy
  1. if ( warunek1 && warunek2 && warunek2 ) { echo 'coś'; }


&& to jest AND
|| to jest OR
mortus
Cytat(wlodeq @ 3.04.2013, 19:59:09 ) *
&& to jest AND
|| to jest OR

Niezupełnie. Operatory && i AND działają inaczej, podobnie jak i || oraz OR.
kamil212
Zbyt zielony jestem ;(

Ostatecznie stanąłem na tym i nie mam juz pomysłów
  1. if($_POST['adres'] && $_POST['skrot'] && $_POST['rodzaj'] && $_POST['opis'] && $_POST['ip'] && $_POST['data']) {
artuross
Cytat(wlodeq @ 3.04.2013, 19:59:09 ) *
  1. if($_POST['adres']) if($_POST ['skrot']) if($_POST['rodzaj']) if($_POST['opis']) if($_POST['ip']) if($_POST['data'])

Tutaj masz odpowiedź! Konstrukcja jest zła.
  1. if (warynek1) { echo 'coś'; }


Jeśli chchesz miec kilka warunków w jednym if wtedy
  1. if ( warunek1 && warunek2 && warunek2 ) { echo 'coś'; }


&& to jest AND
|| to jest OR


Przeciez konstrukcja jest jak najbardziej poprawna, ba, dziala szybciej niz laczenie AND lub &&.

Czyzby tutaj? Najpierw zamykasz polaczenie, a dopiero pozniej przechwytujesz wyniki smile.gif

  1. mysql_close($sql_conn);
  2.  
  3.  
  4. if($wiersz = mysql_fetch_row($idzapytania)) { echo "<script langue=JavaScript>location.href='".$wiersz[0]."'</SCRIPT>>";}
  5. else {echo "<P class=bad>Błąd zapytania. Najprawdopodobniej link o kodzie ".$_GET['s']." nie istnieje.</P>";}


I tak najlepszym sposobem na taki debug jest wyswietlenie sobie '1', '2', itd. w kolejnych krokach wykonywania skryptu. Bedziesz mial jasno i czytelnie napisane gdzie skrypt nie spelnia warunku.

A moze '<?'?
kamil212
zauważyłem, że jeśli do inputa wprowadze fraze która znajduje sie w mysql, to skrypt zwróci wynik, że ten wyraz został już uzyty, jednak kiedy chcę dodać w pełni poprawne dane to nic się nie dzieje. Chyba, że w kodzie w linijce 83.

  1. if(!$idzapytania){ echo ' ';


Wstawimy tekst do wyświetlenia to wtedy zwróci ten tekst.
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.