πληροφοριακα μηυματα λαθους

Από που να ξεκινήσω; Που θα βρω; κ.α. γενικές ερωτήσεις για την δημιουργία μιας ιστοσελίδας.

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

Απάντηση
stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

πληροφοριακα μηυματα λαθους

Δημοσίευση από stavroula_apo » 27 Φεβ 2011 22:11

dva_dev έγραψε:Φτιάξε μια function που να μορφοποιείς τα μηνύματα λάθους που θέλεις πχ.

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

function myerror($con) {
	$errNo = mysql_errno($con);
	switch ($errNo) {
		case 1062:
			$errStr = 'Δεν μπορεί να ξαναπεραστεί δεύτερη εγγραφή με τον ίδιο κωδικό.';
			break;
		case 1146:
			$errStr = 'Αυτός ο πίνακας δεν υπάρχει, ψάξε αλλού.';
			break;
		default:
			$errStr = mysql_error($con);
	}
	return "Σφάλμα $errNo: $errStr";
}
Οι κωδικοί λαθών και οι περιγραφές είναι στα προηγούμενα links.

και χρησιμοποίησε τη στο die ή όπου αλλού σε βολεύει.

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

...
if (!mysql_query($query, $con)) {
	die(myerror($con));
}else{
	echo 'Η εγγραφή καταχωρήθηκε επιτυχώς! <br/><br/>';
...
χρησιμοποιωντας αυτο μ βγαζει Fatal error: Call to undefined function myerror() in κ τη γραμμη που βρισκεται το λαθος αλλα δε κτλβ π ειαι το λαθος...

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

πληροφοριακα μηυματα λαθους

Δημοσίευση από pimpogio » 27 Φεβ 2011 23:07

dva_dev έγραψε: Αυτό το πράγμα με χρήση exceptions πως απλοποιείται;
Φτιαχνεις δικο σου Exception:

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

class DuplicateUserException extends Exception&#123;.....&#125;
τα exceptions γινονται throw και μπορεις να τα κανεις catch σε υψηλότερο επιπεδο στο stack
δεν ειναι απαραιτητο να τα κανεις catch τοπικα.
Μπορεις να κανεις rethrow με ποιο περιγραφικο δικο σου exception στου οποιου την υλοποιηση κανεις οτι θες

στο model

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

try&#123;
.......
&#125;catch &#40;PDOExection $e&#41;&#123;
throw new DuplicateUserException;
&#125;

και μετα στον controller κανεις ας πουμε catch το DuplicateUserException
και φορτώνεις το αντιστοιχο view


μπορει να φαινετε ποιο πολυπλοκο ετσι αλλα δεν ειναι

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

πληροφοριακα μηυματα λαθους

Δημοσίευση από dva_dev » 28 Φεβ 2011 03:37

stavroula_apo έγραψε:χρησιμοποιωντας αυτο μ βγαζει Fatal error: Call to undefined function myerror() in κ τη γραμμη που βρισκεται το λαθος αλλα δε κτλβ π ειαι το λαθος...
Τη function πρέπει να τη έχεις δηλώσεις πριν τη χρησιμοποιήσεις. Μπορείς να τη βάλεις σε κάποιο άλλο αρχείο και να το κάνεις include στην αρχή του κώδικα της σελίδας.

stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

πληροφοριακα μηυματα λαθους

Δημοσίευση από stavroula_apo » 28 Φεβ 2011 23:19

dva_dev έγραψε:
stavroula_apo έγραψε:χρησιμοποιωντας αυτο μ βγαζει Fatal error: Call to undefined function myerror() in κ τη γραμμη που βρισκεται το λαθος αλλα δε κτλβ π ειαι το λαθος...
Τη function πρέπει να τη έχεις δηλώσεις πριν τη χρησιμοποιήσεις. Μπορείς να τη βάλεις σε κάποιο άλλο αρχείο και να το κάνεις include στην αρχή του κώδικα της σελίδας.
την βαζω σε ενα αρχειο script.js οπου εχω βαλει ολες τις function κ χρησιμοποιω ακριβως τον παραπανω κωδικα

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

πληροφοριακα μηυματα λαθους

Δημοσίευση από pimpogio » 01 Μαρ 2011 00:25

stavroula_apo έγραψε: την βαζω σε ενα αρχειο script.js οπου εχω βαλει ολες τις function κ χρησιμοποιω ακριβως τον παραπανω κωδικα
σε php αρχειο θα την βαλεις οχι σε javascript...

stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

πληροφοριακα μηυματα λαθους

Δημοσίευση από stavroula_apo » 01 Μαρ 2011 07:32

pimpogio έγραψε:
stavroula_apo έγραψε: την βαζω σε ενα αρχειο script.js οπου εχω βαλει ολες τις function κ χρησιμοποιω ακριβως τον παραπανω κωδικα
σε php αρχειο θα την βαλεις οχι σε javascript...
δλδ να δημιουργησω ενα php αρχειο ας πουμε myerror.php και απλα να γραψω #include <myerror.php> στην αρχη του php αρχειου μ μεσω του οποιου καταχωρουνται οι τιμες?

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

πληροφοριακα μηυματα λαθους

Δημοσίευση από pimpogio » 01 Μαρ 2011 13:40

include 'myerror.php';

stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

πληροφοριακα μηυματα λαθους

Δημοσίευση από stavroula_apo » 01 Μαρ 2011 15:34

pimpogio έγραψε:include 'myerror.php';
μ βγαζει αυτο:

include ('myerror.php');
Καταχώρηση φοιτητή
Fatal error: Call to undefined function myerror() in C:\xampp\htdocs\tei\add_student.php on line 37

ο κωδικας μ ειναι αυτος:
αρχειο add_student.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
include ('myerror.php');
<link rel="stylesheet" type="text/css" href="style.css"/>
<script language="javascript" type="text/javascript" src="script.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Student Data</title>
</head>
<body>
<br/>
<br/>
<br/>
<div id="container">
<h2>Καταχώρηση φοιτητή</h2><br/>

<?php

if($_POST["studid"] !="" && $_POST["studfirst"] !="" && $_POST["studlast"] !="" && $_POST["studbirth"] !="" && $_POST["studaddress"] !="" && $_POST["studemail"] !="") {


$con=mysql_connect("localhost", "stavroula", "1987") or
die("Η σύνδεση με το server απέτυχε <br />");

mysql_select_db("school", $con) or
die("Η σύνδεση με τη βάση απέτυχε <br />");

$id = $_POST ['studid'];
$query="INSERT INTO student (studid, studfirst, studlast, studbirth, studaddress, studemail) VALUES ('$id',
'$_POST[studfirst]', '$_POST[studlast]', '$_POST[studbirth]', '$_POST[studaddress]', '$_POST[studemail]')";


mysql_query("SET NAMES 'utf8';", $con);
mysql_query("SET CHARACTER SET 'utf8';", $con);

if(!mysql_query($query, $con)){
die(myerror($con));
}else{
echo "Η εγγραφή καταχωρήθηκε επιτυχώς! <br/><br/>";
$query="select * from student where studid=".$_POST['studid'];
$result=mysql_query($query, $con);
$row=mysql_fetch_array($result);
?>
<table border="1">
<tr>
<th>ΑΜ φοιτητή: </th>
<td><?php echo $row['studid'];?></td>
<tr>
<th>Όνομα: </th>
<td><?php echo $row['studfirst'];?></td>
</tr>
<tr>
<th>Επώνυμο: </th>
<td><?php echo $row['studlast'];?></td>
</tr>
<tr>
<th>Ημερομηνία γέννησης: </th>
<td><?php echo $row['studbirth'];?></td>
</tr>
<tr>
<th>Διεύθυνση: </th>
<td><?php echo $row['studaddress'];?></td>
</tr>
<tr>
<th>E-mail: </th>
<td><?php echo $row['studemail'];?></td>
</tr>
</table>
<?php
}
mysql_close($con);
}
?>
<br />
<br />
<input type="button" value="<Επιστροφή" class="button" onclick="history.back()"/>
</div>
</body>
</html>

και εχω τη συναρτηση myerror σε αρχειο με ονομα myerror.php με τον εξης κωδικα:
function myerror($con) {
$errNo = mysql_errno($con);
switch ($errNo) {
case 1062:
$errStr = 'Υπάρχει ήδη εγγραφή με τον ίδιο

κωδικό(id) και δεν μπορεί να ξαναπεραστεί δεύτερη

εγγραφή με τον ίδιο κωδικό.';
break;
default:
$errStr = mysql_error($con);
}
return "Σφάλμα $errNo: $errStr";
}

υπαρχει καπου λαθος? μηπως πρεπει να τη βαλω κ στο αρχειο htmlοπου φτιαχνω τη φορμα μου?

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

πληροφοριακα μηυματα λαθους

Δημοσίευση από burnmind » 01 Μαρ 2011 15:38

Ξέχασες τα <?php ?>

stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

πληροφοριακα μηυματα λαθους

Δημοσίευση από stavroula_apo » 01 Μαρ 2011 21:10

burNMind έγραψε:Ξέχασες τα <?php ?>
αυτο εννοεις <?php
include ('myerror.php');
?>
πρεπει να το βαλω σε καποιο συγκεκριμενο σημειο μπορεις να μ πεις?
γτ μ βγαζει αυτο...
Καταχώρηση φοιτητή

function myerror($con) { $errNo = mysql_errno($con); switch ($errNo) { case 1062: $errStr = 'Υπάρχει ήδη εγγραφή με τον ίδιο κωδικό(id) και δεν μπορεί να ξαναπεραστεί δεύτερη εγγραφή με τον ίδιο κωδικό.'; break; default: $errStr = mysql_error($con); } return "Σφάλμα $errNo: $errStr"; }
Fatal error: Call to undefined function myerror() in C:\xampp\htdocs\tei\add_student.php on line 39

δε ξερω τι να πω εχω κολλησει :-(

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

πληροφοριακα μηυματα λαθους

Δημοσίευση από burnmind » 01 Μαρ 2011 21:59

Ο php κώδικας πρέπει να βρίσκεται ανάμεσα σε <?php ?> για να εκτελεστεί. Απ' ότι φαίνεται, δεν έχεις βάλει ούτε τον κώδικα του αρχείου που πας να κάνεις include σε <?php ?> κι έτσι στον εμφανίζει σαν απλό κείμενο. Θα πρότεινα να αρχίσεις να μαθαίνεις php ώστε να μπορείς να κάνεις έστω τα βασικά μαζί της.

Απάντηση

Επιστροφή στο “Γενικές ερωτήσεις κατασκευής ιστοσελίδων”

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

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