Links με php!

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 18 Μάιος 2005 15:05

Γεια σας και πάλι,
έχω παρατηρήσει σε πολλές σελίδες που είναι φτιαγμένες με php τα links είναι διαφορετικά από το κανονικό. Δηλαδης:
αντι για

Κώδικας: Επιλογή όλων

<a href = "./kati.html">
είναι

Κώδικας: Επιλογή όλων

<a href = "kati.php?katigoria=23">
Αυτό σίγουρα γίνεται με php, αλλά σε τι οφελεί; Δηλαδή δεν έχει σ'ένα folder έτοιμες σελίδες πράγμα που σημαίνει εξοικονόμηση χώρου; Ή υπάρχουν και τις τραβάει μέσα από το script "kati.php"?

Ό,τι και να είναι πως γίνεται; Θέλω να πω: Υπάρχουν πουθενα έτοιμα scripts;
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
chchrist
Δημοσιεύσεις: 924
Εγγραφή: 28 Ιουν 2003 20:25
Επικοινωνία:

Links με php!

Δημοσίευση από chchrist » 18 Μάιος 2005 16:27

Απλώς δίνει στην μεταβλητή katigoria την τιμή 23 που βρίσκεται στο script στο kati.php

Βασικά αφού βγαίνει αυτό το link την έχει ήδη δώσει απο κάποιο προηγούμενο form μέσω κάποιου hidden input

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 18 Μάιος 2005 20:56

Αρκετά κατανοητό.
1)Για να δώσεις μια τιμή σε μια μεταβλητή με αυτόν τον τρόπο χρειάζεται να κάνεις κάτι ιδιέταιρω(όπως να χρησιμοποιήσεις μια έτοιμη function) ή απλώς την ορίζεις και της δίνεις έτσι την τιμή;
2)Ποια εντολή ή συνάρτηση της php αλλάζει το url της σελίδας(δηλαδή με πιο απλά λόγια κάνει έναν σύνδεσμο;

Το ερώτημά αν οι σελίδες δημιουργούνται αυτή τη στιγμή ή βρίσκονται σε καποιο folder και τις τραβάει το script μένει ακόμα αναπάντητο!
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Links με php!

Δημοσίευση από ThyClub » 18 Μάιος 2005 21:21

Οι σελίδες δημιουργούνται δυναμικά...

1.
Εσύ μπορείς να κάνεις ενα query στην βάση και ανάλογα με τα αποτελέσματα να δημιουργήσεις τόσα links.

πχ:

Κώδικας: Επιλογή όλων

<?php 
   /* Connecting, selecting database */ 
   $link = mysql_connect&#40;"mysql_host", "mysql_user", "mysql_password"&#41; 
       or die&#40;"Could not connect &#58; " . mysql_error&#40;&#41;&#41;; 
   print "Connected successfully"; 
   mysql_select_db&#40;"my_database"&#41; or die&#40;"Could not select database"&#41;; 

   /* Performing SQL query */ 
   $query = "SELECT * FROM my_table"; 
   $result = mysql_query&#40;$query&#41; or die&#40;"Query failed &#58; " . mysql_error&#40;&#41;&#41;; 

   /* Printing results in HTML */ 
   print "<table>\n"; 
   while &#40;$line = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;&#41; &#123; 
       print "\t<tr>\n"; 
       foreach &#40;$line as $col_value&#41; &#123; 
           echo "<td><a href=\"index.php?page=$col_value\">$col_value</a></td>"; 
       &#125; 
       print "\t</tr>\n"; 
   &#125; 
   print "</table>\n"; 

   /* Free resultset */ 
   mysql_free_result&#40;$result&#41;; 

   /* Closing connection */ 
   mysql_close&#40;$link&#41;; 
?>

2.

Σκέψου οτι έχουμε μια βάση:

Κώδικας: Επιλογή όλων

id text author
1 blabla ThyClub
2 fgjsh xultimatex
και θέλουμε να διαβάσουμε το post του xultimatex τότε δίνουμε σαν μεταβλητή το 2

αυτό περνά με ενα sql query και τραβάει απο την βάση την εγγραφή με id 2

Αυτό ελπίζω να σε κατατόπισε

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 18 Μάιος 2005 22:53

Ευχαριστώ Thy!
Παρ'όλα αυτά για μερικά σημεία χρειάζομαι παρπάνω επεξήγηση.

Μέσα στη βάση(στη θέση του blabla και του fgjsh)υπάρχει ολόκληρη η σελίδα στην οποία θέλουμε να κάνουμε link;

Το "mysql_host" τι είναι; Δηλαδή, πως προσδιορίζεται;
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Links με php!

Δημοσίευση από ThyClub » 19 Μάιος 2005 00:10

Στις περισσότερες περιπτώσεις δουλεύεις με templates. Έτσι το μόνο που χρειάζεται είναι το κείμενο δλδ το blablah.

το mysql_host είναι απλά το link της σύνδεσης σε μια βάση. Πχ localhost

Άβαταρ μέλους
ZauZ
Δημοσιεύσεις: 408
Εγγραφή: 12 Οκτ 2003 23:29
Τοποθεσία: Ηράκλειο
Επικοινωνία:

Links με php!

Δημοσίευση από ZauZ » 19 Μάιος 2005 13:09

de ksero an to diko moy paradigma tha sou lisei kapies apories alla diavase parakato.

exeis mia selida index.php
mesa se ayti ti selida exeis ena link tis morfis

index.php?metavliti=1

episeis mesa stin idia selida (sto index.php) stin arxi tis diavazeis ti metavliti me :

$metavaliti = $_GET['metavliti'];

ayto tha valei sti $metavliti tin timh 1.

Skepsou oti tora mesa sto index.php theleis na emfanizeis ena minima. Me ena vronxo IF,THEN,ELSE analoga me to noumero tis metavlitis emfanizeis kai ena diaforetiko minima.

if ($metavliti = 1) {
echo("Epileksate ti proti epilogh");
}elseif ($metavliti = 2) {
echo("epileksate ti deyteri epilogh";
}else{
echo("Den exete epileksei tipota");
}


elpizo na voithisa !
https://www.pelatologio.gr - Online τιμολόγηση, διαχείριση αποθήκης και υποχρεώσεων

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 19 Μάιος 2005 14:08

Ok ZauZ, κάθε τι παραπάνω είναι χρήσιμο!
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 23 Μάιος 2005 00:54

Μετά από μερικές δοκιμές προέκυψαν και άλλες απορίες. Όταν στο παραπάνω παράδειγμα λεει "echo" πως λέμε που θα το τυπώσει; Δηλαδή αν εγώ θέλω να έχω μια σελίδα με πολλά πράγματα πάνω από αυτό πως θα γίνει;
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Links με php!

Δημοσίευση από cordis » 23 Μάιος 2005 01:27

ένα mix html και php θα είναι ότι πρέπει...

Κώδικας: Επιλογή όλων

<html>

<head>
<title>Page <?php echo "$menu"; ?></title>
</head>

<body>

<table border="1" width="58%">
  <tr>
    <td width="18%">menu 1
      <p>menu 2</td>
    <td width="82%">    
    <?php 
    	if &#40;$menu==1&#41; &#123;
    		echo "keimeno keimeno keimeno"; 
    	&#125; 
    	?>
</td>
  </tr>
  <tr>
    <td width="18%">menu 3
      <p>menu 4</td>
    <td width="82%">
    <?php echo "keimeno keimeno keimeno"; 
    	?>
    </td>
  </tr>
</table>

</body>

</html>
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Links με php!

Δημοσίευση από Rapid-eraser » 23 Μάιος 2005 10:08

o sostos oros bebea eivai embeded :P
kai opos poli sosta to e8ese o cordis ekei pou 8a tou to baleis ekei 8a to tiposei :)

episis 8a i8ela va episimavo gia polosti fora kati otav exoume eva script ta html parts dev ta kavoume echo alla escape kai tipovoume movo tis metablites.

px

Κώδικας: Επιλογή όλων

<?
if&#40;isset&#40;$rapid&#41;&#41;&#123;
?>
<a href='<? echo $rapid; ?>' >Rapid link</a>
<?                     &#125;
?>
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

dionyziz
Δημοσιεύσεις: 14
Εγγραφή: 23 Μάιος 2005 15:34
Τοποθεσία: Ioannina, Greece
Επικοινωνία:

Links με php!

Δημοσίευση από dionyziz » 23 Μάιος 2005 16:17

Rapid-eraser έγραψε:ta html parts dev ta kavoume echo alla escape kai tipovoume movo tis metablites.

Κώδικας: Επιλογή όλων

<?
if&#40;isset&#40;$rapid&#41;&#41;&#123;
?>
<a href='<? echo $rapid; ?>' >Rapid link</a>
<?                     &#125;
?>
Αυτό όμως είναι ισοδύναμο με το

Κώδικας: Επιλογή όλων

<?php
if&#40;isset&#40;$rapid&#41;&#41;&#123;
echo "<a href='";
echo $rapid; 
echo "'>Rapid link</a>";
&#125;
?>
Που είναι το πρόβλημα όταν κάνουμε echo HTML?

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Links με php!

Δημοσίευση από Rapid-eraser » 23 Μάιος 2005 17:11

H php opos eipame eivai embeded glossa afto simevei pos mporei va mpei evdiamesa apo ta html tags.
Yparxouve poloi logoi pou afto pou proavefera eivai n kaliteri me8dos.

Proti kai kaliteri eivai to 8ema tis taxititas. Apo tnv stigmi pou dev ferveis kati apo tnv mvimi n kati pou exei dimiourgi8ei divamika , ara prokete giati pou 8a epavalambavete statika xoris kamia apolitos allagi tote spatalas axrista cpu cycles gia va epeksergasteis eva string pou 8a paramivei os exei xoris kamia allagi. Kavovtas escape se html glitoveis tnv parapavo epeksergasia kai apla ta pervas sto output buffer pros tov httpd pou se eksipiretei.

O defteros kirios logos exei va kavei me 8ema debug kai development . Otav kavoume escape se html exoume visible pragmata se html editors ( WYSIWYG ) pragma pou mas bon8aei va exoume es8isi tou pou briskete ti , idios se siv8etes loops mas divei es8isi tou xorou kai tou telikou apotelesmatos.
Skepsou to eksis

Κώδικας: Επιλογή όλων

<?
if&#40;$true&#41;&#123;?>html1<?&#125;else&#123;?>html2<?&#125;
?>
sto parapavo paradigma 8a doume kai ta dio mesa stov editor sav html me 3 php tags va ta perikliouve apla . 8a mporoume va paremboume sta statika html tags amesa me tov editor xoris kapoia idiki epeksergasia.

Κώδικας: Επιλογή όλων

<?
if&#40;$true&#41;&#123; echo "html1"; &#125;else&#123; echo "html2"; &#125;
?>
sto parapavo paradigma dev 8a deis tpt para eva php tag ka8os dev allazeis block . Dev exeis prosbasi sto html part kai prepei va kopseis ta html parts va ta baleis se eva ksexoristo document gia va mporeis va deis ti eivai pou.

Twra skepsou to proigoumevo va eivai mesa se table !!!
kai eva exeis siv8eto kai diskolo html ti exei va givei

Episis o kodikas pou aveferes se 8eoritiko epipedo eivai isodivamos me ka8e tropo oxi omos to idio xristiki simfova me tous kavoves pou avefera.
Episis 8a mporouse va eivai pio aplopiimevos afou dev xriazete va kaleseis tris fore sto cunstract echo alla mia fora ka8os mporeis va evosies to sting me tnv metabliti kai to string ksava se mia grami me to operator "."

px

Κώδικας: Επιλογή όλων

<?

echo "Kati aplo".$foo." kai allo eva string";

?>


Fisika iparxouve polloi alloi logoi pou to apofebgoume evdiktia avaferw ligotera resurces , ligotero mege8os cache , efkolotern pros8iki se cache (milaw gia kapoia zend cache kai oxi tnv cache tou browser)
episis av peraseis se encoder to arxeio ta html parts 8a dosouve mikrotero output apo oti av ta eixes se string fasi kai alla polla.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
xultimatex
Honorary Member
Δημοσιεύσεις: 2505
Εγγραφή: 26 Ιούλ 2003 13:02
Τοποθεσία: Ξάνθη
Επικοινωνία:

Links με php!

Δημοσίευση από xultimatex » 23 Μάιος 2005 20:38

:clap: :clap:

Άλλη ερώτηση:
Για να πάρω μια μεταβλητή με τον τρόπο αυτό(από έξω)πρέπει να έχω απλώς ορίσει τη μεταβλητή ή να κάνω και κάτι παραπάνω ώστε να περνάει η τιμή με τον τρόπο αυτό;

Άλλο:
Ποια function αλλάζει τη διεύθυνση (με απλά λόγια κάνει link);
:arrow: Αν προσπαθείς πολύ για να πετύχεις κάτι, ίσως το κάνεις με λάθος τρόπο...

dionyziz
Δημοσιεύσεις: 14
Εγγραφή: 23 Μάιος 2005 15:34
Τοποθεσία: Ioannina, Greece
Επικοινωνία:

Links με php!

Δημοσίευση από dionyziz » 23 Μάιος 2005 20:41

Μερικές φορές, όμως, το να γράφεις κώδικα HTML escaped από την PHP κάνει τον κώδικα δυσανάγνωστο και δυσκολότερο το debugging: φαντάσου ότι κάθε φορά που θέλουμε να γράψουμε κάτι μικρό θα πρέπει να προσθέτουμε ?>...<?php. Επίσης, σχετικά με το ίδιο θέμα, ότι δηλαδή ο κώδικας γίνεται δυσανάγνωστος, αναφέρω και το γεγονός ότι πολλές φορές όταν κάνουμε output HTML δεν θέλουμε να στέλνουμε "σκουπίδια" στον client, όπως, για παράδειγμα, πολλά spaces στη σειρά, tabs, ή αλλαγές γραμμών. Έχοντας τα strings μέσα στον PHP κώδικα μπορούμε απλώς να αφήνουμε enters κλείνοντας τα εισαγωγικά και αφήνοντας αλλαγή γραμμής, κάνοντας έτσι σωστό indent χωρίς να σπαταλάμε download time. Επιπλέον, είναι συχνό φαινόμενο να χρειάζεται να επεξεργαστούμε όλο το source μίας web σελίδας πριν την στείλουμε στον client (π.χ. compression, επεξεργασία ειδικών tags, φιλτράρισμα, κ.ά.) το οποίο δεν είναι δυνατόν να πραγματοποιηθεί όταν κάνουμε απευθείας output. Για μένα είναι αρκετά σημαντικά αυτά τα πλεονεκτήματα έναντι λίγων επιπλέων κύκλων της CPU. Όταν βέβαια δεν τίθονται τέτοια θέματα (όπως π.χ. όταν έχουμε ένα μεγάλο block HTML κώδικα χωρίς καθόλου δυναμικό περιεχόμενο για πολύ ώρα) φυσικά είναι προτιμώτερο να κάνουμε escape τον HTML κώδικα. Συνεπώς πιστεύω ότι θα πρέπει να κρίνουμε πότε θα πρέπει να χρησιμοποιήσουμε την echo() και πότε να κάνουμε escape ανάλογα με τις περιστάσεις.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες