Jump to content
php.lv forumi

Pievieojot tekstu mysql datubāze caut textarea


Recommended Posts

Posted

Bah.. jāsāk atkārtoties.

 

Ja tev datubāzē uzrāda \n simbolu (vienu čarakteru), tad tev teksta izvadīšanai html'ā jālieto nl2br fja. Izvadīšanai textareā nav nekas jālieto - viss izvadīsies pareizi. \n kā viens čaraketers nozīmē endlainu (enteru).

 

Ja tev datubāzē glabājas divi simboli - \ un n pēc kārtas, tad tu esi:

1) vai nu ielicis tur divus simbolus \ un n (nevis enteru),

2) vai arī tev skriptā, kas atbild par teksta ievietošanu datubāzē, kautkur ir manis augstāk uzrakstītais str_replace (varbūt ereg_replace vai preg_replace). Izmet to ārā un tad lasi iepriekšējo rindkopu.

Var protams mudīties un manuāli pie outputa konvertēt "\\n" uz "\n", bet nu tas ir pilnīgi garām.

Posted (edited)

Paldies laikam sapratu, iekš pieveinošanas datubāze laikam dēļ ši, negāja kad nomainiju no

 

$teksts = mysql_escape_string($_POST['teskts']);

uz

 

$teksts = $_POST['teskts'];

un viss iet ka vaig

Edited by Devils666
Posted (edited)

Lūdzu nevajag taisīt bezjēdzīgas QUOTES

 

Jā to es sapratu pēc dažām sekundem, kad nedaudz padomaju, bet ka tad lai to es savādak nomainu?

Edited by bubu
Posted

hm.. mysql_escape_string nevajadzētu to ietekmēt. Jā, tas pārvērš enteru par \n, bet to tas dara tāpēc, lai tu ievietojamo stringu varētu likt pēdiņās, kad to liec kverijā. Reāli datubāzē saglabāsies enters.

 

Esi pārliecināts, ka neizsaci divreiz escape_string? Varbūt pēc tam vēl izsauci addslashes?

 

mysql_escape_string nevajadzētu ņem nost vispār. Tas padarīs tavus kverijus ievainojamus, un zinošs cilvēks varēs izčakarēt tavu datubāzi.

Posted

Nu viss kods izkatas šāds

 

  if(isset($_POST['submit']))

 {

  $teksts = mysql_escape_string($_POST['teksts']);


		  if(!$teksts){  

				 echo "Kļuda: Lai pievienotu ir nepieciešams azpildīt visus laucinus. Lūdzu aizpildi tos.";				 
				 exit();

		  }

	 $result = mysql_query("INSERT INTO datubaze (teksts)

				   VALUES ('$teksts')",$savienoties);


	  echo "<b>Paldies! Teksts veiksmigi pievienots!<br>Pēc (3) sekundēm tev atvērsies sākuma lapa";

	  echo "<meta http-equiv=Refresh content=3;url=lessons.php>";

 }

else

 {

 

es itka ķļūdu neredzu, bet varbūt tomer kautkur ir

Posted (edited)

Norestartēju datoru, un nekas nemainijās. Ta ka tas laikam nav pie vainas un tur kaut kas bija rasktits par SQL Injection, tapec labak atstasu. Kāds kodā nevar paskatites kļūdas?

Edited by Devils666
Posted

Aleksej: magic quotes jau enterus neaiztiek, ne?

 

Devils666: padebugo kodu - ieliec vairākās vietās (pirms/pēc eskeipošanas) echo/print_r/var_dump un paskaties mainīgā vērtību.

Posted (edited)

**** tik vienkārs kods, bet tāds čakars

Pamēģinaju, tikvaita neiet, vienigais bez mysql_escape_string, bet bez tā labak nemēģināšu, drošiba tomer svarigaka

Jaatrod kāds veids kā ielikt datubāzē bez \r un \n vai jauzliek, lai savādāk nolasītu no datubāzes......jo tikko apskatijos, rakstot caur phpmyadmin neparadas \r \n un viss iir kartiba

Edited by Devils666
×
×
  • Create New...